Manipulation tableaux 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]";