Oppure

Loading
14/10/09 8:25
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...
aaa
14/10/09 9:47
TheKaneB
potresti usare una soluzione del genere

// Dimensioni a piacere
const int MAX_X = 3;
const int MAX_Y = 4;
const int MAX_Z = 8;

float matrice[MAX_X][MAX_Y][MAX_Z];
int i,j,k;

void riempiMatrice()
{
  for (i=0; i<MAX_X; i++)
    for (j=0; j<MAX_Y; j++)
      for (k=0; k<MAX_Z; k++)
      {
        matrice[i][j][k] = rand() * 1.0f;
      }
}

void stampaMatrice()
{
  for (k=0; k<MAX_Z; k++)
  {
    cout << endl; << "--- z = " << k << endl;
    for (j=0; j<MAX_Y; j++)
    {
      for (i=0; i<MAX_X; i++)
      {
        cout << matrice[i][j][k] << " ";
      }
      cout << endl;
    }
  }
}


non sarà il massimo dell'eleganza, ma funziona ;)
ciao!
aaa
14/10/09 10:10
theprogrammer
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 ...
aaa
14/10/09 10:28
mama86
ora provo con questo programma che mi hai detto però devo modificare alcune cosette...
aaa
14/10/09 11:04
mama86
Postato originariamente da TheKaneB:

potresti usare una soluzione del genere

// Dimensioni a piacere
const int MAX_X = 3;
const int MAX_Y = 4;
const int MAX_Z = 8;

float matrice[MAX_X][MAX_Y][MAX_Z];
int i,j,k;

void riempiMatrice()
{
  for (i=0; i<MAX_X; i++)
    for (j=0; j<MAX_Y; j++)
      for (k=0; k<MAX_Z; k++)
      {
        matrice[i][j][k] = rand() * 1.0f;
      }
}

void stampaMatrice()
{
  for (k=0; k<MAX_Z; k++)
  {
    cout << endl; << "--- z = " << k << endl;
    for (j=0; j<MAX_Y; j++)
    {
      for (i=0; i<MAX_X; i++)
      {
        cout << matrice[i][j][k] << " ";
      }
      cout << endl;
    }
  }
}


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...
aaa
14/10/09 11:56
theprogrammer
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 14/10/09 11:57
aaa
14/10/09 12:40
TheKaneB
beh, hai postato nella sezione C++, quindi mi pareva ovvio che volessi usare gli stream.

per la printf basta fare:

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


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!
aaa
14/10/09 17:25
mama86
Postato originariamente da TheKaneB:

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

per la printf basta fare:

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


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;

aaa