#!/usr/bin/perl -w
# remd: essai de fonctions (pop, push,shift,
unshift et reverse) sur une liste
# pour étudier le comportement de chacune.
.
# il tourne, fonction vues shift, unshift et
push.
# alain adelmar Janvier 2001
@a=(0..9);
@b=("a".."z");
$esp="\n\n";
$temp="look_liste.log";
open(F,">$temp")ordie"no
possible d'ouvrir lookliste $!";
print"Voyons
comment ce comporte les fonctions 'pop, push, shift,
unshift'\n";
print"nous
avons une liste '(a) de 0 à 9 et une autre (b) de a à z':\n";
print'",@a,"
donne: '.",@a,"."\n";
print'alors
que "@a" donne: '."@a"."\n";
print'et
que @a donne: '.@a."\n";
print'plus
mieux ("@a") donne: '."(@a)"."#\n";
print'that
all, maintenant avec foreach $a(@a)'."\n";
foreach$a(@a){
print$a."\n";
}
print"\nidem
pour b\n";
foreach$b(@b){
print$b."\n";
}
print"voulez
vous ajouter quelques éléments à a ?\n";
chomp($resp=<STDIN>);
while(!continu($resp)){
print"alors
entrez un element:\n";
$elmnta=<STDIN>;
print"Vous
avez entré $elmnta\n";
chomp$elmnta;
$ua++;
@a=("$elmnta","@a");
print"maintenant
la liste contient:\n(@a)\n";
print"voulez
vous en insérer un autre?\n";
chomp($resp=<STDIN>);
}
print"Et
maintenant, voulez vous en ajouter à b\n";
chomp($resp=<STDIN>);
while(!continu($resp)){
print"alors
entrez un element: \n";
$elmntb=<STDIN>;
print"Vous
avez entré: $elmntb\n";
chomp$elmntb;
$ub++;
@b=(@b,"$elmntb");
print"maintenant
la liste b contient: \n";
print"(@b)";
print"voulez
vous en insérer un autre?\n";
chomp($resp=<STDIN>);
}
$nela=10+$ua;#
nombre d'element de @a.
$nelb=24+$ub;#
nombre d'element de @b.
print"récap\t
la liste a (de $nela elements) contient:\n (@a)\n";
print"et
la liste b de $nelb elements contient:\n (@b)\n";
#======espacement = $esp _ shift _
print"$esp
avec la fonction shift le premier element est retourné mais oté
de la liste\n";
print'$y
= shift(@a) => donnera:'."\n";
$y=shift(@a);
print"$y".'=
shift(@a) et il reste dans @a'."(@a)\n";
print"$esp";
print'$z
= shift(@b) => donnera:'."\n";
$z=shift(@b);
print"$z".'=
shift(@b) et il reste dans @b'."(@b)\n";
print"$esp";
#======espacement = $esp _ unshift _
print'unshift
fait le contraire de shift, au lieu d\'oter le premier elemnt
de la liste, il rajoute au debut de la liste les elements qui sucséderons
a
la liste'."\n";
print"exemple:
voulez vous entrer un element?\n";
while(!continu($resp)){
print"alors
entrez un element:\n";
$elmntua=<STDIN>;
chomp$elmntua;
unshift(@a,"$elmntua");
print'avec
la fonction unchift(@a, "element_a) la liste contient:'.
"\n(@a]\n";
print"voulez
vous en insérer un autre?\n";
chomp($resp=<STDIN>);
}
print"Et
maintenant, voulez vous en ajouter à b\n";
chomp($resp=<STDIN>);
while(!continu($resp)){
print"alors
entrez un element: \n";
$elmntub=<STDIN>;
chomp$elmntub;
unshift(@b,"$elmntub");
print'avec
la fonction unchift(@b, "element_b) la liste contient:'.
"\n(@b)\n";
print"voulez
vous en insérer un autre?\n";
chomp($resp=<STDIN>);
}
closeF||die"remerde
ca coince en fermeture $!";
subcontinu{
my($reponse)=@_;
if($reponse=~/^o/){
return0;
}
elsif($reponse=~/^n/){
return1;
}
else{
print"Veuillez
repondre par Oui ou par non\n";
return0;
}
}
END;
============lemêmemaiscré unfichieroutoutestconsigné parpush
#!/usr/bin/perl -w
# remd: essai de fonctions (pop, push,shift,
unshift et reverse) sur une
liste
# pour étudier le comportement de chaqu'une.
# alain adelmar Janvier 2001
@a=(0..9);
@b=("a".."z");
$temp="look_liste.log";
$x="x"x70;
$ph1="Voyons
comment ce comporte les fonctions 'pop, push, shift,
unshift'\n";
$ph2="nous
avons une liste '(a) de 0 à 9 et une autre (b) de a à z':\n";
$rema="Ce
fichier est automatiquement généré par le prog ECf_ls_push.pl
donc\n en perl.\nremd: créé par alain Adelmar Janvier
2001.\n$x\n";
push@contenu,$rema;
print"$ph1"."$ph2";
push@contenu,("$ph1"."$ph2");
$phe1='",@a,"
donne: '.",@a,"."\n".'alors
que "@a" donne: '."@a".
"\n".'et
que @a donne: '.@a."\n".'plus
mieux ("@a") donne: '.
"(@a)"."\n".'that
all, maintenant avec foreach $a(@a)'."\n";
push@contenu,$phe1;
print"$phe1";
#=========================signature=============
$aa='#
[_A_d_e_l_m_a_r_] [8O°) [8O*) [8o. |8*) |:o. [8. [8O{`}
[8O°)
# ===============
* ***
# [_a____l_a_i_n__] aadelmar@free.fr http://www.multimania.com/aadelmar/';
#==============================================
foreach$a(@a){
print$a."\n";
push@contenu,"$a\n";
}
print"\nidem
pour b\n";
foreach$b(@b){
print$b."\n";
push@contenu,"
$b,";
}
$rph="\nvoulez
vous ajouter quelques éléments à a ?\n";
push@contenu,$rph;
print$rph;
chomp($resp=<STDIN>);
while(!continu($resp)){
print"alors
entrez un element:\n";
$elmnta=<STDIN>;
chomp$elmnta;
$voir1="Vous
avez entré $elmnta\n";
print$voir;
push@contenu,$voir;
$ua++;
@a=("$elmnta","@a");
$ph3="maintenant
la liste contient:\n(@a)\n";
print$ph3;
push@contenu,$ph3;
$vv="voulez
vous en insérer un autre?\n";
print$vv;
push@contenu,$vv;
chomp($resp=<STDIN>);
}
$phb1="Et
maintenant, voulez vous en ajouter à b\n";
print$phb1;
push@contenu,$phb1;
chomp($resp=<STDIN>);
while(!continu($resp)){
print"alors
entrez un element: \n";
$elmntb=<STDIN>;
$voir2="Vous
avez entré $elmntb\n";
print$voir2;
push@contenu,$voir2;
chomp$elmntb;
$ub++;
@b=(@b,"$elmntb");
$nw1="maintenant
la liste b contient: \n"."(@b)";
print$nw1;
push@contenu,$nw1;
$vv="voulez
vous en insérer un autre?\n";
print$vv;
push@contenu,$vv;
chomp($resp=<STDIN>);
}
$nela=10+$ua;#
nombre d'element de @a.
$nelb=24+$ub;#
nombre d'element de @b.
$recap="récap\t
la liste a (de $nela elements) contient:\n (@a)\n";
print$recap;
push@contenu,$recap;
$recapb="et
la liste b de $nelb elements contient:\n (@b)\n\n$aa\n";
print$recapb;
push@contenu,$recapb;
# print "et la liste b de $nelb elements contient:\n
(@b)\n";
open(F,">$temp")ordie"no
possible d'ouvrir lookliste $!";
printF@contenu;
closeF||die"remerde
ca coince en fermeture $!";
subcontinu{
my($reponse)=@_;
if($reponse=~/^o/){
return0;
}
elsif($reponse=~/^n/){
return1;
}
else{
print"Veuillez
repondre par Oui ou par non\n";
return0;
}
}
END;
#=================== pop et reverse
#!/usr/bin/perl -w
# fonction etudier pop, reverse
# 23 janvier 2001 alain adelmar 33600 Pessac
mailto=aadelmar@free.fr
print"considèrons
deux listes:\na de 0 à 15 et \nb de a à z\n";
@a=(0..15);
@b=("a".."z");
print"tel
que liste a:\n(@a)\n";
print"et\ntel
que liste b:\n(@b)\n";
pop(@a);
print'pop(@a)
donnera'."\t(@a)\n";
@ra=reverse(@a);
print'reverse(@a)
donnera'."\t(@ra)\n";
print"\n";
pop(@b);#
si l'on ecrit @pa = pop(@a) seul le nmbr elmnt sera
retourne
print'pop(@b)
donnera'."\t(@b)\n";
@rb=reverse(@b);
print'reverse(@b)
donnera'."\t(@rb)\n";
END;
N'hésitez pas à
me contacter, je me ferai un plaisir d'apprendre ou de vous éclairer
jusqu'ou je peux. aadelmar@wanadoo.fr