de i1=1 à nbcol(1) faire : { de i2=1 à nbcol(2) faire : { de i3=1 à nbcol(3) faire : { etc... } } }
i1=1 tant que i1<=nbcol(1) faire { i2=1 tant que i2<=nbcol(2) faire { i2=i2+1 } i1=i1+1 }
i1=1 tant que i1<=nbcol(1) faire { i2=1 tant que i2<=nbcol(2) faire {
i2=i2+1 } i1=i1+1 }
Pour ind[0]=0 à (nbcol[0]-1) faire { Pour ind[1]=0 à (nbcol[1]-1) faire { Pour ind[2]=0 à (nbcol[2]-1) faire { Pour ind[3]=0 à (nbcol[3]-1) faire { etc... t[0][ind[0]],t[1][ind[1]],t[2][ind[2]],t[3][ind[3]],... est la suite des valeurs qui nous intéressent } } } }
ind[0]=0 Label 0 : ind[1]=0 Label 1 : ind[1]=0 Label 2 : ind[2]=0 Label 3 : ind[3]=0 etc... t[0][ind[0]],t[1][ind[1]],t[2][ind[2]],t[3][ind[3]],... est la suite des valeurs qui nous intéressent ind[3]=ind[3]+1 si ind[3]<nbcol[3] goto Label3 ind[2]=ind[2]+1 si ind[2]<nbcol[2] goto Label2 ind[1]=ind[1]+1 si ind[0]<nbcol[0] goto Label1 ind[0]=ind[0]+1 si ind[0]<nbcol[0] goto Label0
int cas=0; int lig=0; do { // Boucle sur gestion de "début de boucles" // Mise à zéro des indices à partir de lig for (int i=lig;i<nblig;i++) ind[i]=0; // Traitement de la suite des valeurs : tab[0][ind[0]],tab[0][ind[0]],...,tab[nblig-1][ind[nblig-1]], printf("CASE %3d : ",cas); for (int lig=0;lig<nblig;lig++) printf("%d",tab[lig][ind[lig]]); printf("\n"); cas++; // Fin du traitement // Boucle sur gestion de "fin de boucles" // incrémentation des indices en commencant par le dernier // et en s'arrêtant dès qu'on ne dépasse pas la limite lig=nblig; do { lig--; if (lig>=0) ind[lig]++; } while ((lig>=0) && (ind[lig]>=nbcol[lig])); // lig est la dernière ligne dont on a incrémenter // l'indice ind. On ajoute 1 à lig pour mettre à zéro // les indices à partir de cette position en début de boucle lig++; } while (lig>0);
. Je ne sais pas par contre si olive1978 a pu en profiter...
-