Travaux pratiques 1 : Langage Perl

Transcription

Travaux pratiques 1 : Langage Perl
Travaux pratiques 1 : Langage Perl
B. Djioua
10/10/2005
Exercice 1 : Manipulation d’Eclipse avec EPIC Créer un projet Perl sous Eclipse sous le
nom TP1. Créer un programme Perl sous le nom de exercice1.pl
Exercice 2 : Ecrire un programme Perl qui permet de saisir à travers le clavier deux scalaires.
Tester les cas suivants :
1. Afficher les deux scalaires
2. Ajouter chomp après chaque saisie et afficher les deux scalaires. Que remarquez-vous ?
3. Ajouter chop après chaque saisie et afficher les deux scalaires. Que remarquez-vous ?
4. Ajouter deux fois chomp après chaque saisie et afficher les deux scalaires. Que remarquezvous ?
5. Ajouter deux fois chop après chaque saisie et afficher les deux scalaires. Que remarquez-vous ?
Exercice 3 :
Ecrire un programme Perl qui lit deux chaı̂nes de caractères en entrée et les
affiche dans un ordre alphabétique croissant. Dans le cas où les deux chaı̂nes sont égales, on vous
demande de les afficher sur deux lignes différentes.
Solution
#!/usr/bin/perl -w
# Exercice3.pl
use strict;
my $chaine1=<STDIN>;
chomp($chaine1);
my $chaine2=<STDIN>;
chomp($chaine2);
if ($chaine1 lt $chaine2) {
print "$chaine1 $chaine2";
}
elsif ($chaine1 gt $chaine2) {
print "$chaine2 $chaine1";
}
1
Perl - Série de TP1 -
else{
print "$chaine1\n$chaine2";
}
Exercice 4 :
Ecrire un programme Perl qui calcul le nombre de caractères saisis au clavier.
Solution
#!/usr/bin/perl -w
# Exercice4.pl
use strict;
my $ligne=<STDIN>;
chomp($ligne);
print "Le nombre de caractères : ".length($ligne);
Exercice 5 : Ecrire un script qui permet d’afficher :
– tous les caractères en minuscule
– tous les caractères en majuscule
– la première lettre de chaque mot en majuscule. On suppose que chaque mot est précédé d’un
espace sauf le premier mot. Pour cet exercice, nous introduisons la structure de contrôle
(boucle) :
for (initialisation; condition; pas) {
...
}
intialisation
while (condition) {
pas
}
initialisation : $i=0
condition : $i < 10
pas : $i=$i+1
Solution
#!/usr/bin/perl -w
# Exercice5.pl
Master 1 - 2005/2006
2
B. Djioua-LaLICC-Université Paris-Sorbonne
Perl - Série de TP1 -
use strict;
my $texte=<STDIN>;
# Tout en majuscule
my $texteMajuscule=uc($texte);
# Tout en minuscule
my $texteMinuscule=lc($texte);
my $texteMotPremierMajuscule=uc(substr($texte,0,1)).substr($texte,1,length($texte)-1);
my $resultat=substr($texteMotPremierMajuscule,0,1);
for (my $i=1;$i<length($texteMotPremierMajuscule) ;$i=$i+1) {
my $caractere=substr($texteMotPremierMajuscule,$i,1);
my $precedent=substr($texteMotPremierMajuscule,$i-1,1);
if ($caractere ne ’ ’) {
if ($precedent eq ’ ’) {
$resultat.=uc($caractere);
}
else{
$resultat.=$caractere;
}
}
else {
$resultat.=$caractere;
}
}
print "Texte original : $texte\n";
print "Texte en majuscule : $texteMajuscule\n";
print "Texte en minuscule : $texteMinuscule\n";
print "Texte avec la première lettre des mots en majuscule : $resultat\n";
Exercice 6 :
Ecrire un programme Perl qui permet de renvoyer le nombre de fois qu’apparaı̂t
un caractère dans une chaı̂ne de caractères.
Solution
#!/usr/bin/perl
Master 1 - 2005/2006
3
B. Djioua-LaLICC-Université Paris-Sorbonne
Perl - Série de TP1 -
use strict;
my $texte=<STDIN>;
chomp($texte);
my $car=<STDIN>;
chomp($car);
my $cpt=0;
for (my $i=0;$i<length($texte) ;$i++) {
if (substr($texte,$i,1) eq $car) {
$cpt++;
}
}
print "Le nombre de caractères <$car> est : $cpt\n";
Master 1 - 2005/2006
4
B. Djioua-LaLICC-Université Paris-Sorbonne

Documents pareils