Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicitÓ e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - matrice tridimensionale
Forum - C/C++ - matrice tridimensionale

Avatar
mama86 (Normal User)
Newbie


Messaggi: 5
Iscritto: 14/10/2009

Segnala al moderatore
Postato alle 10:25
Mercoledý, 14/10/2009
ciao a tutti...ho un problema...devo scrivere un programma che generi con valori decimali pseudo-casuali una matrice tridimensionale di dimensione n*m*k e poi devo stampare la matrice...a due dimensioni riesco a farlo,ma a tre no..qualcuno mi pu˛ aiutare?grazie...

PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1787
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 11:47
Mercoledý, 14/10/2009
potresti usare una soluzione del genere

Codice sorgente - presumibilmente C++

  1. // Dimensioni a piacere
  2. const int MAX_X = 3;
  3. const int MAX_Y = 4;
  4. const int MAX_Z = 8;
  5.  
  6. float matrice[MAX_X][MAX_Y][MAX_Z];
  7. int i,j,k;
  8.  
  9. void riempiMatrice()
  10. {
  11.   for (i=0; i<MAX_X; i++)
  12.     for (j=0; j<MAX_Y; j++)
  13.       for (k=0; k<MAX_Z; k++)
  14.       {
  15.         matrice[i][j][k] = rand() * 1.0f;
  16.       }
  17. }
  18.  
  19. void stampaMatrice()
  20. {
  21.   for (k=0; k<MAX_Z; k++)
  22.   {
  23.     cout << endl; << "--- z = " << k << endl;
  24.     for (j=0; j<MAX_Y; j++)
  25.     {
  26.       for (i=0; i<MAX_X; i++)
  27.       {
  28.         cout << matrice[i][j][k] << " ";
  29.       }
  30.       cout << endl;
  31.     }
  32.   }
  33. }



non sarÓ il massimo dell'eleganza, ma funziona ;)
ciao!


Software Failure: Guru Meditation
Forum su Informatica, Elettronica, Robotica e Tecnologia: http://www.nonsoloamiga.com
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 12:10
Mercoledý, 14/10/2009
Testo quotato

Postato originariamente da mama86:

ciao a tutti...ho un problema...devo scrivere un programma che generi con valori decimali pseudo-casuali una matrice tridimensionale di dimensione n*m*k e poi devo stampare la matrice...a due dimensioni riesco a farlo,ma a tre no..qualcuno mi pu˛ aiutare?grazie...



In realta', tra due e tre dimensioni, non ci sono tante variazioni nel codice ...


- Se le mie risposte non vi soddisfano, ignoratele, altrimenti un "grazie" e' molto gradito ...

"Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." (niente pappa pronta)
PM Quote
Avatar
mama86 (Normal User)
Newbie


Messaggi: 5
Iscritto: 14/10/2009

Segnala al moderatore
Postato alle 12:28
Mercoledý, 14/10/2009
ora provo con questo programma che mi hai detto per˛ devo modificare alcune cosette...

PM Quote
Avatar
mama86 (Normal User)
Newbie


Messaggi: 5
Iscritto: 14/10/2009

Segnala al moderatore
Postato alle 13:04
Mercoledý, 14/10/2009
Testo quotato

Postato originariamente da TheKaneB:

potresti usare una soluzione del genere

Codice sorgente - presumibilmente C++

  1. // Dimensioni a piacere
  2. const int MAX_X = 3;
  3. const int MAX_Y = 4;
  4. const int MAX_Z = 8;
  5.  
  6. float matrice[MAX_X][MAX_Y][MAX_Z];
  7. int i,j,k;
  8.  
  9. void riempiMatrice()
  10. {
  11.   for (i=0; i<MAX_X; i++)
  12.     for (j=0; j<MAX_Y; j++)
  13.       for (k=0; k<MAX_Z; k++)
  14.       {
  15.         matrice[i][j][k] = rand() * 1.0f;
  16.       }
  17. }
  18.  
  19. void stampaMatrice()
  20. {
  21.   for (k=0; k<MAX_Z; k++)
  22.   {
  23.     cout << endl; << "--- z = " << k << endl;
  24.     for (j=0; j<MAX_Y; j++)
  25.     {
  26.       for (i=0; i<MAX_X; i++)
  27.       {
  28.         cout << matrice[i][j][k] << " ";
  29.       }
  30.       cout << endl;
  31.     }
  32.   }
  33. }



non sarÓ il massimo dell'eleganza, ma funziona ;)
ciao!




controllando questo con il mio,praticamente quello ke nn riesco a fare Ŕ la stampa...per˛ devo usare printf e non cout...grazie...

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 13:56
Mercoledý, 14/10/2009
Testo quotato

controllando questo con il mio,praticamente quello ke nn riesco a fare Ŕ la stampa...per˛ devo usare printf e non cout...grazie...



Scusa ... usa la printf ... qual e' il problema ?

Non sai usare la printf in generale o solo con questo programma ?

Come la usavi con le matrici a 2 dimensioni ?


Ultima modifica effettuata da theprogrammer il 14/10/2009 alle 13:57


- Se le mie risposte non vi soddisfano, ignoratele, altrimenti un "grazie" e' molto gradito ...

"Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." (niente pappa pronta)
PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1787
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 14:40
Mercoledý, 14/10/2009
beh, hai postato nella sezione C++, quindi mi pareva ovvio che volessi usare gli stream.

per la printf basta fare:

Codice sorgente - presumibilmente Plain Text

  1. //...
  2. printf("%f ", matrice[i][j][k]);
  3. //...



comunque usa il mio codice solo come punto di riferimento, Ŕ chiaramente un esempio scritto per l'occasione, non un pezzo di codice preso da un programma funzionante!


Software Failure: Guru Meditation
Forum su Informatica, Elettronica, Robotica e Tecnologia: http://www.nonsoloamiga.com
PM Quote
Avatar
mama86 (Normal User)
Newbie


Messaggi: 5
Iscritto: 14/10/2009

Segnala al moderatore
Postato alle 19:25
Mercoledý, 14/10/2009
Testo quotato

Postato originariamente da TheKaneB:

beh, hai postato nella sezione C++, quindi mi pareva ovvio che volessi usare gli stream.

per la printf basta fare:

Codice sorgente - presumibilmente Plain Text

  1. //...
  2. printf("%f ", matrice[i][j][k]);
  3. //...



comunque usa il mio codice solo come punto di riferimento, Ŕ chiaramente un esempio scritto per l'occasione, non un pezzo di codice preso da un programma funzionante!




io s˛ usare la printf per˛ non riesco a trasformare questo:
cout << endl; << "--- z = " << k << endl;


PM Quote
Avatar
giuseppe93 (Ex-Member)
Pro


Messaggi: 166
Iscritto: 02/08/2009

Segnala al moderatore
Postato alle 21:35
Mercoledý, 14/10/2009
Testo quotato


io s˛ usare la printf per˛ non riesco a trasformare questo:
cout << endl; << "--- z = " << k << endl;




e qual Ŕ il problema??
printf("\n--- z=%d",k);


:)
PM Quote