tableaux en perl

tableaux en perl - Perl - Programmation

Marsh Posté le 20-03-2006 à 09:00:39    

Bonjour a tous,
 
 
Avant de faire cet help j'ai biensur consulter les pbs resolus de cet ordre mais bon  
je débute en perl et je n'arrive pas a resoudre mon pb :
 
 
 
Je dois lire un fichier contenant plusieurs blocs
 
  Chaque bloc est fait de la manière suivante :
 
une position
 
-          une liste de valeurs val1
 
-          une liste de valeurs val2
 
-          une matrice de valeurs relatives a va1 et val2
 
 
 
Bien entendu le nombre de val et val2 diffère par bloc
 
 
 
Au final je dois pour une position donnée,  
 
          une valeur de val1 donnée et une valeur de val2 donnée  
 
                 fournir la valeur dans ma matrice
 
 
 
ou bien
 
    pour une position donnée
 
        une valeur val1 donnée
 
           fournir les n valeurs de ma matrice correspondante  
 
 
 
J’ai commencé a faire la lecture et a mettre tout ça dans un tableaux a n dimensions  
 
Mais je ne m’en sors pas et je n’arrive pas a récupérer ce que je veux .. peut être que par table de hash ce serait mieux
 
Si quelqu’un pouvait m’aider ce serait très sympa
 
Merci
 

Reply

Marsh Posté le 20-03-2006 à 09:00:39   

Reply

Marsh Posté le 20-03-2006 à 09:39:51    

tes positions sont des entiers qui se suivent?
de meme pour tes valeurs?

Reply

Marsh Posté le 20-03-2006 à 11:16:18    

pospos a écrit :

tes positions sont des entiers qui se suivent?
de meme pour tes valeurs?


 
Bonjour
non la position est incluse dans le bloc et est une chaine de caracteres en clair elle sert a identifier le bloc
par contre tout le reste se sont des entiers

Reply

Marsh Posté le 20-03-2006 à 11:35:13    

appcar a écrit :

Bonjour
non la position est incluse dans le bloc et est une chaine de caracteres en clair elle sert a identifier le bloc
par contre tout le reste se sont des entiers


 
pour etre plus claire :
  le fichier est fait de la maniere suivante :n blocs constitue de :
 
  POSITION= TRENTAAAA  
  VAL1 VAL2                6    8  (avec 6 =nb val1 et 8=nb val2)
  liste valeurs VAL1
  liste valeurs VAL2  
  matrice nb val1 colonnes sur nb val2 lignes
 
ci joint un exemple d'un bloc
 
TRENTAAAA                                     th81lw
VAL1 VAL2                6    8                                            
                0.00000      3048.00      6096.00      9144.00      11277.6      13106.4    
 
               0.200000     0.300000     0.500000     0.700000     0.800000     0.850000     0.890000    0.960000    
 
                27339.9      22299.7      16466.8     10554.7       7556.3       5734.7
                24336.1      20542.1      14500.8      9808.0       7178.3       5039.0
                20042.6      18161.4      13595.2      9260.9       6794.4       4771.8
                16367.9      15512.6      13263.1      9656.0       7004.1       4928.3
                14234.1      14345.7      12451.4      9812.1       7268.6       5276.7
                14253.1      13714.6      12076.2      9734.1       7600.2       5457.8
                13797.1      13300.3      11740.0      9535.8       7466.4       5462.8
                12884.2      12588.9      11151.5      9210.2       7466.4       5462.8
 
 
 
 

Reply

Marsh Posté le 20-03-2006 à 17:35:53    

autre question, les valeurs de val1 et val2 ce sont les index de ta matrice?
 
en gros dans ton exemple
c'est M[3048][0.2] = 22299.7 ?
ou alors M[1][0] = 22299.7 ?

Reply

Marsh Posté le 21-03-2006 à 08:58:34    

pospos a écrit :

autre question, les valeurs de val1 et val2 ce sont les index de ta matrice?
 
en gros dans ton exemple
c'est M[3048][0.2] = 22299.7 ?
ou alors M[1][0] = 22299.7 ?


 
c'est bien  M[1][0] = 22299.7  

Reply

Marsh Posté le 21-03-2006 à 09:18:03    

alors tu peux faire ca:
 
my %hash;
$hash{$pos}[$x][$y] = $val;
 

Citation :

Au final je dois pour une position donnée,  
 
          une valeur de val1 donnée et une valeur de val2 donnée  
 
                 fournir la valeur dans ma matrice


 
$hash{$pos}[$x][$y]
 

Citation :

   pour une position donnée
 
        une valeur val1 donnée
 
           fournir les n valeurs de ma matrice correspondante  


 
@{$hash{$pos}[$x]}
 
 
en fait chaque valeur de %hash est une reference vers une liste, qui elle meme contient desz reference vers une autre liste.
Tu peux en fait l'ecrire comme ca:
 
$hash{$pos}->[$x]->[$y]


Message édité par pospos le 21-03-2006 à 09:18:41
Reply

Marsh Posté le 21-03-2006 à 09:27:37    

Merci beaucoup j'essaie ça

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed