Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Ayuda con un programa de Borland Builder C

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Ayuda con un programa de Borland Builder C Responder citando

Lo que necesitoeshacer un programa de matrices con elementos visuales en Builder C
que pueda sumar restar multiplicar y dividir
natrices, pero necesito que tenga elementos visuales
Volver arriba
Mensaje    Asunto: Ayuda con un programa de Borland Builder C Responder citando

¡Vale!
Para eso se me ocurren dos cosas:
1. Desarrollar una interfaz gráfica "dibujando" tu las matrices con métodos como Pixels, ..., y cojer los datos por una línea de comandos que tu interpretes (costoso, tipo matlab o más bien derive)

2. Usar un componente de rejilla y hacerlo en plan Excel. Esto es práctico para tomar datos. La forma de expresarlo después es cosa tuya... Esto lo he estado haciendo últimamente. Lo primero que tendrías que insertar sería el componenete de rejilla, esto es por ejemplo un TStandGrid. (En la paleta Aditional el 4º icono) Una vez hecho esto te paso el siguiente ejemplo de código, esto se realiza cuando le das a un botón del menú (se supone que el usuario a seleccionado algo en la rejilla)

code:

void __fastcall TMainForm::Diagonalizacinmatrizsimtrica1Click(
TObject *Sender)
{
long x1,y1,x2,y2;
x1=((TMDIChild *)ActiveMDIChild)->StringGrid1->Selection.Left;
y1=((TMDIChild *)ActiveMDIChild)->StringGrid1->Selection.Top;
x2=((TMDIChild *)ActiveMDIChild)->StringGrid1->Selection.Right;
y2=((TMDIChild *)ActiveMDIChild)->StringGrid1->Selection.Bottom;
int dim=x2-x1+1;
long double **mat,**matpaso;//Reserva dinámica de memoria...
mat=new long double*[dim];
matpaso=new long double*[dim];
for(int i=0;i<dim;i++)
{
mat[i]=new long double[dim];
matpaso[i]=new long double[dim];
} //...
for(int i=0;i<dim;i++) //Hacemos de la matriz de paso la identidad, y guardamos la selección del usuario
for(int j=0;j<dim;j++)
{
mat[i][j]=((TMDIChild *) ActiveMDIChild)->StringGrid1->Cells[x1+i][y1+j].ToDouble();
if(i==j)
matpaso[i][j]=1;
else
matpaso[i][j]=0;
} //...
Jacobi(mat,matpaso,dim);//Esta función realiza un cálculo matricial
for(int i=0;i<dim;i++)//Sacamos el resultado
{
((TMDIChild *)ActiveMDIChild)->StringGrid1->Cells[x1+dim+i][y1]=FloatToStr(mat[i][i]);
for(int j=0;j<dim;j++)
((TMDIChild *)ActiveMDIChild)->StringGrid1->Cells[x1+dim+i][y1+1+j]=FloatToStr(matpaso[i][j]);
}
for(int i=0;i<dim;i++)//Liberado de memoria...
{
delete [] mat[i];
delete [] matpaso[i];
}
delete [] mat;
delete [] matpaso;//...
}
}



Lo he recortado y apañado para ti, quizas se me fuera algún "}", pero funciona...

Espero que te sirva de algo. Si no tienes algo claro o quieres algo más escribe por aquí.

David

Volver arriba
Mensaje    Asunto: Ayuda con un programa de Borland Builder C Responder citando

Soy David otra vez,...

Esta cachondo eso de "DIVIDIR" matrices...

Hasta otra

Volver arriba
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.