|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jun 2006
Città: albenga
Messaggi: 362
|
[C++]Puntatori Array
Ciao a tutti
![]() 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 ![]() Vi prego aiutatemi ![]()
__________________
computer:amd athlonx2 3800+ ![]() ![]() sistema operativo:Windows Vista Ultimate Editions/windows xp |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Feb 2004
Messaggi: 1454
|
è 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 ![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jun 2006
Città: albenga
Messaggi: 362
|
La matrice è 3*3 il metodo dicalcolo e di gauss si usano valori reali e si possono usare gli indici
![]()
__________________
computer:amd athlonx2 3800+ ![]() ![]() sistema operativo:Windows Vista Ultimate Editions/windows xp |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
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:
Codice:
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); ![]()
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Jun 2006
Città: albenga
Messaggi: 362
|
Pensavo anchio così ma ho sentito che deve essere utilizato un ciclo for ma non so a che scopo
![]()
__________________
computer:amd athlonx2 3800+ ![]() ![]() sistema operativo:Windows Vista Ultimate Editions/windows xp |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Prova a scrivere come prima riga:
Codice:
for(int i = 0; i < 1; i++) { cout << "Ma va da via 'l Gauss" << endl; } int det = m.get(0, 0) * ... ![]()
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Jun 2006
Città: albenga
Messaggi: 362
|
Devo riuscire a prendere 6 non 3
![]()
__________________
computer:amd athlonx2 3800+ ![]() ![]() sistema operativo:Windows Vista Ultimate Editions/windows xp |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Feb 2004
Messaggi: 1454
|
il metodo è quello, forse potresti fare il for per evitare di scrivere tutto... tipo
Codice:
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 Ultima modifica di Furla : 05-06-2007 alle 23:15. |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Prendi il codice di PGI-Bis e moltiplica tutto per 2
![]()
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:58.