Initiation à l’algorithmique
Travaux Dirigés (Chapitre 5)
Licence 1 SRIT
KONAN HYACINTHE
p. 1
EXERCICE 1 * Mécanisme de l'instruction répétitive TANTQUE
Simuler l'exécution de chacun des Algorithme s suivants :
ALGORITHME Tanque1
VARIABLES
nb : ENTIER
DEBUT
nb ← 10
TANTQUE nb < 40 FAIRE
ECRIRE (nb)
nb ← nb + 10
FINTANTQUE
ECRIRE ('le nombre vaut ', nb)
FIN
ALGORITHME Tanque2
VARIABLES
nb : ENTIER
DEBUT
nb ← 10
TANQUE nb > 40 FAIRE
ECRIRE (nb)
nb ← nb + 10
FINTANTQUE
ECRIRE ('le nombre vaut ', nb)
FIN
p. 2
ALGORITHME Tanque3
VARIABLE
x : ENTIER
DEBUT
LIRE (x)
TANTQUE x <= 3 FAIRE
ECRIRE ('x')
x←x+1
FINTANTQUE
ECRIRE (x)
FIN
EXERCICE 2 * Comptage d'un référendum (oui/non)
Ecrire un Algorithme qui pilote le dépouillement d’un référendum dans lequel seuls les OUI et
les NON sont possibles. L’assesseur saisit un ‘O’ pour chaque bulletin OUI, un ‘N’ pour chaque
bulletin NON. Il interrompt la saisie par tout autre caractère. L’Algorithme affiche le nombre
de votants, de OUI, de NON, ainsi que les pourcentages correspondants.
EXERCICE 3 * Comptage d'un référendum (oui/non/blancs/nul)
Reprendre l'Algorithme de l'exercice précédent. Cette fois, il peut y avoir des bulletins blancs et
des bulletins nuls. La saisie s’arrête par un caractère particulier, par exemple ‘X’ (qui ne doit pas
être compté comme nul).
p. 3
EXERCICE 4 * Chargement d'un camion
Ecrire un Algorithme qui pilote le chargement d’un camion. Le camion est caractérisé par une
capacité, masse qu’il peut transporter sans être en surcharge, qui sera donnée par l’utilisateur
avant le Début du chargement. Puis des paquets arrivent pour être chargés dans le camion.
Chaque paquet est caractérisé par sa masse entrée par l’utilisateur. Si un paquet peut être chargé
sans mettre le camion en surcharge, l’Algorithme donne l’ordre de chargement. Le chargement
doit s’arrêter avant le premier paquet qui ferait dépasser la capacité du camion. Lorsque le
chargement est terminé, l’Algorithme doit afficher :
le nombre de paquets chargés dans le camion
la masse totale des paquets chargés dans le camion. On suppose que l’utilisateur donne
des valeurs positives pour la capacité du camion et pour la masse de chaque paquet.
EXERCICE 5 * Mécanisme de l’instruction répétitive pour
Simuler l'exécution de l’Algorithme ci-dessous, puis écrire un Algorithme équivalent utilisant
une répétitive TANTQUE
ALGORITHME Pour1
VARIABLE
nb : ENTIER { nombre courant }
i : ENTIER { variable de boucle }
DEBUT
nb ← 10
POUR i DE 1 A 4 FAIRE
ECRIRE (nb)
nb ← nb + 5
FINPOUR
ECRIRE ("nombre = ", nb)
FIN
EXERCICE 6 * Moyenne
Ecrire un Algorithme qui demande à l'utilisateur une suite de valeurs positives, et qui, sans
mémoriser ces valeurs, calcule après la fin de saisie leur moyenne. On écrira deux versions de cet
Algorithme :
Version1 : On demande à l'utilisateur, avant la saisie de la suite de nombres, combien de
nombres va comporter la suite.
Version 2 : On ne pose pas de question préalable, mais l'utilisateur indique qu'il a terminé
la saisie en entrant un nombre spécial ne pouvant pas faire partie de la suite, par exemple
le nombre -1.
p. 4
EXERCICE 7 * Affichage n°1
Affichage de n 'a', n étant saisi au préalable. Ecrire l'Algorithme correspondant.
Exemple d'exécution
n : 16
aaaaaaaaaaaaaaaa
Jusqu'ici, dans les exercices abordés, la forme exacte de l'affichage n'a pas eu d'importance. On
supposera que l'instruction "ECRIRE" affiche un texte à l'écran sans passer à la ligne. Pour
Passer à la ligne, il suffira d'afficher un caractère spécial, une constante nommée CRLF (pour
Carriage Return Line Feed). Exemple : écrire("ceci est", " du texte", CRLF) affiche ceci est du
texte avec passage à la ligne écrire(CRLF) passe à la ligne suivante.
EXERCICE 8 ** Minimum, maximum et leur rang
Ecrire un Algorithme qui étant donné une suite de nombres entiers demandés à l'utilisateur,
annonce, à l'issue de la saisie, le minimum (ou le maximum, ou les deux) de ces nombres et son
(leur) rang(s) dans la suite. On supposera que les nombres saisis par l'utilisateur sont compris
entre deux bornes fixées dans l’Algorithme. Dans le premier cas : minimum et maximum sont
fonction des bornes Dans le second cas : minimum et maximum sont fonction du premier
nombre saisi.
EXERCICE 9 ** Saisie de notes
Ecrire un Algorithme qui permet la saisie de plusieurs notes comprises entre 0 et 20, en
contrôlant leur validité. Après chaque saisie valide, l’Algorithme demande : Encore une note
(o/n)? Si une note n'est pas valide, le message suivant sera affiché : Erreur, la note doit être
comprise entre 0 et 20.
EXERCICE 10 ** Affichage n°2
Affichage de p lignes de n 'a', n et p étant saisis au préalable. Ecrire l'Algorithme correspondant.
aaaaaaaaaaaaaaa
aaaaaaaaaaaaaaa
p. 5
EXERCICE 11 ** Affichage n°3
Affichage de 4 'a' par ligne, sauf éventuellement sur la dernière ligne. Le nombre total de 'a' est
saisi au préalable. Ecrire l'Algorithme correspondant.
Si n=10 Si n=8 Si n=3
aaaa aaaa aaa
aaaa aaaa
aa
EXERCICE 12 ** Affichage n°4
Affichage n°4 : vous ne devez utilisez que la structure pour.
Si on a saisi 4 Si on a saisi 5
aaaa aaaaa
aaa aaaa
aa aaa
a aa
a
EXERCICE 13 ** Affichage n°5
Si on a saisi 10 Si on a saisi 4
1 2 3 4 5 6 7 8 9 10 1234
EXERCICE 14 ** Affichage n°6
Si on a saisi 5 Si on a saisi 8
2 4 6 8 10 2 4 6 8 10 12 14 16
EXERCICE 15 ** Affichage n°7
On ne gérera pas l'alignement des nombres. Il suffira de les espacer de 4 caractères.
Si on a saisi 10 Si on a saisi 8 Si on a saisi 3
1 2 3 4 5 6 7 8 9 10 12345678 123
p. 6
EXERCICE 16 *** Affichage n°8
Si on a saisi 4 Si on a saisi 3
1 2 3 4 5 6 7 8 9 10 123456
EXERCICE 17 *** Affichage n°9
Si on a saisi 10 Si on a saisi 13 Si on a saisi 5 Si on a saisi 3
aa aaa a a
aa aaa a a
aa aaa a a
aa aa a
aa aa a
EXERCICE 18 *** Recherche de répétitions 1
On entre au clavier une série de chiffres ; la fin des entrées est marquée par la saisie du chiffre 0.
On veut afficher les répétitions :
Un chiffre répété n fois (saisi n + 1 fois consécutivement) sera affiché n fois. Vous
pourrez utiliser l’opérateur de concaténation.
Pour la suite 3 4 4 8 5 5 5 6 9 1 1 1 1 7 3 3 5 5 0, on obtient : 4 5 5 1 1 1 3 5
EXERCICE 19 *** Recherche de répétitions 2
On entre au clavier une série de chiffres ; la fin des entrées est marquée par la saisie du chiffre 0.
On veut afficher les répétitions :
Un chiffre n fois (saisi n + 1 fois consécutivement) sera affiché1 fois. Vous pourrez
utiliser l’opérateur de concaténation.
Pour la suite 3 4 4 8 5 5 5 6 9 1 1 1 1 7 3 3 5 5 0, on obtient : 4 5 1 3 5
p. 7