Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2577 connectés 

 


Dernière réponse
Sujet : [Java]transformation tableau 1d en tableau 2d
chrisbk ben ......
 
 
(a quoi bon faire l'inverse ?)
 
Bon, bref, alors, (java et moi, c'est loin, je te le fais en C, c, ca changera rien a l'idée)
 
mettons que ton tableau 1d fasse x cases
 
int size = sqrt(x);
int rest = x - (size * size);
 
int **tab = new int *[size];
for (int i=0;i<size-1;i++)
{
  tab[i] =new int  [size];
}
 
tab[i] = new int [size + rest];
 
 
vala, donc tu as un tableau de taille [size][size] sauf la derniere case qui est potentiellement plus grande  
 
ca, c'est la version propre qui economisera bien ta memoire comme il se doit
 
sinon ce que tu peux faire, plus simple, c''est :
 
 
 
 
 
(l'interet m'echappe toujours :) )
 
 
int sizeY = sqrt(x);
int sizeX = sizeY;
if (sizeY * sizeY != x)
 sizeX++;
 
et tu fais un tableau de taille [sizeY][sizeX] en sachant que la derniere ligne comportera potentiellment des cases non utilisées
 
Vala !

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
chrisbk ben ......
 
 
(a quoi bon faire l'inverse ?)
 
Bon, bref, alors, (java et moi, c'est loin, je te le fais en C, c, ca changera rien a l'idée)
 
mettons que ton tableau 1d fasse x cases
 
int size = sqrt(x);
int rest = x - (size * size);
 
int **tab = new int *[size];
for (int i=0;i<size-1;i++)
{
  tab[i] =new int  [size];
}
 
tab[i] = new int [size + rest];
 
 
vala, donc tu as un tableau de taille [size][size] sauf la derniere case qui est potentiellement plus grande  
 
ca, c'est la version propre qui economisera bien ta memoire comme il se doit
 
sinon ce que tu peux faire, plus simple, c''est :
 
 
 
 
 
(l'interet m'echappe toujours :) )
 
 
int sizeY = sqrt(x);
int sizeX = sizeY;
if (sizeY * sizeY != x)
 sizeX++;
 
et tu fais un tableau de taille [sizeY][sizeX] en sachant que la derniere ligne comportera potentiellment des cases non utilisées
 
Vala !
Tricky Lut tout le monde !!
 
Voilà j'ai un big probleme :fou:  
Je sais comment transformer un tableau à 2 dimensions en un tableau à une dimension mais je sais po faire le contraire !!!
 
Le probleme se situe surtout au niveau de la taille des 2 dimensions !!! Comment la déterminer :??:
 
int[][] tab2D = new int[???][???];
 
A++ :hello:

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)