OVH Cloud OVH Cloud

valeurs dans un tableau (encore)

3 réponses
Avatar
kurtz le pirate
bonjour,
c'est encore moi avec ma pile.

si je prend un tableau comme ça :
my @thisDatas = (
["10:01","10:02","10:03","10:04","10:06","10:08","10:09", "10:10",
"10:11"],
[ 1, 2, 5, 6, 3, 1.5, 1, 3, 4],
[ 5, 7, 3, 8, 2, 4, 6, 5, 8],
);

et que je le passe à GD:Graph, ça marche.

si c'est moi qui construis le tableau comme ça :
for($index=0;$index<$dim;$index++) {
$datas[$index]=[minutes(),$index,alea(100),alea(100)];
}

avec le sub
sub minutes {
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
localtime(time);
return sprintf('%02d:%02d',$min,$sec);
}

j'ai des erreurs :
...Argument "04:37" isn't numeric in numeric...

c'est bien mon "remplissage" qui va pas. le me demande si c'est un
problème de contexte liste, tableau...

pour ça doit être évident ! merci de vos lumières.

--
klp

3 réponses

Avatar
Stéphane Zuckerman
On Sat, 13 May 2006, kurtz le pirate wrote:

bonjour,
c'est encore moi avec ma pile.

si je prend un tableau comme ça :
my @thisDatas = (
["10:01","10:02","10:03","10:04","10:06","10:08","10:09", "10:10",
"10:11"],
[ 1, 2, 5, 6, 3, 1.5, 1, 3, 4],
[ 5, 7, 3, 8, 2, 4, 6, 5, 8],
);

et que je le passe à GD:Graph, ça marche.

si c'est moi qui construis le tableau comme ça :
for($index=0;$index<$dim;$index++) {
$datas[$index]=[minutes(),$index,alea(100),alea(100)];
}


Je n'ai que ton contexte pour répondre... En faisant ainsi, je n'ai pas de
problème :

#!/usr/bin/perl

use strict;
use warnings;

my $dim = 10;
my @datas = ();

for(my $index=0;$index<$dim;$index++) {
$datas[$index]=[minutes(),$index,rand(100),rand(100)];
}

sub minutes {
return sprintf("%02d:%02d",(localtime(time))[1,0]);
}

(je ne sais pas comment fonctionne ta fonction alea(), donc j'utilise
rand()...)

--
"Je deteste les ordinateurs : ils font toujours ce que je dis, jamais ce
que je veux !"
"The obvious mathematical breakthrough would be development of an easy
way to factor large prime numbers." (Bill Gates, The Road Ahead)

Avatar
kurtz le pirate
In article ,
Stéphane Zuckerman wrote:


Je n'ai que ton contexte pour répondre... En faisant ainsi, je n'ai pas de
problème :

...

(je ne sais pas comment fonctionne ta fonction alea(), donc j'utilise
rand()...)


en fait en cherchant et en relisant «calmement» l'exemple donné, le
tableau est de la forme :
@datas = ( [,,,], [,,,], [,,,] );
pour moi (petit scarabé) ça veut dire que le tableau @datas contient une
'liste' (puisqu'il y a des parenthèses () ) de tableaux (puisque il il y
des crochets [])... et non pas un tableau de tableau :(

donc j'ai fais :

my @heure;
my @in;
my @out;

# --- remplissage des datas
for($index=0;$index<$dim;$index++) {
$heure[$index]=minutes();
$in[$index]=alea(100);
$out[$index]=alea(100);
}
my @datas=(@heure, @in, @out);

et je passe ce tableau à GD:Graph :
$image = $my_graph->plot(@datas);

et ça marche ! ouf. dans la boucle, je remplis donc avec 3 affections
les trois tableaux. je devrais donc plus tard gérer nom pas une pile (cf
mon post précédent) et faire un 'pop' puis un unshift sur chaque tableau.

merci pour ta réponse stéphane mais c'est vrai que sans le contexte, tu
ne peux pas beaucoup m'aider.

je continue.

--
klp

Avatar
Paul Gaborit
À (at) Sat, 13 May 2006 15:46:06 +0200,
kurtz le pirate écrivait (wrote):
en fait en cherchant et en relisant «calmement» l'exemple donné, le
tableau est de la forme :
@datas = ( [,,,], [,,,], [,,,] );
pour moi (petit scarabé) ça veut dire que le tableau @datas contient une
'liste' (puisqu'il y a des parenthèses () ) de tableaux (puisque il il y
des crochets [])... et non pas un tableau de tableau :(


Dans les deux cas, @datas est un tableau de tableaux ou (pour être plus
précis) un tableau de références à des tableaux.

La question est de savoir ce qu'il contient. Mon interprétation :

- dans le cas qui marche, @datas est un tableau contenant 3 références
à des tableaux de "coordonnées" (chacun contenant n valeurs).

- dans le cas qui "ne marche pas", @datas est un tableau de n
références à des tableaux contenant 3 coordonnées.

En fait, l'un est la tranposition (au sens mathématique) de l'autre...

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>