Quelques exercices de programmation en Perl
Alexandre Mesl´e
14 mars 2014
Table des mati`eres
1 Exercices 2
1.1 Introduction............................................ 2
1.1.1 G´eom´etrie......................................... 2
1.1.2 Arithm´etique ....................................... 4
1.1.3 Passage de tableaux en param`etre . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.4 D´ecomposition en facteurs premiers . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1
Chapitre 1
Exercices
1.1 Introduction
1.1.1 G´eom´etrie
Ecrire un programme prenant en argument une valeur num´erique positive npar la ligne de commande,
et affichant un carr´e, une croix et un losange, tous de cot´e n. Par exemple, si n= 10, l’ex´ecution donne
Saisissez la taille des figures
10
**********
* *
* *
* *
* *
* *
* *
* *
* *
**********
*
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
*
* *
* *
2
* *
* *
* *
* *
* *
* *
* *
*
* *
* *
* *
* *
* *
* *
* *
* *
* *
Vous d´efinirez des sous-programmes de quelques lignes et au plus deux niveaux d’imbrication. Vous
ferez attention `a ne jamais ´ecrire deux fois les mˆemes instructions. Pour ce faire, compl´etez le code source
suivant :
#! / us r / bi n / p e r l
use s t r i c t ;
use warnings ;
use C a r p ( ) ;
l o c a l $ S I G {__WARN__}=\&C a r p : : cluck ;
# a f f i c h e l e c a r ac t`e r e $c
sub afficheCaractere# char $c
{
}
# affiche $n f o i s l e c a r a c t`e r e $c
# ne r e v i e n t pas `a l a l i g n e ap r`es .
sub ligneSansReturn# i n t $n , i n t $c
{
}
# affiche $n f o i s l e c a r a c t`e r e $c
# r e v i e n t `a l a l i g n e a pr`e s .
sub ligneAvecReturn# i n t $n , i n t $c
{
}
# a f f i c h e n es pa ce s , r e v ie nt `a l a l i g n e a pr`es .
sub nEspaces# i n t $n
{
}
# affiche $c `a l a co lon ne $n , a f f i c h e d es e spa ce s ava nt .
# ne r e v i e n t pas `a l a l i g n e a pr`e s
# l e s i n d i c e s commencent `a 1 .
sub unCaractereSansReturn# i n t $n , i n t $c
{
}
# affiche $c `a l a c ol on ne $n , a f f i c h e d es e sp ac es avant .
# r e v i e n t `a l a l i g n e a pr`e s
sub unCaractereAvecReturn# i n t $n , i n t $c
{
}
# affiche $c aux colonnes $i e t $j
# r e v i e n t `a l a l i g n e a pr`e s .
sub deuxCaracteres# i n t $i , i n t $j , char $c
{
}
# a f f i c h e un c ar r´e de c ot´e $n .
sub carre# i n t $n
3
{
}
# a f f i c h e un chapeau don t l a p oint e (non a f f i c h ´e e )
# e s t s ur l a co lon ne $c e n t r e en u t i l i s a n t de s $c .
sub chapeau# i n t $c ent re , char $c .
{
}
# a f f i c h e un chapeau ret ou rn´e dont l a poi n te (non a f f i c h ´e e )
# e s t s ur l a co lon ne $c e n t r e en u t i l i s a n t de s $c .
sub chapeauInverse# i n t $c ent re , char $c .
{
}
# a f f i c h e un l o s a n g e de c o t ´e $n .
sub losange# i n t $n
{
}
# a f f i c h e un l o s a n g e de c o t ´e $n .
sub croix# i n t $n
{
}
c a r r e $ A R G V [ 0 ] ;
l o s a n g e $ A R G V [ 0 ] ;
c r o i x $ A R G V [ 0 ] ;
1.1.2 Arithm´etique
Exercice 1 - chiffres et nombres
1. Ecrire la fonction unites(n)retournant le chiffre des unit´es du nombre n.
2. Ecrire la fonction dizaines(n)retournant le chiffre des dizaines du nombre n.
3. Ecrire la fonction extrait(n,p)retourant le p-`eme chiffre de repr´esentation d´ecimale de nen partant
des unit´es.
4. Ecrire la fonction nbChiffres(n)retournant le nombre de chiffres que comporte la repr´esentation
d´ecimale de n.
5. Ecrire la fonction sommeChiffres(n)retournant la somme des chiffres de n.
Exercice 2 - Nombres amis
Soient aet bdeux entiers strictement positifs. aest un diviseur strict de bsi adivise bet a6=b. Par
exemple, 3 est un diviseur strict de 6. Mais 6 n’est pas un diviseur strict 6. aet bsont des nombres amis
si la somme des diviseurs stricts de aest bet si la somme des diviseurs de best a. Le plus petit couple
de nombres amis connu est 220 et 284.
1. Ecrire une fonction sommeDiviseursStricts(n), elle doit renvoyer la somme des diviseurs stricts de
n.
2. Ecrire une fonction sontAmis(a,b), elle doit renvoyer 1 si aet bsont amis, 0 sinon.
Exercice 3 - Nombres parfaits
Un nombre parfait est un nombre ´egal `a la somme de ses diviseurs stricts. Par exemple, 6 a pour
diviseurs stricts 1, 2 et 3, comme 1 + 2 + 3 = 6, alors 6 est parfait.
1. Est-ce que 18 est parfait ?
2. Est-ce que 28 est parfait ?
3. Que dire d’un nombre ami avec lui-mˆeme ?
4. Ecrire la fonction estParfait(n), elle doit retourner 1 si nest un nombre parfait, 0 sinon.
4
1 / 7 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !