Travaux Dirigés Algorithmique et Programmation
Niveau L1 Série N°2 : Tests, Boucles, Matrices
------------------------------------------------------------------------------------------------------------------------
Exercice 1 : Quelle est la valeur de la variable x après la suite d’instructions suivante ? De même pour y
x = -3 x0 = 3
Si x < 0 alors x=5
x = -x Si (x < x0) alors
FinSi y = -1
Sinon
y=1
FinSi
La valeur de x est égale à 3 et celle de y vaut 1
Exercice 2 : Écrire un algorithme qui détermine le maximum m de 2 nombres entiers x et y.
Algorithme maxim
Variables
x,y : entiers // variables d’entrées
m : entiers // variable de sortie
Début
/* Entrer les 02 nombres x et y */
lire( x,y)
/* Algorithme qui calcul le maximum de x et y */
m=x
Si (x<y) alors
m=y
Sinon
m=x
FinSi
/* Affiche le maximum m */
Affiche (m)
Fin
Exercice 3 : Demandez à l’utilisateur de saisir 20 nombres et indiquez-lui ensuite le plus grand parmi ces 20
nombres. On ne corrige pas cette exercice, on conseil aux étudiants d’utiliser un tableau de taille 20.
Exercice 4 : Proposer un algorithme avec un test alternative simple pour calculer la fonction y=f ( x) de
la figure suivante :
Algorithme fonctionf
Variables
x,y : entiers
Début
Lire(x) // Saisie de la valeur de x
/* Algorithme */
y=2
Si (x<-1 ou x>2) alors
y=0
FinSi
Ecrire (y) // Affichage de la valeur de la fonction y pour la valeur de x saisie
Fin
Exercice 5 : Écrire un algorithme qui détermine la catégorie sportive d’un enfant selon son âge :
– Poussin de 6 à 7 ans – Pupille de 8 à 9 ans – Minime de 10 à 11 ans – Cadet de 12 ans à 14 ans.
Travaux Dirigés Algorithmique et Programmation
Niveau L1 Série N°2 : Tests, Boucles, Matrices
------------------------------------------------------------------------------------------------------------------------
Algorithme sport
Variable
age : entier
Début
Ecrire ('entrez votre age (>= 6 ans)')
lire (age)
Si (age>=6 et age<=7) alors
Affiche ('catégorie : Poussin')
Sinon
Si (age>=8 et age<=9) alors
Affiche ('catégorie : Pupille')
Sinon
Si (age>=10 et age<=11) alors
Affiche ('catégorie : Minime')
Sinon
SI (age>=12 et age<=14) alors
Affiche ('catégorie : Cadet')
FinSI
FinSi
FinSI
FinSi
Fin
Ici, l’algorithme ne fait rien si l’age est inférieure à 6 ou supérieure à 14. Les étudiants peuvent améliorer ce
pseudo-code pour que l’algorithme soit plus robuste.
Exercice 6 : Écrire un algorithme qui calcule n! = 1*2*3*. . .*(n−1)*n.
La démarche contient les instructions suivantes :
fact = 1
pour i ← 1, n
fact = fact * i
end do
C’est à l’étudiant de compléter l’algorithme
Exercice 7 : Écrire un algorithme itératif qui affiche les n lignes suivantes (l’exemple est donné ici pour n = 6).
******
*****
****
***
**
*
(Il est interdit d’écrire 5* ‘*’ pour le cas de * * * * * ).
Exercice 8 : Écrire une instruction qui calcule la somme des n premiers termes d’une suite arithmétique.
uk =a+r · k
Ici, on demande à l’utilisateur d’entrer la raison r, le premier terme a , le nombre de termes n et on affiche la
somme s de ces n premiers termes en utilisant une boucle de son choix.
Travaux Dirigés Algorithmique et Programmation
Niveau L1 Série N°2 : Tests, Boucles, Matrices
------------------------------------------------------------------------------------------------------------------------
algorithme suite_arith
Variables
a,r,n : entier // variables d’entrées
u,k : entier // variables intermédiaire et compteur
s : entier //variable de sortie
Début
lire (a,r,n)
s=0
Pour k← 0 , n-1
u = a + (r*k)
s=s+u
FinPour
Affiche (s)
Fin
Exercice 9 : Écrivez un algorithme qui range trois réels donnés (a, b, et c) dans l’ordre croissant en utilisant
la boucle répéter ... jusqu’à.
Algorithme TriTroisNombres
Variables
a, b, c, temp : réel
Début
/* Saisie des trois nombres */
Écrire ( ‘ Entrez trois nombres réels : ‘ )
Lire (a, b, c)
/ * Tri des nombres * /
Répéter
Si (a > b) alors
temp = a
a=b
b = temp
FinSi
Si (b > c) alors
temp = b
b=c
c = temp
FinSi
/ * Répéter jusqu'à ce que les nombres soient triés * /
Jusqu’à (a <= b .and. b <= c)
/ * Affichage des nombres triés * /
Écrire ( ‘ Les nombres triés dans l'ordre croissant sont : ‘, a, b, c)
Fin
Exercice 10 : Écrivez un algorithme qui calcule la somme des nombres entiers impairs inférieurs ou égaux à n
en utilisant la boucle tant que. C’est presque identique à l’exercice 8 mais utilisant la boucle tant que
Exercice 11 : Établir un algorithme et un programme qui détermine la plus grande valeur parmi les éléments
d’un tableau de taille n.
- Déclarer un tableau T de n éléments.
- Initialiser une variable max_val avec la première valeur du tableau (T(1)).
- Parcourir le tableau de la deuxième à la n-ième position :
- Si T(i) est supérieur à max_val, mettre à jour max_val avec T(i).
- Afficher max_val comme la plus grande valeur du tableau.
Travaux Dirigés Algorithmique et Programmation
Niveau L1 Série N°2 : Tests, Boucles, Matrices
------------------------------------------------------------------------------------------------------------------------
Algorithme MaxValue
Constante
n ← 10 : entier // taille de votre tableau
Variables
T : Tableau (n) Entier
i, max_val : Entier
/ * Lire les éléments du tableau * /
Affiche (‘Entrez les’, n, ‘éléments du tableau :’)
Pour i ← 1 à n Faire
Lire T(i)
FinPour
max_val ← T(1) // Initialiser max_val avec la première valeur du tableau
/ * Trouver la plus grande valeur * /
Pour i ← 2 à n
Si (T(i) > max_val) alors
max_val = T(i)
FinSi
FinPour
/ * Afficher la plus grande valeur * /
Affiche ( ‘La plus grande valeur du tableau est :’ , max_val)
Fin
Exercice 12 : Établir un algorithme et un programme qui range les éléments d’un tableau par ordre croissant.
(Voir Cours)
Exercice 13 : Établir un algorithme et un programme qui calcul la somme et le produit de 02 matrices carrées
(Voir Cours
----------------------- Fin de la série N°2 sur les tests, les boucles et les matrices -----------------------