PDA

Visualizza la versione completa : [C] Determinante di una matrice


amk
16-07-2011, 19:01
Salve gente, non ho capito bene se bisogna presentarsi e se si dove, ma comunque questo sito è fantastico!
Sono entrato da poco nel mondo della programmazione e vorrei delle dritte per alcune cose. Vorrei creare un programma che mi ricavi il determinante di una matrice. La formula da utilizzare è la seguente

http://upload.wikimedia.org/math/b/f/9/bf9786cdea0b30227cb612574e92b0a8.png

quindi è uno sviluppo progressivo. Il determinante di una matrice 1x1 è l'elemento stesso e per la matrice 2x2 si ha una formula banale (credo anche per una matrice 3x3). Conoscendo questo, io ho pensato di utilizzare (e mi sembra l'unico metodo in questo momento) i cicli for, perché comunque è una sommatoria.

Ora sono riuscito a creare insieme ad una mia amica un programma che mi permetta di decidere il numero di righe e colonne e scrivere i vari singoli elementi all'interno. Il programma è questo:


#include <stdio.h>
#define MAX_ROW 10
#define MAX_COL 10

int main()
{
int r=0,c=0;
int m[MAX_ROW][MAX_COL];
int i,j;

do{
printf("il numero di righe e': ");
scanf("%d",&r);
if (r>MAX_ROW){
printf("il numero di righe deve essere minore di 10\n");
}
}
while(r>MAX_ROW);

do{
printf("il numero di colonne e': ");
scanf("%d",&c);
if(c>MAX_COL){
printf("il numero di colonne deve essere minore di 10\n");
}
}
while(c>MAX_COL);

for(i=0;i<r;i++){
for(j=0;j<c;j++){
printf("L'elemento [%d,%d] e' ",i+1,j+1);
scanf("%d", &m[i][j]);
printf("\n");
}
}
printf("La matrice %dx%d e':\n",r,c);
for(i=0;i<r;i++){
for(j=0;j<c;j++){
printf("%5d",m[i][j]);
}
printf("\n");
}
if(r==c){
printf("La trasposta e':\n");
for(i=0;i<r;i++){
for(j=0;j<c;j++){
printf("%4d",m[j][i]);
}
printf("\n");
}
}
else{
printf("La matrice non e' quadrata, non posso fare la trasposta!\n");
}
return 0;
}

Ora il primo passo che vorrei fare è quello di fargli salvare la matrice da me data. Non riesco a capire come fare, perché sono solo dei singoli elementi, non riesco proprio a capire come possa fargliela passare per matrice, a fargli capire che non sono semplici numeri, ma elementi di qualcosa.

Grazie

clynamen
17-07-2011, 20:22
Sono e rimarranno dei semplici numeri, sei tu poi a decidere come usarli :) .
In questo programma inserisci dei numeri, il computer li memorizza soltanto in posizioni vicine, ognuna identificata da un indirizzo ( [a],[b] ). Quando stampi la matrice verso la fine prendi quei numeri già inseriti, ma con ordine differente.
Non capisco che intendi per salvare, il programma salva già i numeri che inserisci nella ram.

Loading