0% ont trouvé ce document utile (0 vote)
115 vues5 pages

TD4 Solution

Ce document contient la solution à plusieurs exercices sur les procédures, fonctions et algorithmes en langage de programmation. Il définit plusieurs fonctions comme max2, max3, fact, puissance et calPGDC et présente des algorithmes pour tester ces fonctions.

Transféré par

Ilyas Ghachimi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
115 vues5 pages

TD4 Solution

Ce document contient la solution à plusieurs exercices sur les procédures, fonctions et algorithmes en langage de programmation. Il définit plusieurs fonctions comme max2, max3, fact, puissance et calPGDC et présente des algorithmes pour tester ces fonctions.

Transféré par

Ilyas Ghachimi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université Cadi Ayyad

Faculté des Sciences Semlalia Marrakech  


  Département d’Informatique

TD4- Algorithmique I
Module informatique SMIA-S2
2020-2021
Procédures et Fonctions
Solution

Exercice 1 :

1. Ecrire une procédure Pairproc qui prend en argument un entier


et qui affiche le message « nombre pair » si le nombre est pair
et « nombre impair » sinon.
Ecrire le programme principal pour tester cette procédure
Procedure Pairproc (a :Entier)
Si (a % 2 = 0) alors
Ecrire ("Le nombre",a, " est pair")
Sinon
Ecrire ("Le nombre",a, " est impair")
Finsi
FinProcedure
Algorithme PairImpair
Var x : Entier
Début
Ecrire (" Veuillez saisir un nombre entier :")
Lire(x)
Pairproc(x)
Fin

2. Ecrire un algorithme qui donne le volume d’un cylindre de


rayon r et de hauteur h en faisant appel à une fonction aire qui
prend r comme paramètre qui retourne l’aire d’un cercle.
Fonction AirCylindre (r :Reel) : Reel
Const PI ! 3.14 : Reel
Var a : Reel
a ! PI * r * r
retourne(a)
FinFonction
Algorithme VolumeCylindre
Var r, h, vol : Reel
Début
Ecrire (" Veuillez saisir le rayon et la hauteur du cylindre :")
Lire(r, h)
Vol ! h * AirCylindre(r)
Ecrire (" Le volume du cylindre est :",vol)
Fin

Exercice 2 :

1. Ecrire une fonction max2 qui retourne le maximum de deux


entiers.

a. En utilisant si et sinon

Fonction max2 (a : entier, b : entier) : entier


Si (a > b) alors
retourne (a)
Sinon
retourne (b)
Finsi
FinFonction

b. Sans utilisation de sinon

Fonction max2 (a : entier, b : entier) : entier


Si (a > b) alors
retourne (a)
Finsi
Si (b >= a) alors
retourne (b)
Finsi
FinFonction

2. Ecrire une fonction max3 qui retourne le maximum de trois


entiers en faisant appel à max2 qui retourne le maximum de
deux entiers

Fonction max3 (a : entier, b : entier, c : entier) : entier


Si (a > max2 (b,c) ) alors
retourne (a)
Sinonsi (b > max2 (a,c)) alors
retourne (b)
sinon
retourne (c)
Finsi
FinFonction
3. Ecrire un programme PREMIERS affichant les nombres premiers
inférieurs à 100. On utilisera une fonction Premier prenant un
nombre entier et retournant vrai si le nombre est premier, faux
sinon.

Fonction Premier (a : entier) : Booléen


Var test, i : Entier
test ! 0
Pour i ! 2 jusqu'à a-1
Si (a mod i = 0) alors
test ! 1
Finsi
Finpour
Si (test = 1) alors
retourne (faux)
Sinon
retourne (vrai)
Finsi
FinFonction

Algorithme PREMIERS
Var n : Entier
Debut
Pour n allant de 2 jusqu'à 100
Si (Premier (n) = vrai)
Ecrire (n, "est premier")
Finsi
Finpour
Fin

4. Écrire une fonction fact qui renvoie la factorielle d’un nombre n :


n! et une fonction puissance qui calcule la puissance nième d’un
nombre x : xn

Fonction Fact (n : entier) : Entier


Var fct, i : Entier
Si (n = 0) alors
fct ! 1
Sinon
fct ! 1
pour i allant de 1 jusqu'à n
fct ! fct * i
Finpour
Finsi
retourne (fct)
FinFonction
Fonction Puissance (X : entier, n : Entier) : Entier
Var puiss, i : Entier
puiss ! 1
Pour i allant de 1 jusqu'à n
puiss ! puiss * x
Finpour
retourne (puiss)
FinFonction

5. Ecrire un algorithme qui calcule la somme des puissances p-ième


des entiers et qui utilise la fonction puissance précédemment
définie :

Algorithme Somme_puissance
Var p, n, S, i : Entiers
Début
i!0
Ecrire (" Entrer la puissance p et le nombre n :")
Lire(p,n)
S!0
Pour i allant de 1 jusqu'à n
S ! S + Puissance(i,p)
Finpour
Ecrire(" La somme des puissances est : ", S)
Fin

Exercice 3 :

Ecrire une fonction calPGDC qui prend comme paramètres deux


nombres a et b et qui renvoie le plus grand commun diviseur de a et b
(avec a>=b). On utilisera le fait que si b=0 alors PGDC(a,b)=a et sinon,
en appelant r le reste de la division euclidienne de a par b (a mod b)
alors le pgdc de a et de b est aussi le pgdc de b et de r

Ecrire un programme TEST qui permet de tester cette fonction

Fonction calPGDC (a : Entier, b : Entier) : Entier


Var r, x, y : Entier
Si (a > b) alors
x!a
y!b
Sinon
x!b
y!a
Finsi
Si (y = 0) alors
retourne(x)
Sinon
r ! x mod y
Tantque (r != 0) faire
x!y
y!r
r ! x mod y
Fintantque
retourne(y)
Finsi
FinFonction

Algorithme TEST
Var n, m : entier
Début
Ecrire (" entrer deux nombres")
Lire(n,m)
Ecrire(" Le PGDC de ", n, " et ", m, " est : ", calPGDC (n,m))
Fin

Vous aimerez peut-être aussi