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

  FORUM HardWare.fr
  Programmation
  Perl

  [perl] Créer un tableau à 2 dimensions

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[perl] Créer un tableau à 2 dimensions

n°418472
burgergold
5$? va chez l'diable!
Posté le 05-06-2003 à 21:32:02  profilanswer
 

Je cherche à me créer un tableau à 2 dimensions
 
en C, je me déclarerais un int value[4][14];
 
mais en perl je ne sais pas comment le créer, et comment accéder à mes données une fois quil serait créé
 
merci

mood
Publicité
Posté le 05-06-2003 à 21:32:02  profilanswer
 

n°418602
aline2003
Posté le 05-06-2003 à 22:54:39  profilanswer
 

tu peux faire comme ça  
 
 

Code :
  1. $tableau{4}{14}

n°418700
burgergold
5$? va chez l'diable!
Posté le 05-06-2003 à 23:55:07  profilanswer
 

aline2003 a écrit :

tu peux faire comme ça  
 
 

Code :
  1. $tableau{4}{14}




 
c ca que j'ai utilisé
 
c parce quau départ javais en tete qu'un array en perl cétait nécessairement @array


---------------
http://www.boincstats.com/signature/user_664861.gif
n°418815
urd-sama
waste of space
Posté le 06-06-2003 à 07:25:05  profilanswer
 

suivant ton cas tu pourrais utiliser un tableau associatif (hashtable je crois)


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
n°418957
Aricoh
gentil mais fo po pousser
Posté le 06-06-2003 à 09:54:51  profilanswer
 

Urd-sama a écrit :

suivant ton cas tu pourrais utiliser un tableau associatif (hashtable je crois)

Ecrit comme ça : $tableau{4}{14}, on fait en fait référence à un hash du nom de %tableau, et qui est en réalité un hash de hash, non un tableau à 2 dimensions.
 
pour un tableau à 2 dimensions, il faudrait employer par exemple une variable @tableau : $tableau[4][14]
 
imaginons que tu veuilles stocker les valeurs suivantes dans un tableau à deux dimensions, on a 2 lignes de 3 valeurs par ligne, chaque ligne servant d'index. Ci-dessous, un petit code d'exemple avec un tableau contenant ces valeurs et un hash :
 
Valeurs :
    15,20,25
    30,35,40
    70,80,90
 

Code :
  1. my @Array;
  2. my %Hash;
  3. # exemple d'alimentation du tableau
  4. $Array[0][0] = 15;
  5. $Array[0][1] = 20;
  6. $Array[0][2] = 25;
  7. $Array[1][0] = 30;
  8. $Array[1][1] = 35;
  9. $Array[1][2] = 40;
  10. $Array[2][0] = 70;
  11. $Array[2][1] = 80;
  12. $Array[2][2] = 90;
  13. # exemple d'alimentation du hash
  14. $Hash{1}{1} = 15;
  15. $Hash{1}{2} = 20;
  16. $Hash{1}{3} = 25;
  17. $Hash{2}{1} = 30;
  18. $Hash{2}{2} = 35;
  19. $Hash{2}{3} = 40;
  20. $Hash{3}{1} = 70;
  21. $Hash{3}{2} = 80;
  22. $Hash{3}{3} = 90;


 
Dans mon exemple, @Array est un tableau à 2 dimensions. %Hash est un hash qui contient 3 hash ($Hash{1}, $Hash{2} et $Hash{3}), c'est un hash de hash.
 
Voilà en tout cas la notation pour les tableaux et les hachages. crochets pour les tableaux, accolades pour les hachages.


---------------
j'suis l'Duc des 7 Enfers Éternels ...
n°419248
burgergold
5$? va chez l'diable!
Posté le 06-06-2003 à 12:09:35  profilanswer
 

jai fait un tableau alors
 
jai my @value
 
et ensuite j'alimente en faisant $value[$i][$j] = ***


---------------
http://www.boincstats.com/signature/user_664861.gif
n°419252
urd-sama
waste of space
Posté le 06-06-2003 à 12:13:31  profilanswer
 


merci  :jap:

n°420428
pospos
Posté le 07-06-2003 à 00:56:37  profilanswer
 

On peut aussi simuler des tableau à n dimensions avec une hash table
 
par exemple:
 
$a[5][12][24][2] => $a{"5 12 24 2"}
 
et pour l'iterer il suffit de faire un truc du genre:
 
for $x (0..10) {
  for $y (0..10) {
    for $z (0..10) {
      for $k (0..10) {
        $a{"$x $y $z $k"}....
 
Ca peut etre plus rapide que l'equivalent en tableau à plusieur dimensions (une hash table est seulement 15% plus lente qu'un tableau, et la on n'a k'un seul niveau!), mais ca peut egalement prendre plus de place en memoire (les hash tables on tendance à grossir de maniere non lineaire, en doublant leut taille par acoups...).
 
Mais le plus gros avantgae que je vois, et la raison pour laquelle je les utilise, est k'on peut faire un tie à un SDBM file par exemple, pour avoir un truc persistant sur disque, puisque l'on a k'un seul niveau, au lieu de devoir utiliser MLDBN qui est archi lent mais qui est le seul truc dispo pour avec les hash à plusieurs dimensions...
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  [perl] Créer un tableau à 2 dimensions

 

Sujets relatifs
[Perl] Des couleurs en console ?Passage d un tableau dans un formulaire ?
Faire un tableau de constantes[Perl/CGI] Appeler une page cgi dans une page cgi ?
le meilleur pour creer un chatlongueur d'un tableau en plusieurs dimensions...
[HTML][PERL] 2 frames, cgi, passage de paramètres d'un à l'autreExercice PHP - Création de tableau
[Javascript] > Reclasser un tableau sans reload la page !? 
Plus de sujets relatifs à : [perl] Créer un tableau à 2 dimensions


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR