Université Notre Dame de Tanganyika
Rapport de Travaux Pratiques
Cours d'Algorithmique
Présenté par :
BIJIGWETE MUSHOMBE Flammand
Année Académique : 2025
Encadreur :
CT Ir. Alain AGANZE M.
Uvira, Décembre 2025
I. LECTURE ET ECRITURE
Exercice 1
Énoncé :
Acher les messages suivants dans un algorithme :
L'algorithme se dénit comme une suite nie d'instructions qui conduit à un résultat
donné s'il est bien exécuté.
Un algorithme prend des données en entrée, exprime un traitement particulier et
fournit des données en sortie.
NB : Les messages doivent être stockés dans diérentes variables avant l'achage
Solution : Algorithme
Variables :
msg1, msg2 : chaîne
Début
msg1 "L'algorithme se définit comme une suite finie
d'instructions qui conduit à un résultat donné s'il est bien exécuté."
msg2 "Un algorithme prend des données en entrée, exprime un traitement
particulier et fournit des données en sortie."
Ecrire(msg1)
Ecrire (msg2)
Fin
Exercice 2
Énoncé :
Faite un algorithme qui incite l'utilisateur d'entrer le nom, l'adresse, le numéro matricule,
la date de naissance et les stocker dans diérentes variables avant de les acher. .
Solution : Algorithme
Variables :
nom, adresse, matricule, naissance : chaîne
Début
Ecrire("Entrer votre nom :")
Lire nom
1
Ecrire("Entrer votre adresse :")
Lire adresse
Ecrire("Entrer votre matricule :")
Lire matricule
Ecrire("Entrer votre date de naissance :")
Lire naissance
Ecrire("Entrer votre date de naissance :")
Ecrire ("Nom :",nom)
Ecrire ("Adresse :",adresse)
Ecrire ("Matricule :",matricule)
Ecrire ("Date de naissance :",naissance)
Fin
Exercice 3
Énoncé :
Eectuer les opérations suivantes (schéma détaillé) :
a) 4 + 2 × (6 − 12)3
b) 7 × 3/4 + 44
c) 9 − (3 + 10) × 2/4
d) 5/24 × 6 − (73 )
Résolution par étape selon la priorité des opérateurs:
a) (6 − 12) = −6
(−6)3 = −216
2 × (−216) = −432
4 + (−432) = −428
b) 7 × 3 = 21
21
4
= 5, 25
4
4 = 256
5, 25 + 256 = 261, 25
c) 3 + 10 = 13
2/4 = 0, 5
13 × 0, 5 = 6, 5
9 − 6, 5 = 2, 5
d) 24 = 16
5/16 = 0, 3125
0, 3125 × 6 = 1, 875
73 = 343
1, 875 − 343 = −341, 125
Exercice 4
Énoncé :
Dans une ferme, il n'y a que des poules et des moutons, chaque mouton a quatre pattes
2
et zéro aile ; chaque poule a deux pattes et deux ailes. Nous comptons 26 ailes et 122
pattes. Faites un algorithme qui incitera l'utilisateur d'entrer le nombre des ailes et des
pattes et qui nous retournera le nombre des poules et le nombre des moutons.
Toutes les ailes appartiennent nécessairement à des poules. Comme chaque
poule a deux ailes, il y a 26:2=13 poules. Donc, 2*13=26 pattes appartiennent
à une poule. Par conséquent, 122-26=96 pattes appartiennent à un mouton.
Comme chaque mouton a exactement quatre pattes, il y a 96:4=24 moutons
!
Solution :
Variables :
ailes, pattes, poules, moutons,pattes_poules,pattes_moutons : en numerique
Début
Ecrire("Entrer le nombre des ailes en numeric")
Lire ailes
Ecrire("Entrer le nombre des pates en numeric")
Lire pattes
poules ailes / 2
pattes_poules poules * 2
pattes_moutons pattes - pattes_poules
moutons pattes_moutons / 4
Ecrire("Voici le resultat:")
Ecrire("Nombre de poules :",poules)
Ecrire("Nombre de pates:" , moutons)
Fin
3
II. LES TESTS (Structures alternatives
ou conditionnelles)
Exercice 5
Énoncé :
Faites un algorithme qui calcul l'intérêt simple en incitant l'utilisateur d'entrer les données
nécessaires.
Solution : Algorithme
Variables :
capital, taux, temps, interet : en réel
Début
Lire capital
Lire taux
Lire temps
interet (capital * taux * temps) / 100
Ecrire("Voici l'interet :",interet)
Fin
Exercice 6
Énoncé :
Créer un algorithme qui incite l'utilisateur d'entrer deux nombres et d'acher leur quo-
tient si la première valeur est supérieure au tiers de la seconde et leur produit si et
seulement si la seconde valeur est inférieure ou égale au triple de la précédente.
Solution : Algorithme
Variables :
a, b, resultat :en réel
Début
Lire a, b
Si a > (b / 3) Alors
resultat a / b
Afficher resultat
FinSi
4
Si b <= (3 * a) Alors
resultat a * b
Ecrire("Voici le resultat :",resultat)
FinSi
Fin
Exercice 7
Énoncé :
Ecrire un algorithme qui permet de résoudre une équation de 2nd degré à une inconnue
: ax2 + bx + c. L'utilisateur entre les trois paramètres de l'équation : a, b et c. Puis
l'algorithme ache la solution.
Solution : Algorithme
Variables :
a, b, c, delta, x1, x2 : en réel
Début
Lire a, b, c
Si a = 0 Alors
Ecrire ("Ce n'est pas une équation du second degré")
Sinon
delta b*b - 4*a*c
Si delta = 0 Alors
x1 (-b) / (2*a)
Ecrire("Une seule solution : ", x1)
SinonSi delta > 0 Alors
x1 (-b + racine(delta)) / (2*a)
x2 (-b - racine(delta)) / (2*a)
Ecrire("Deux solutions : ", x1, x2)
Sinon
Ecrire("Aucune solution réelle")
FinSi
FinSi
Fin
Exercice 8
Énoncé :
Voici l'algorithme ci-après :
Variables i, j, k en entier
Début
i =4
j=i++
k=j+i* j
Ecrire Entrer l'entier
Lire i
5
j =k-j* i++
k= k
Ecrire k,j,i
Fin
TD: Qu'est-ce que la machine va acher si l'utilisateur saisit 4 comme valeur.
Solution : Interprétation etape par etape
Valeurs initiales : i = 4
j =i++ :
j reçoit la valeur de i, donc j = 4
puis i est incrémenté ⇒ i = 5
k =j+i×−−j
− − j ⇒ j = 3 (décrémentation avant utilisation)
k = 3 + 5 × 3 = 18
Lecture de i par l'utilisateur : i = 4 (ancienne valeur remplacée)
j =k−j×i++
L'opérateur i + + utilise d'abord i = 4
puis i devient 5
j = 18 − 3 × 4 = 6
k = − − k : k = 17 (décrémentation avant aectation)
i = 5, j = 6, k = 17
Exercice 9
Énoncé :
Soit la vente des articles au sein de la cantine "ISRA":
Une réduction de 5% sera accordée aux clients qui auront acheté 5 PRIMUS ou 2
AMSTEL ;
Une reduction de 3% sera accordée aux clients qui auront acheté plus de 5 bouteilles
du COCA-COLA ou de VITALO ;
L'achat des autres boissons à plus de 10 bouteilles, nécessite une réduction de 1,5%.
TD: Simulez cela par un algorithme et calculer le NET A PAYER.
Solution : Algorithme
6
Variables :
type_boisson :en chaîne
qte : en entier
prix_unitaire, total, reduction, net : en réel
Début
Ecrire("Entrer le type de boisson")
Lire type_boisson
Ecrire("Entrer la quantité")
Lire qte
Ecrire("Entrer le prix unitaire")
Lire prix_unitaire
total qte * prix_unitaire
reduction 0
Si (type_boisson = "PRIMUS" et qte = 5) OU
(type_boisson = "AMSTEL" et qte = 2) Alors
reduction 0.05 * total
SinonSi (type_boisson = "COCA" OU type_boisson = "VITALO")
et qte > 5 Alors
reduction 0.03 * total
SinonSi qte > 10 Alors
reduction 0.015 * total
FinSi
net total - reduction
Ecrire("Voici le NET A PAYER :",net)
Fin
Exercice 10
Énoncé :
Créer un algorithme qui sera capable de retourner le Net à Payer des agents en fonction
des critères ci-après :
Seuls les agents dont le salaire est compris entre 200$ et 300$ et dont le nombre
d'enfant est compris entre 3 et 7 peuvent payer 2,8% du salaire brut, les cadres ayant
déjà 11 ans et plus d'ancienneté ne paient pas la taxe d'INSS. Les autres doivent
payer 4,8% de leur salaire brut.
La prime est fonction de l'ancienneté, seuls les agents dont l'ancienneté est supérieure
à 2 ans et ne dépassent pas 10 bénécierons d'une prime de 5% sur le salaire brut.
Les autres une prime de 2,8%.
Solution : Algorithme
Variables :
salaire, enfants, anciennete : en réel
taxe_inss, prime, net : en réel
7
Début
Ecrire("Entrer le salaire")
Lire salaire
Ecrire("Entrer les enfants")
Lire enfants
Ecrire("Entrer les anciennete")
Lire anciennete
Si salaire >= 200 ET salaire <= 300
ET enfants >= 3 ET enfants <= 7 Alors
Si anciennete >= 11 Alors
taxe_inss 0
Sinon
taxe_inss 0.028 * salaire
FinSi
Sinon
taxe_inss 0.048 * salaire
FinSi
Si anciennete > 2 ET anciennete <= 10 Alors
prime 0.05 * salaire
Sinon
prime 0.028 * salaire
FinSi
net salaire - taxe_inss + prime
Ecrire("Voici le Net à Payer : ", net)
Fin
8
III. LES BOUCLES (Structures
itératives ou répétitives)
Exercice 5
Énoncé :
Faites un algorithme qui ache la table de multiplication par 7 en utilisant les structures
répétitives suivantes : Pour. . . Suivant et Tant Que.
Algorithme avec Pour
Variables i en entier
Début
Pour i 1 à 10
Ecrire("7 x ", i, " = ", 7*i)
FinPour
Fin
Algorithme avec Tant Que
Variables i en entier
Début
i 1
TantQue i <= 10
Ecrire ("7 x ", i, " = ", 7*i)
i i + 1
FinTantQue
Fin
Exercice 6
Énoncé :
Faites un algorithme qui calcul la somme des nombres entiers entrer par l'utilisateur
jusqu'à ce que celui-ci met n à la saisie des données en saisissant la lettre r .
Variables x, somme en entier ; rep en caractère
Début
somme 0
rep "n"
TantQue rep != "r"
Ecrire "Entrer un entier"
9
Lire x
somme somme + x
Ecrire "Voulez-vous arrêter ? (r pour arrêter)"
Lire rep
FinTantQue
Ecrire("La somme = ", somme)
Fin
Exercice 7
Énoncé :
Créer un algorithme qui ache la factorielle d'un nombre saisi par l'utilisateur.
Rappel théorique :
La factorielle d'un nombre entier naturel n, notée n!, est dénie comme le produit de tous
les entiers positifs inférieurs ou égaux à n.
Ainsi :
n! = 1 × 2 × 3 × . . . × n
Avec les cas particuliers suivants :
0! = 1 et 1! = 1
Solution avec boucle Pour :
Variables n, i, fact en entier
Début
Ecrire "Entrer un nombre"
Lire n
fact 1
Pour i 1 à n
fact fact * i
FinPour
Ecrire("La factorielle est : ", fact)
Fin
Exercice 8
Énoncé :
Faites un algorithme nommé "Nombre des Femmes", qui incite l'utilisateur à saisir les in-
formations des agents de l'UNDT-UVIRA et ache le nombre des femmes tout en sachant
que les agents sont au nombre de 25.
Solution algorithmique :
Variables sexe en chaine ; i, nbFemmes en entier
Début
nbFemmes 0
Pour i 1 à 25
10
Ecrire "Entrer le sexe de l'agent (M/F)"
Lire sexe
Si sexe = "F" Alors
nbFemmes nbFemmes + 1
FinSi
FinPour
Ecrire "Nombre de femmes : ", nbFemmes
Fin
Exercice 9
Énoncé :
Ecrire un algorithme qui demande à l'utilisateur de saisir un entier N et qui ache les
nombres premiers se trouvant entre 1 et ce N entier. Solution Cet exercice a pour but de
vérier les points techniques suivants :
Utilisation des boucles for et while.
Imbrication de boucles assez complexe.
Lire précisément un énoncé.
Modélisation assez complexe d'un problème issu des mathématiques.
Solution algorithmique :
Variables N, i, j, compt en entier
Début
Ecrire "Entrer un entier N"
Lire N
Pour i 2 à N
compt 0
Pour j 1 à i
Si i % j = 0 Alors
compt compt + 1
FinSi
FinPour
Si compt = 2 Alors
Ecrire i
FinSi
FinPour
Fin
Exercice 11
Énoncé :
Ecrire un algorithme qui tire au hasard un nombre entier compris entre 1 et Ce nombre
(secret) n'est pas aché. Puis l'algorithme demande à l'utilisateur d'entrer un nombre
entier au hasard entre 1 et 10. Si le nombre de l'utilisateur est supérieur au nombre secret,
11
l'algorithme lui indique en lui demandant d'entrer un nouveau nombre. De même si le
nombre est inférieur. Puis, lorsque l'utilisateur trouve, l'algorithme lui dit qu'il a gagné
en lui indiquant le nombre de fois qu'il lui a fallu pour trouver le nombre.
Solution algorithmique :
Variables secret, guess, essais en entier
Début
secret nombre_aleatoire(1,10)
essais 0
Répéter
Ecrire "Entrer un nombre entre 1 et 10"
Lire guess
essais essais + 1
Si guess > secret Alors
Ecrire "Trop grand"
Sinon Si guess < secret Alors
Ecrire "Trop petit"
FinSi
Jusqu'à ce que guess = secret
Afficher "Gagné ! Nombre d'essais : ", essais
Fin
Exercice 12
Énoncé :
12) Ecrire un algorithme qui demande à l'utilisateur de saisir un entier N et qui ache le
nombre de nombres premiers inférieurs ou égaux à N.
Rappel théorique :
Un nombre premier est un nombre entier strictement supérieur à 1 qui n'admet que deux
diviseurs : 1 et lui-même.
Exemples : 2, 3, 5, 7, 11, 13, . . . sont des nombres premiers.
Par contre : 4, 6, 8, 9, 10, . . . ne sont pas premiers car ils possèdent plus de deux diviseurs.
Pseudo-code :
Variables : N, i, j, compteur, estPremier en entier
Début
Ecrire "Entrez un entier N : "
Lire N
compteur 0
Pour i 2 à N Faire
estPremier 1
Pour j 2 à i - 1 Faire
Si (i % j = 0) Alors
estPremier 0
Fin Si
12
Fin Pour
Si estPremier = 1 Alors
compteur compteur + 1
Fin Si
Fin Pour
Ecrire "Il y a ", compteur, " nombres premiers ", N
Fin
Exercice 13
Énoncé :
Ecrire un algorithme qui demande à l'utilisateur de taper des entiers strictement positifs
et qui ache leur moyenne. Lorsqu'on tape une valeur négative, l'algorithme ache
ERREUR et demande de retaper une valeur. Lorsqu'on tape 0, cela signie que le dernier
entier a été tapé. On ache alors la moyenne. Si le nombre d'entiers tapés est égal à 0,
on n'ache PAS DE MOYENNE.
Variables x, somme, n en entier
Début
somme 0
n 0
Répéter
Ecrire "Entrer un entier positif (0 pour terminer)"
Lire x
Si x < 0 Alors
Ecrire "ERREUR - Reprendre"
Sinon Si x > 0 Alors
somme somme + x
n n + 1
FinSi
Jusqu'à ce que x = 0
Si n = 0 Alors
Ecrire "PAS DE MOYENNE"
Sinon
Ecrire "Moyenne = ", somme / n
FinSi
Fin
Exercice 14
Énoncé :
Faites un algorithme nommé Calculatrice en utilisant les structures alternatives et
itératives. L'algorithme doit être en mesure d'eectuer les opérations ci-après :
L'addition
13
La soustraction
La multiplication
La division.
NOTA : L'arrêt de l'algorithme sera conditionné par la lettre "a" et sur n'importe
quelle touche pour continuer l'opération.
Variables a, b, resultat en réel ; op, rep en caractère
Début
rep "o"
TantQue rep != "a"
Ecrire "Entrer le premier nombre"
Lire a
Ecrire "Entrer le second nombre"
Lire b
Ecrire "Choisir opération (+, -, *, /)"
Lire op
si op="+" alors
resultat a + b
Sinon si op="-" alors
resultat a - b
Sinon Si op="*" alors
resultat a * b
Sinon Siop = "/" alors
Si b != 0 Alors
resultat a / b
Sinon
Ecrire "Division impossible"
FinSi
Sinon
Ecrire "Entrer un bon signe"
Finsi
Ecrire "Résultat = ", resultat
Ecrire "Appuyer 'a' pour arrêter, autre touche pour continuer"
Lire rep
FinTantQue
Fin
Exercice 15
Énoncé :
Faites un algorithme qui simule le calcul d'amortissement par la méthode linéaire.
Rappel théorique :
L'amortissement linéaire est une méthode permettant de répartir le coût d'un bien sur sa
durée de vie de manière égale chaque année.
Formule de l'amortissement annuel :
V aleurd′ acquisition − V aleurrsiduelle
Amortissementannuel =
Duredevie
14
où :
Valeur d'acquisition : prix d'achat du bien
Valeur résiduelle : valeur estimée du bien en n de vie
Durée de vie : nombre d'années pendant lesquelles le bien sera utilisé
Pseudo-code :
Variables : valeurAcquisition, valeurResiduelle, dureeVie, amortissementAnnuel, annee
Début
Ecrire "Entrez la valeur d'acquisition du bien : "
Lire valeurAcquisition
Ecrire "Entrez la valeur résiduelle du bien : "
Lire valeurResiduelle
Ecrire "Entrez la durée de vie du bien (en années) : "
Lire dureeVie
amortissementAnnuel (valeurAcquisition - valeurResiduelle) / dureeVie
Pour annee 1 à dureeVie Faire
Ecrire "Année ", annee, " : amortissement = ", amortissementAnnuel
Fin Pour
Fin
15
IV. LES TABLEAUX
Exercice 5
Énoncé :
Faite un algorithme qui incitera l'utilisateur à saisir 10 entier dans un tableau nommé
TabNombre et d'acher le plus petit nombre.
Variables : TabNombre[10], i, min en entier
Début
Pour i 1 à 10 Faire
Ecrire "Entrez le nombre ", i, " : "
Lire TabNombre[i]
Fin Pour
min TabNombre[1]
Pour i 2 à 10 Faire
Si TabNombre[i] < min Alors
min TabNombre[i]
Fin Si
Fin Pour
Ecrire "Le plus petit nombre est : ", min
Fin
Exercice 6
Énoncé :
Créer un algorithme qui permettra à l'utilisateur de saisir les désignations de 15 produits
et de les acher.
Variables : Produits[15] en chaine, i
Début
Pour i 1 à 15 Faire
Ecrire "Entrez la désignation du produit ", i, " : "
Lire Produits[i]
Fin Pour
Ecrire "Les produits saisis sont :"
Pour i 1 à 15 Faire
Ecrire Produits[i]
16
Fin Pour
Fin
Exercice 7
Énoncé :
Ecrire un algorithme qui demande de saisir 10 entiers dans un tableau et qui ache le
nombre d'occurrences de la note la plus haute.
Variables : TabNotes[10], i, max, compteur en entier
Début
Pour i 1 à 10 Faire
Ecrire "Entrez la note ", i, " : "
Lire TabNotes[i]
Fin Pour
max TabNotes[1]
Pour i 2 à 10 Faire
Si TabNotes[i] > max Alors
max TabNotes[i]
Fin Si
Fin Pour
compteur 0
Pour i 1 à 10 Faire
Si TabNotes[i] = max Alors
compteur compteur + 1
Fin Si
Fin Pour
Ecrire "La note la plus haute est ", max, " et elle apparaît ", compteur, " fois"
Fin
Exercice 8
Énoncé :
Faites un algorithme qui sera capable d'eectuer les opérations suivantes : a) Stocker les
noms des N étudiants dans un tableau b) Acher les noms des étudiants c) Modier les
noms des étudiants NOTATION : L'arrêt de l'algorithme est conditionné par la lettre
a .
Variables : Etudiants[100] en chaine, i, N en entier, choix, nom en chaine
Début
Ecrire "Entrez le nombre d'étudiants : "
Lire N
Pour i 1 à N Faire
Ecrire "Entrez le nom de l'étudiant ", i, " : "
17
Lire Etudiants[i]
Fin Pour
Tant que vrai Faire
Ecrire "Choisissez : 1=Afficher, 2=Modifier, a=Arrêter : "
Lire choix
Si choix = "a" Alors
Sortir
Sinon Si choix = 1 Alors
Pour i 1 à N Faire
Ecrire Etudiants[i]
Fin Pour
Sinon Si choix = 2 Alors
Ecrire "Quel étudiant voulez-vous modifier ? (indice) : "
Lire i
Ecrire "Entrez le nouveau nom : "
Lire nom
Etudiants[i] nom
Fin Si
Fin Tant que
Fin
Exercice 9
Énoncé :
Créer un algorithme qui permet de réaliser les étapes suivantes :
Inciter l'utilisateur à remplir un tableau avec 8 nombres ;
Acher le plus grand nombre et sa position ;
Acher le plus petit nombre et sa position ;
Acher la diérence entre ces deux nombres trouvés.
Variables : Tab[8], i, max, min, posMax, posMin en entier
Début
Pour i 1 à 8 Faire
Ecrire "Entrez le nombre ", i, " : "
Lire Tab[i]
Fin Pour
max Tab[1]; min Tab[1]
posMax 1; posMin 1
Pour i 2 à 8 Faire
Si Tab[i] > max Alors
max Tab[i]
posMax i
18
Fin Si
Si Tab[i] < min Alors
min Tab[i]
posMin i
Fin Si
Fin Pour
Ecrire "Le plus grand nombre est ", max, " à la position ", posMax
Ecrire "Le plus petit nombre est ", min, " à la position ", posMin
Ecrire "La différence entre les deux nombres est ", max - min
Fin
Exercice 10
Énoncé :
Ecrire un algorithme qui demande à l'utilisateur de taper 10 entiers qui seront stockés
dans un tableau. L'algorithme doit trier le tableau par ordre croissant et doit acher le
tableau.
Variables : Tab[10], i, j, temp en entier
Début
Pour i 1 à 10 Faire
Ecrire "Entrez le nombre ", i, " : "
Lire Tab[i]
Fin Pour
Pour i 1 à 9 Faire
Pour j i+1 à 10 Faire
Si Tab[i] > Tab[j] Alors
temp Tab[i]
Tab[i] Tab[j]
Tab[j] temp
Fin Si
Fin Pour
Fin Pour
Ecrire "Tableau trié par ordre croissant : "
Pour i 1 à 10 Faire
Ecrire Tab[i]
Fin Pour
Fin
19