Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. 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: 1792
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!

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 ...

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
PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1792
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!

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