Passage d'un tableau unidimensionnel à tridimentionnel

manaliac Messages postés 3 Date d'inscription mercredi 22 avril 2009 Statut Membre Dernière intervention 18 mai 2010 - 18 mai 2010 à 10:26
manaliac Messages postés 3 Date d'inscription mercredi 22 avril 2009 Statut Membre Dernière intervention 18 mai 2010 - 18 mai 2010 à 17:59
Bonjour,

je programme en fortran (mais ce sera pareil en C/C++),et je souhaite passer d'un tableau à une dimension X(i*j*k) à un tableau tridimentionnel X_nw(i,j,k)?

Sauriez vous quel est l'algorithme nécessaire pour le changement d'indices?

Merci bien

Manaliac

2 réponses

kenshin28 Messages postés 5 Date d'inscription mercredi 23 juillet 2008 Statut Membre Dernière intervention 17 juin 2010
18 mai 2010 à 17:11
ca dépend de comment seront rangés tes données mais en gros (et pseudo-code)

tab ancien[x*y*z] type entier
tab nouveau[x][y][z]


pour i de 0 à x
 pour j de 0 à y
  pour k de 0 à z
   tab[i][j][k]=tab[ i*y*z + j*z + k]
  finpour
 finpour
finpour


Je ne suis pas programmeur fortran alors méfie toi si les tableaux partent de 1, tu as un petit ajustement a faire.

Attention également car cet algorithme est très couteux en temps (3 boucles imbriquées ca fait mal). Dans un tableau de dimension [5][7][3], ca peut encore aller mais imagine si ton tableau fait 10000 colonnes de 10000lignes... Alors si tu peux enregistrer tes données directement dans ton tableau a 3 dimensions, fais le.
0
manaliac Messages postés 3 Date d'inscription mercredi 22 avril 2009 Statut Membre Dernière intervention 18 mai 2010
18 mai 2010 à 17:59
Merci ! ça m'a bien aidée !

Manal
0
Rejoignez-nous