View Full Version : [C++]Puntatori Array
Ciao a tutti :D
Qualcuno è così gentile da sapermeli spiegare. Devo riuscire a trovare la determinante di una matrice a 9 numeri, non capisco come diavolo usare i puntatori :confused:
Vi prego aiutatemi :help:
è stato specificato il metodo di calcolo del determinante (laplace, gauss...)? devi poter generalizzare a matrici n*n o ti bastano le 3*3? si tratta di valori interi o double? devi usare l'aritmetica dei puntatori o puoi usare la selezione con indice?
insomma, definisci meglio il problema :D
La matrice è 3*3 il metodo dicalcolo e di gauss si usano valori reali e si possono usare gli indici :)
Premesso che io sto qui e C++ là (molto là), se crei una classe Matrice che rappresenta... la matrice e le dai un metodo get(riga, colonna) il calcolo del determinante di una matrice 3x3 con Gauss diventa semplicemente:
int det =
m.get(0, 0) * m.get(1, 1) * m.get(2, 2) -
m.get(0, 0) * m.get(1, 2) * m.get(2, 1) +
m.get(0, 1) * m.get(1, 2) * m.get(2, 0) -
m.get(0, 1) * m.get(1, 0) * m.get(2, 2) +
m.get(0, 2) * m.get(1, 0) * m.get(2, 1) -
m.get(0, 2) * m.get(1, 1) * m.get(2, 0);
Forse :fagiano:
Pensavo anchio così ma ho sentito che deve essere utilizato un ciclo for ma non so a che scopo :(
Prova a scrivere come prima riga:
for(int i = 0; i < 1; i++) {
cout << "Ma va da via 'l Gauss" << endl;
}
int det =
m.get(0, 0) * ...
e vedi cosa ti dice il prof... :D.
Devo riuscire a prendere 6 non 3 :D
il metodo è quello, forse potresti fare il for per evitare di scrivere tutto... tipo
double m[3][3];
//assegnamento dei valori alla matrice
int det=0;
for (int i=0; i<3; i++)
{
int prodpos=1;
int prodneg=1;
for (int j=0; j<3; j++)
{
prodpos*=m[j][(i+j)%3];
prodneg*=m[2-j][(i+j)%3];
}
det+=prodpos-prodneg;
}
//stampa det
ma secondo me ti complichi la vita...
Devo riuscire a prendere 6 non 3 :D
Prendi il codice di PGI-Bis e moltiplica tutto per 2 :D
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.