Exercices Corrigés En Algorithme – Fonctions et Procédures
La meilleure façon d’apprendre quelque chose est de pratiquer des exercices. Nous avons préparer ces exercices corrigés pour les personnes (débutantes ou intermédiaires) qui sont familières avec les algorithmes. Nous espérons que ces exercices vous aideront à améliorer vos compétences sur les fonctions et les procédures en algorithmique ainsi que les fonctions récursives.
Vous pouvez lire notre tutoriel sur les algorithmes avant de résoudre les exercices suivants.
1. Écrire une procédure qui affiche le message « Hello, World! ».
Procédure afficherHello()
Début
Ecrire("Hello, World!")
FinProcédure
2. Écrire une procédure qui affiche la chaine de caractère passé en paramètre.
Procédure afficherMsg(str:chaine de caractères)
Début
Ecrire(str)
FinProcédure
3. Écrire une fonction qui permet de calculer et retourner la somme de deux nombres n1 et n2 passés en paramètres.
Fonction somme(n1:entier, n2:entier)
Début
retourner n1 + n2
FinFonction
4. Écrire une fonction qui permet de calculer la valeur absolue d’un nombre donné.
Fonction nbrAbsolue(N : réel): réel
Début
Si(N > 0) alors
retourner N
Sinon
retourner -N
FinFonction
5. Écrire une procédure qui permet d’afficher la table de multiplication d’un nombre N.
Procedure getMultiplication(N: entier)
Variables i: entier
Début
Pour i de 1 à 10 faire
Ecrire(N," x ",i," = ",N*i)
FinPour
Fin
6. Écrire une procédure qui affiche si le nombre passé en paramètre est pair ou impair.
Exemple de sortie:
3 est impair. 2 est pair.
Procédure checkNbr(N:entier)
Début
Si(N mod 2 = 0) alors
Ecrire(N," est impair.")
Sinon
Ecrire(N," est pair.")
FinSi
FinProcédure
7. Écrire une procédure qui prend deux nombres, calcule la somme et la multiplication de ces deux nombres et affiche si le résultat est négatifs ou positifs.
Procédure testSigne(n1,n2: réel)
Variables sum, mult: réels
Début
Lire(n1, n2)
sum ← n1 + n2
mult ← n1 * n2
Si(sum ≥ 0) Alors
Ecrire("Somme positive")
Sinon
Ecrire("Somme négative")
FinSi
Si(mult ≥ 0) Alors
Ecrire("Multiplication positif")
Sinon
Ecrire("Multiplication négatif")
FinSi
FinProcédure
8. Écrire une fonction récursive qui affiche les entiers de 0 à 20. Cette fonction reçoit un seul paramètre.
Procédure afficherNbrs(n: entier)
Début
Ecrire(20 - n)
Si (n > 0) alors
n ← n + 1
afficherNbrs(n)
FinSi
FinProcédure
9. Écrire une fonction qui retourne le nombre de caractères dans une chaîne de caractères passée en paramètre.
Exemple de sortie:
Entrez une chaîne de caractères: Hello Le nombre de caractères est: 5
Fonction strSize(str[]: tableau de caractères): entier
Variables size: entier
size ← 0
Tant que(str[size] ≠ '\0') faire
size ← size + 1
FinTantque
retourner size
FinFonction
10. Écrire une procédure qui initialise un tableau. Cette procédure prend un tableau d’entier, sa taille et la valeur à insérer.
Procédure initialiser(T[]: tableau d❛entier, taille:entier, val:entier)
Variables i :entier;
Début
Pour i de 1 jusqu❛à taille faire
T[i] = val
finPour
fin
finProcédure
11. Écrire une fonction qui trouve le nombre de fois un caractère se trouve dans une chaîne de caractères. La fonction prend en paramètre le caractère à trouver et la chaîne de caractères.
Fonction countChar(string[]:tableau de caractères, c:caractère): entier
Début
Variables nbrChar,i:entiers
nbrChar ← 0
i ← 0
Tantque (string[i] ≠ '\0') faire
Si (string[i] = c)
nbrChar ← nbrChar + 1
i ← i + 1
FinSi
FinTantque
retourner nbrChar
Fin
12. Écrire une fonction qui permet de calculer le PGCD(Plus Grand Commun Diviseur) de deux nombres.
Fonction calculerPGCD(n1,n2:entier):entier
Début
Tantque(n1 * n2 ≠ 0) Faire
Si(n1 > n2) Alors
n1 ← n1 - n2
Sinon
n2 ← n2 - n1
FinSi
FinTantque
Si(n1 = 0) alors
retourner n2
Sinon
retourner n1
FinSi
Fin
🚀 Boostez votre productivité avec les meilleurs outils Web → Essayez-les
13. Écrire une procédure qui permet d’afficher si un nombre est premier ou non.
Procédure nbrPremier(N:entier)
Variables flag:booleen
compteur:entier
Début
flag ← Vrai
compteur ← 2
Tantque(compteur ≤ N/2 et flag = Vrai) Faire
Si(N mod compteur = 0) Alors
flag ← Faux
Sinon
compteur ← compteur + 1
FinSi
FinTantque
Si(flag = Vrai) Alors
Ecrire(N, " est premier")
Sinon
Ecrire(N, " n'est pas premier")
FinSi
Fin
14. Écrire une fonction récursive qui calcule le factorielle d’un nombre passé en paramétre.
Fonction fact(N: entier):entier
Début
Si (N=0 ou N=1) alors
retourner 1
Sinon
retourner fact(n-1) * n
FinSi
Fin
15. Écrire une procédure qui prend deux nombre N1 et N2 et affiche toutes les valeurs paires entre N1 et N2 si N1 < N2.
Procédure NbrPaires(N1,N2:entiers)
Début
Si(N1 >= N2) Alors
Ecrire("Erreur: N1 doit étre inférieur à N2!")
Sinon
Tantque(N1 < N2) Faire
Si(N1 mod 2 = 0) Alors
Ecrire(N1)
FinSi
N1 ← N1 + 1
FinTantque
FinSi
Fin
16. Écrire une fonction récursive qui calcule la série de Fibonacci d'un nombre passé en paramétre.

Fonction Fibonacci(N: entier): entier
Début
Si(N=0 ou N=1) alors
Retourner 1
Sinon
Retourner Fibonacci(N-2) + Fibonacci(N-1)
FinSi
FinFonction
17. Écrire une fonction récursive qui affiche les entiers de N1 à N2. Où N1 et N2 sont passés en paramètres.
Procédure nbrCompris(N1:entier, N2:entier)
Début
Ecrire(N1)
Si(N1 < N2) alors
N1 ← N1 + 1
nbrCompris(N1,N2)
FinSi
FinProcédure
18. Écrire une fonction récursive qui affiche les entiers de 0 à 20. Cette fonction reçoit un seul paramètre.
Procédure afficherNbrs(n: entier)
Début
Ecrire(20 - n)
Si (n > 0) alors
n ← n + 1
afficherNbrs(n)
FinSi
FinProcédure
19. Écrire une fonction récursive qui calculer b puissance e.
Exemple: Dans le cas de 23
- 2 est le nombre de base
- 3 est l'exposant
- Et la puissance est égale à 2*2*2
Fonction pow(b:réel, n:entier): réel
Début
Si(e = 0) alors
retourner 1
Sinon
retourner pow(b, e-1) * b
FinSi
FinFonction
20. Écrire une fonction récursive qui prend N et calcule la somme suivante 1+2+3+...+N.
Fonction sum(N: entier): entier
Début
Si(N=0) alors
retourner 0
Sinon
retourner sum(N-1) + N
FinSi
FinFonction
21. Écrire une fonction récursive qui permet de calculer le PGCD(Plus Grand Commun Diviseur) de deux nombres.
Fonction PGCD(n1:entier,n2:entier): entier
Début
Si(n2 = 0) alors
retourner n1
FinSi
retourner PGCD(n2, n1 mod n2)
FinFonction
22. Écrire une procédure qui lit un tableau d'entiers dont la dernière valeur = -1 et affiche le nombre d’entiers pairs et leur pourcentage par rapport au nombre d’entiers donnés.
Procédure NombresPairs
Variables i,count,NbrPairs: entiers
p : reel
Début
count ← 0
NbrPairs ← 0
Répéter
Lire(i)
count ← count + 1
Si (i mod 2 = 0) alors
NbrPairs ← NbrPairs + 1
FinSi
Jusqu’à(i = -1)
p ← NbrPairs * 100/count
Ecrire("Nbr de valeurs paires =",NbrPairs,"| pourcentage =",p)
Fin
23. Écrire une fonction qui calcule le prix TTC, cette fonction reçoit deux paramètres "prixHT" et "tva".
Fonction calculerTTC(ht,tva:réel): réel
Variables ttc:réel
Début
ttc ← ht * (1 + tva / 100)
retourner ttc
FinFonction
24. Écrire une fonction récursive qui affiche les éléments d'une matrice donnée.
Procédure echoMatrice(matrice[2][3]:tableau d'entiers,ligne,col:entier)
Début
Si(ligne < 2) alors
Si(col < 3) alors
Ecrire(matrice[ligne][col])
echoMatrice(matrice,ligne,col+1)
Sinon
echoMatrice(matrice,ligne+1,0)
FinSi
FinSi
FinProcédure
🚀 Boostez votre productivité avec les meilleurs outils Web → Essayez-les

