Tableau en Perl [Fermé]

Signaler
Messages postés
2
Date d'inscription
lundi 9 novembre 2009
Statut
Membre
Dernière intervention
9 novembre 2009
-
Bonjour,

j'essaie de manipuler les tableaux en perl , et j'ai un souci.

En fait j'ai un tableau initiale que j'appelle @tab qui est rempli de facon aléatoire , et ce que je voudrais c'est à chaque fois que je rempli mon tableau @tab aléroirement , je le parcours avec un indice que j'appelle $x , et ensuite je stock les $x éléments dans un autre tableau que j'appele @newtab , ensuite j'appelle une sous-routine &max(@newtab) qui me retourne le maximum . donc au final , je dois pouvoir avoir un tableau @newtab , de taille variable $x.
Mon principal problème se situe sur le tableau @newtab , le reste j'arrive à faire .
j'ai essayé plusieurs méthodes , en vain , voici une version

#!/usr/bin/perl -w



#$exec = 100;

sub random_array {
for ($i=0 ; $i<10 ; $i++) {
$array[$i] = int(rand 10)+1;

for ($j=0 ; $j<$i ; $j++) {
while($array[$i]==$array[$j]) {
$array[$i] = int(rand 10)+1;
}
}
}
print "Voici le tableau de nombres alatoires @array\n";
@array;
}



sub max{
$current_max = shift @tab;
foreach $tab (@tab){
if($tab > $current_max){
$current_max = $tab;

}
}
# $current_max;
print"\n The new_max is :$current_max\n";
}




@newtab =();
for ($x=0 ; $x<10 ; $x++){
@tab= &random_array;
# @newtab = @tab[0..$i];
#unshift (@newtab, $tab[$i]);
# $newtab[$i]= shift @tab;
print "\n i=$x";
print"\n val = @newtab";

}
&max(@tab[0..$x]);
#print "\n @tab[0..4]";