Vous êtes sur la page 1sur 45

TD Algorithme et programmation

Tél : 693 90 91 21 / 682 66 37 31


TD Algorithme et programmation 2023 / 2024

SOMMAIRE
OBJECTIF GENERAL........................................................................................................................6
OBJECTIFS SPECIFIQUES................................................................................................................6
TD : QUESTIONS DE COURS...........................................................................................................7
TD : LES VARIABLES.......................................................................................................................8
Exercice 1.....................................................................................................................................8
Exercice 2.....................................................................................................................................8
Exercice 3.....................................................................................................................................8
Exercice 4.....................................................................................................................................9
Exercice 5.....................................................................................................................................9
TD : LECTURE ET ECRITURE.......................................................................................................10
Exercice 1...................................................................................................................................10
Exercice 2...................................................................................................................................10
Exercice 3...................................................................................................................................10
Exercice 4...................................................................................................................................10
TD : LES STRUCTURES CONDITIONNELLES............................................................................11
Exercice 1...................................................................................................................................11
Exercice 2...................................................................................................................................11
Exercice 3...................................................................................................................................11
Exercice 4...................................................................................................................................11
Exercice 5...................................................................................................................................12
Exercice 6...................................................................................................................................12
Exercice 7...................................................................................................................................12
Exercice 8...................................................................................................................................13
Exercice 9...................................................................................................................................13
Exercice 10.................................................................................................................................13
Exercice 11 : Année Bissextile...................................................................................................13
Exercice 12 : Marchand d’eau minérale.....................................................................................14
Exercice 13 : Attribution des primes..........................................................................................14
Exercice 14 : Calcul du prix à payer..........................................................................................14
Exercice 15.................................................................................................................................15
Exercice 16.................................................................................................................................15
Exercice 17.................................................................................................................................15
TD : LES STRUCTURES ITERATIVES..........................................................................................16
Exercice 1...................................................................................................................................16
2 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31
TD Algorithme et programmation 2023 / 2024

Exercice 2...................................................................................................................................16
Exercice 3...................................................................................................................................16
Exercice 4...................................................................................................................................16
Exercice 5...................................................................................................................................17
Exercice 6...................................................................................................................................17
Exercice 7 : Nombres parfaits....................................................................................................17
Exercice 8...................................................................................................................................17
Exercice 9...................................................................................................................................18
Exercice 10.................................................................................................................................18
Exercice 11.................................................................................................................................18
Exercice 12.................................................................................................................................18
Exercice 13.................................................................................................................................19
Exercice 14.................................................................................................................................19
Exercice 15.................................................................................................................................19
Exercice 16.................................................................................................................................19
Exercice 17.................................................................................................................................19
Exercice 18.................................................................................................................................19
Exercice 19.................................................................................................................................20
Exercice 20.................................................................................................................................20
Exercice 21.................................................................................................................................20
Exercice 22.................................................................................................................................21
TD : LES TABLEAUX......................................................................................................................22
Exercice 1...................................................................................................................................22
Exercice 2...................................................................................................................................22
Exercice 3...................................................................................................................................22
Exercice 4...................................................................................................................................22
Exercice 5...................................................................................................................................22
Exercice 6...................................................................................................................................23
Exercice 7...................................................................................................................................23
Exercice 8...................................................................................................................................23
Exercice 9 : Le Schtroumpf........................................................................................................23
Exercice 10.................................................................................................................................24
Exercice 11.................................................................................................................................24
Exercice 12.................................................................................................................................24
Exercice 13.................................................................................................................................24
Exercice 14.................................................................................................................................24
Exercice 15.................................................................................................................................25

3 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

Exercice 16.................................................................................................................................25
Exercice 17.................................................................................................................................25
Exercice 18.................................................................................................................................26
Exercice 19.................................................................................................................................26
Exercice 20.................................................................................................................................27
Exercice 21.................................................................................................................................27
Exercice 22.................................................................................................................................27
Exercice 23.................................................................................................................................27
Exercice 24 : Carré magique......................................................................................................28
Exercice 25.................................................................................................................................28
Exercice 26 : Permutation circulaire..........................................................................................28
Exercice 27 :...............................................................................................................................28
Exercice 28 :...............................................................................................................................29
Exercice 29 :...............................................................................................................................29
Exercice 30 :...............................................................................................................................29
Exercice 31 :...............................................................................................................................29
Exercice 32 :...............................................................................................................................29
TD : LES FONCTIONS ET PROCEDURES....................................................................................30
Exercice 1...................................................................................................................................30
Exercice 2...................................................................................................................................30
Exercice 3...................................................................................................................................30
Exercice 4...................................................................................................................................31
Exercice 5...................................................................................................................................31
Exercice 6 :.................................................................................................................................32
Exercice 7 :.................................................................................................................................32
Exercice 8 : Les nombres amis...................................................................................................32
TD : LES CHAINES DE CARACTERES.........................................................................................33
Exercice 1...................................................................................................................................33
Exercice 2 : Palindrome.............................................................................................................33
Exercice 3...................................................................................................................................33
Exercice 4...................................................................................................................................33
Exercice 5...................................................................................................................................34
Exercice 6...................................................................................................................................34
Exercice 7...................................................................................................................................34
Exercice 8...................................................................................................................................34
Exercice 9...................................................................................................................................35
Exercice 10.................................................................................................................................35

4 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

Exercice 11.................................................................................................................................35
TD : LES ENREGISTREMENTS ET FICHIERS.............................................................................36
Exercice 1...................................................................................................................................36
Exercice 2...................................................................................................................................36
Exercice 3...................................................................................................................................36
Exercice 4...................................................................................................................................36
Exercice 5...................................................................................................................................36
Exercice 6 : Gestion des Rendez-vous.......................................................................................37
Exercice 7...................................................................................................................................38
Exercice 8...................................................................................................................................38
Exercice 9...................................................................................................................................38
Exercice 10 : Gestion du stock...................................................................................................39
TD : STRUCTURES DE DONNEES AVANCEES..........................................................................40
Exercice 1...................................................................................................................................40
Exercice 2...................................................................................................................................41
Exercice 3...................................................................................................................................42
Exercice 4...................................................................................................................................42
Exercice 5...................................................................................................................................42
Exercice 6...................................................................................................................................43
Exercice 7...................................................................................................................................43
Exercice 8 : Traitement des commandes de client.....................................................................44

5 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

OBJECTIF GENERAL
Il est question dans le cadre de ce cours de données à l’apprenant les concepts de bases de mise en
place des algorithmes.

OBJECTIFS SPECIFIQUES
La mise en place d’un algorithme passe par plusieurs étapes structurées comme suit :
 Le concept de base qui donne une idée plus claire sur la notion d’algorithme ;
 Les structures de données qui viennent donner un sens plus large à la mise sur pied
d’algorithme ;
 Les fonctions et procédures qui facilitent l’écriture des algorithmes
 Les tableaux qui décrivent l’aspect plus dynamique des algorithmes ;
 Les tris qui permettent d’ordonner les objets manipulés au cours de l’exécution d’un
algorithme ;

Il faut noter que l’algorithme viendra faciliter la programmation et la traduction de cet algorithme
dans un langage de programmation à l’instar du PASCAL, du C ou encore du VB .NET.

6 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

TD : QUESTIONS DE COURS
1. Définir chacun des termes suivants : algorithme, variable, constante, variable globale,
variable locale, sous-programme, informatique, information, identificateur, instruction,
condition.
2. Donner la syntaxe de deux structures conditionnelles et de deux structures itératives de votre
choix.
3. Donner une différence entre une procédure et une fonction ?
4. Quels sont les opérateurs applicables au type de données « entier »
5. Qu’est ce qu’une variable et comment fonctionne t-elle ?
6. Qu’elle différence faite-vous entre une variable standard et un tableau ?
7. Qu’elle différence faite vous entre une structure conditionnelle et une structure répétitive ?
8. Donner la syntaxe d’une structure alternative ?
9. Qu’elle différence faite vous entre une boucle pour et une boucle tant que ?
10. Quelle(s) différence(s) faites-vous entre :
a. Variable globale et variable locale
b. Procédure et fonction
c. Paramètre formel et paramètre effectif
11. Quel est la structure d’un algorithme intégrant les fonctions et les procédures ?
12. Quelle(s) différence(s) faites-vous entre la structure « tantque », « repeter » et « pour » ?
13. Quel est le principe d’élaboration d’un algorithme ?
14. Quelle est la structure générale d’un algorithme ?
15. Quelle est différence entre une structure conditionnelle et une structure itérative ?
16. Quelle est la syntaxe de définition d’un tableau à une dimension ?

7 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

TD : LES VARIABLES
Exercice 1
Quelles seront les valeurs des variables x et y après exécution des instructions suivantes ?

Algorithme Valeurs_Variables;

Var x, y: entier;

Début
x  12;
y  x + 4;
x  3;
Fin.

Exercice 2
Quelles seront les valeurs des variables x et y après exécution des instructions suivantes ?

Algorithme Valeurs_Variables;

Var x, y: entier;

Début
x  1;
y  x + 3;
x  3;
Fin.

Exercice 3
Quelles seront les valeurs des variables x, y et z après exécution des instructions suivantes ?

Algorithme Valeurs_Variables;

Var x, y, z: entier;

Début
x  5;
y  3;
z  x + y;
x  2;
z  y - x;
Fin.

Exercice 4
8 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31
TD Algorithme et programmation 2023 / 2024

Quelles seront les valeurs des variables x, y et z après exécution des instructions suivantes ?

Algorithme Valeurs_Variables;

Var x, y, z: entier;

Début
x  3;
y  10;
z  x + y;
y  x + z;
x  y + z;
z  z - y;
Fin.

Exercice 5
Quelles seront les valeurs des variables x, y et z après exécution des instructions suivantes ?

Algorithme Valeurs_Variables;

Var x, y, z: chaîne;

Début
x  "423";
y  "12";
z  x + y;
Fin.

TD : LECTURE ET ECRITURE
Exercice 1
Ecrire un programme qui demande un nombre à l’utilisateur, puis qui calcule et affiche le carré de
ce nombre.

9 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

Exercice 2
Ecrire un algorithme qui lit le prix unitaire (PU) d’un article, le nombre d’articles (NA) et le taux de
TVA en %, et qui fournit le prix total TTC (Tout Taxe Comprise) correspondant.
NB : La taxe sur la valeur ajoutée ou TVA est un impôt indirect sur la consommation.

Exercice 3
Ecrire un algorithme qui demande à l’utilisateur de saisir son nom et son prénom puis
afficher bonjour suivi de nom et de prénom de l’utilisateur.

Exercice 4
Ecrire l’algorithme permettant de calculer et d’afficher le salaire net d’un employé en
fonction de certains paramètres définis par celui sachant que :
 Le salaire net (SN) = Salaire brut – Valeur de l’impôt
 Salaire brut (SB) = (Salaire de base (SDB) + Prime des enfants) * Taux de travail
 Taux de travail (TT) = Nombre de jours travaillés (NJ) / 26
 Prime des enfants (PE) = Prime d’un enfant(P1E) * Nombre d’enfants (NE)
 Valeur de l’Impôt (VI) = Taux de l’Impôt(TI) * Salaire Brut

10 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

TD : LES STRUCTURES
CONDITIONNELLES
Exercice 1
Ecrire un algorithme qui demande deux nombres à l’utilisateur et l’informe ensuite si le produit est
négatif ou positif. Attention toutefois, on ne doit pas calculer le produit !

Exercice 2
Ecrire un algorithme qui affiche le résultat à l’examen d’un élève dont la note est lu au clavier. Il est
admis si sa note est supérieure ou égale à 10, ajourné si sa note est strictement inférieure à 8 et
admis au contrôle oral si sa note est comprise entre 8 et 10.

Exercice 3
Ecrire un algorithme qui demande l’âge d’un enfant à l’utilisateur. Ensuite, il l’informe de sa
catégorie :
 "Poussin" de 6 à 7 ans
 "Pupille" de 8 à 9 ans
 "Minime" de 10 à 11 ans
 "Cadet" après 12 ans

Exercice 4
Ecrire un algorithme qui demande à l’utilisateur d’entrer une note est qui affiche la mention comme
suite :
 Faible ; si note<=10
 Passable ; si 10<=note<=12
 Assez Bien ; si 12<=note<=14

11 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

 Bien ; si 14<=note<=16
 Très Bien; si 16<=note<=18
 Excellent ; si 18<=note<=20

Exercice 5
Ecrire un algorithme qui permet de convertir un angle entré par l’utilisateur de degrés vers radians.
NB : 180 degrés = π radians = 3.142857 radians.

Exercice 6
Ecrire un algorithme permettant de lire une date au clavier sous la forme numérique suivante :
3/2/5 où :
 Le premier chiffre (3) indique le numéro du jour de semaine (lundi= 1, Mardi= 2, …,
Dimanche= 7)
 Le deuxième chiffre (2) indique le jour
 Le troisième chiffre (5) indique le numéro du mois

L’algorithme doit convertir cette date en clair ou en lettres. Exemple : 3/2/5 est converti en
« mercredi 2 mai ».

Exercice 7
Un magasin de reprographie facture 50 FCFA les dix premières photocopies, 25 FCFA les vingt
suivantes et 10 FCFA au-delà. Ecrivez un algorithme qui demande à l’utilisateur le nombre de
photocopies effectuées et qui affiche la facture correspondante.

12 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

Exercice 8
Les habitants de Zorglub paient l’impôt selon les règles suivantes :
 Les hommes de plus de 20 ans paient l’impôt
 Les femmes paient l’impôt si elles ont entre 18 et 35 ans
 Les autres ne paient pas d’impôt

Le programme demandera donc l’âge et le sexe du Zorglubien, et se prononcera donc ensuite sur le
fait que l’habitant est imposable.

Exercice 9
Ecrire un algorithme qui calcule et affiche si la valeur d’un entier quelconque lu au clavier est paire
ou impaire.

Exercice 10
Ecrire un algorithme permettant de simuler une calculatrice à 4 opérations (+, -, *, et /) Utiliser la
structure conditionnelle pour le choix de l'opération à affecter.

Exercice 11 : Année Bissextile


Une année bissextile (contient 366 jours) si elle est multiple de 4, sauf les années de début de siècle
(qui se terminent par 00) qui ne sont bissextiles que si elles sont divisibles par 400.
Exemples
 1980 et 1996 sont bissextiles car elles sont divisibles par 4
 2000 est une année bissextile car elle est divisible par 400
 2100 et 3000 ne sont pas bissextiles car elles ne sont pas divisibles par 400.

Ecrire un algorithme qui permet de déterminer si un entier positif donné correspond à une année
bissextile ou non.

13 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

Exercice 12 : Marchand d’eau minérale


Un marchand d’eau minéral expédie une certaine quantité de bouteilles à un prix unitaire de 3 375
FCFA. Si le total de la commande est d’au moins 75 000 FCFA, le port (Frais de transport) est
gratuit, sinon il est facturé à 10% de la commande avec un minimum de 10 000 FCFA.

Exercice 13 : Attribution des primes


Soit une opération d’attribution de primes aux personnels d’une société.
Chaque employé à droit à une prime de 100 000F. Un bonus s’ajoute à la prime précédente. Elle
est de 5 000F par année d’ancienneté avec un maximum de 60 000F. Si ce personnel a déjà visité au
moins six (06) sites de production, il se voit ajouter un bonus de 5 000F par site. Un montant
proportionnel au nombre d’heures de retard est retiré de cette prime totale à raison de 1200F par
heure de retard au boulot.

Ecrire un algorithme qui récupère à partir du clavier, le nom de l’employé, son ancienneté, le
nombre total d’heures de retard ainsi que le nombre de sites de production visité, calcule et affiche
la prime finale à payer pour cet employé.

Exercice 14 : Calcul du prix à payer


A partir de la saisie du prix unitaire d’un produit, de la quantité commandée et la distance à
parcourir pour livrer l’achat, écrire un algorithme qui calcule et affiche le prix à payer, en détaillant
le port (frais de transport) et la remise, sachant que :
 Le port est un forfait de 500 FCFA si le prix des produits est supérieur à 15 000 FCFA.
Dans le cas contraire, le port est proportionnel à la distance parcourue pour livrer la
marchandise, à raison de 40 FCFA le Km ;
 La remise est 5% si le montant des marchandises est compris entre 10 000 FCFA et 20 000
FCFA, 8% si le montant est compris entre 20 001F et 50 000F; elle passe 10% au-delà.

14 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

Exercice 15
En tant que Responsable informatique dans une entreprise de la place, vous avez été contacté pour
l’achat du matériel informatique chez « MIRACLE INFORMATIQUE ». Cette dernière dispose
d’une politique commerciale stipulant que le prix à payer (PAP) est obtenu à partir de la saisie du
prix unitaire (PU) et d’une quantité commandée (QTCOM) sachant que :
 Le port (PORT) est gratuit si le prix des accessoires (TOT) est supérieur à 500F,
dans le cas contraire le port (PORT) est de 2% du prix des accessoires (TOT).
 La remise (REM) est de 5% si le prix des accessoires (TOT) est compris entre 200F
et 1000F et de 10% au-delà.
Ecrire un algorithme qui calcul et affiche le prix à payer (PAP) en détaillant le port (PORT) et la
remise (REM).

Exercice 16
On se propose de bonifier les meilleures employés d’une structure en fonction de leur rendement Re
et connaissant leurs salaires de base Sb. Le rendement se donne par rapport au nombre d’articles
vendus. Les employés ayant vendu moins de 30 articles en un mois ne bénéficient d’aucune
bonification ; ceux ayant vendu 30 articles bénéficient d’une bonification de 20% sur leur salaire et
enfin 50% pour ceux ayant vendu plus de 30 articles. Ecrire un algorithme permettant de calculer et
afficher le net à percevoir Np des employés de cette structure.

Exercice 17
On mesure l’obésité c'est-à-dire l’excès de masse grasse, à l’aide de l’indice de masse corporelle,
noté I, évalué à partir du poids (ou masse) P (en Kg) et de la taille T (en m) d’un individu à l’aide
P
de la formule : I = 2
T
Pour l’OMS :
 Un individu est en surpoids quand I > 25
 Un individu est en état de maigreur si I < 18,5

Ecrire un algorithme pour classer un individu suivant qu’il est de constitution maigre, moyenne ou
en surpoids.

15 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

TD : LES STRUCTURES ITERATIVES


Exercice 1
Ecrire un algorithme qui demande un nombre compris entre 10 et 20, jusqu’à ce que la réponse
convienne. En cas de réponse supérieure à 20, on fera apparaître un message : « Plus petit ! », et
inversement, « Plus grand ! » si le nombre est inférieur à 10.

Exercice 2
Ecrire un algorithme qui demande un nombre de départ, et qui ensuite écrit la table de
multiplication de ce nombre, présentée comme suit : (cas où l'utilisateur entre le nombre 7) :
Table de 7 :
7x1=7
7 x 2 = 14
7 x 3 = 21

7 x 10 = 70

Exercice 3
Ecrire un algorithme qui demande un nombre de départ, et qui calcule la somme des entiers jusqu’à
ce nombre. Par exemple, si l’on entre 5, le programme doit calculer : 1 + 2 + 3 + 4 + 5 = 15
NB : on souhaite afficher uniquement le résultat, pas la décomposition du calcul.

Exercice 4
Ecrire un algorithme qui demande un nombre de départ, et qui calcule sa factorielle.
NB : la factorielle de 8, notée 8 !, vaut 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8

16 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

Exercice 5
Écrire un algorithme qui permette de connaître ses chances de gagner au tiercé, quarté, quinté et
autres impôts volontaires. On demande à l’utilisateur le nombre de chevaux partants, et le nombre
de chevaux joués. Les deux messages affichés devront être :
 Dans l’ordre vous avez une chance sur X de gagner
 Dans le désordre vous avez une chance sur Y de gagner

X et Y nous sont donnés par la formule suivante :


 X = n ! / (n - p) !
 Y = n ! / (p ! * (n – p) !)

n est le nombre de chevaux partants et p le nombre de chevaux joués.

Exercice 6
Ecrire un algorithme permettant de :
 Lire un nombre fini de notes comprises entre 0 et 20
 Afficher la meilleure note, la mauvaise note et la moyenne de toutes les notes.

Exercice 7 : Nombres parfaits


Un nombre parfait est un nombre présentant la particularité d’être égal à la somme de tous ses
diviseurs, excepté lui-même. Le premier nombre parfait est 6 = 3 + 2 + 1. Ecrire un algorithme qui
affiche l’ensemble des nombres parfaits s’il ya n’a compris dans un intervalle défini par
l’utilisateur.

Exercice 8
Écrire un algorithme qui demande 10 entiers, compte le nombre d’entiers positifs saisis, et affiche
ce résultat.

17 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

Exercice 9
La population de la ville Alpha est de 1, 000, 000 d’habitants et elle augmente de 50,000 habitants
par an. Celle de la ville Beta est de 500, 000 habitants et elle augmente de 4% par an. Ecrire un
algorithme permettant de déterminer dans combien d’années la population de la ville Beta
dépassera celle de la ville Alpha.

Exercice 10
Ecrire un algorithme qui demande à l’user un nombre est :
 Affiche les diviseurs de ce nombre.
 Le nombre de ces diviseurs.
 La somme des diviseurs de ce nombre.

Exercice 11
Écrire un algorithme pour afficher les premiers termes de la suite suivante :
Suite arithmétique : Un+1 = Un + 2, U0 = 1
Le nombre de termes (n) est demandé à l’utilisateur.

Exercice 12
Ecrire un algorithme qui lit une valeur entière n, puis calcule et écrit les n premiers termes de la
suite Un+1 = 2Un + 3, sachant que U0 = 1.

18 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

Exercice 13
Soit S une suite de nombres entier positif ordonné par ordre croissant et terminé par le marqueur « -
1 ». Ecrire un algorithme permettant de déterminer la longueur L de la plus longue sous suite S’
extraite de S et ne comportant que les éléments identiques.
Exemple : si la suite S = 1 1 2 2 7 7 7 9 -1 alors L = 3 car S’= 7 7 7

Exercice 14
Ecrire un algorithme qui imprime les termes successifs de la suite de terme général 1/2n. On
suppose n > 0. L’impression se fait jusqu’à ce qu’un terme soit inférieur à 0.0001.

Exercice 15
Ecrire un algorithme qui calcul an où a et n sont des données lues.

Exercice 16
Ecrire un algorithme qui permettant de déterminer le PGCD de 2 nombres entier lus en donnée.

Exercice 17
Ecrire un algorithme qui permet de lire une phrase au clavier et de calculer le nombre de mots de
cette phrase.

Exercice 18
Soit une suite numérique arithmétique définie par : Un = 7n + 1 avec n étant un entier. Ecrire un
algorithme qui calcule et affiche la somme des 20 premiers termes de cette suite.

19 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

Exercice 19
Parmi tous les entiers supérieurs à 1, seuls 4 peuvent être représentés par la somme des cubes de
leurs chiffres. A titre d'exemple, 153 = 13 + 53 + 33 est un nombre cubique.
Ecrire un algorithme permettant de déterminer les 3 autres.
Note : les 4 nombres sont compris entre 150 et 410.

Exercice 20
Ecrire un algorithme qui permet de saisir des notes au clavier. A chaque saisie, l’algorithme
affiche :
 « Reçu avec mention » si la note est supérieure ou égale à 12.
 « Passable » si elle est supérieure ou égale à 10 et strictement inférieure à 12
 « Insuffisant » dans tous les autres cas

Jusqu’à ce qu’on saisisse -1.

Exercice 21
S’arrêter avant qu’il ne soit trop tard ! C’est le propos de cet exercice qui pilote une suite d’actions
manuelles et permet, en mémorisant l’évolution de la situation, d’anticiper le moment où il faudra
s’arrêter en évitant ainsi certaines manipulations coûteuses en énergie et en temps de travail, voire
dangereuses.

Problématique

Un camion est caractérisé par une capacité, masse qu’il peut transporter sans être en surcharge, qui
sera donné 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 (en tonnes) 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.
20 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31
TD Algorithme et programmation 2023 / 2024

 La masse totale des paquets chargés dans le camion.

Objectif

Ecrire un algorithme qui pilote le chargement du camion.

Remarque

On suppose que l’utilisateur donne des valeurs positives pour la capacité du camion et pour la
masse de chaque paquet. On ne tient pas compte de l’encombrement des paquets mais seulement de
leur masse.

Exercice 22
A la naissance de Marie, sa mère Micheline, lui ouvre un compte bancaire. Ensuite, à chaque
anniversaire, le grand père de Marie verse sur son compte 100 Francs, auxquels il ajoute le double
de l’âge de Marie. Par exemple, lorsqu’elle a deux ans, il lui verse 104 Francs. Ecrire un
algorithme qui permette de déterminer quelle somme aura Marie lors de son nième anniversaire.

21 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

TD : LES TABLEAUX
Exercice 1
Ecrire un algorithme permettant de lire deux vecteurs de taille N, puis de faire la somme et
d’afficher le résultat.

Exercice 2
Ecrire un algorithme permettant de faire le produit de deux vecteurs lus en donnée.

Exercice 3
Ecrire un algorithme permettant de faire le produit de deux vecteurs lus en donnée.

Exercice 4
Ecrivez un algorithme qui permette la saisie d’un nombre quelconque de valeurs. Toutes les valeurs
doivent être ensuite augmentées de 1, et le nouveau tableau sera affiché à l’écran.

Exercice 5
Ecrire un algorithme permettant à l’utilisateur de saisir un nombre déterminé de valeurs, qui devront
être stockées dans un tableau. Le programme, une fois la saisie terminée, renvoie la plus grande
valeur en précisant quelle position elle occupe dans le tableau. On prendra soin d’effectuer la saisie
dans un premier temps, et la recherche de la plus grande valeur du tableau dans un second temps.

22 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

Exercice 6
Ecrire un algorithme permettant, à l’utilisateur de saisir les notes d'une classe. Le programme, une
fois la saisie terminée, renvoie le nombre de ces notes supérieures à la moyenne de la classe.

Exercice 7
Ecrire un algorithme permettant à l’utilisateur de saisir un nombre quelconque de valeurs, qui
devront être stockées dans un tableau. L’utilisateur doit donc commencer par entrer le nombre de
valeurs qu’il compte saisir. Il effectuera ensuite cette saisie. Enfin, une fois la saisie terminée, le
programme affichera le nombre de valeurs négatives et le nombre de valeurs positives.

Exercice 8
Ecrire un algorithme constituant un tableau, à partir de deux tableaux de même longueur
préalablement saisis. Le nouveau tableau sera la somme des éléments des deux tableaux de départ.

Exercice 9 : Le Schtroumpf
Ecrire un algorithme qui calcule le schtroumpf des deux tableaux lus au clavier. Pour calculer le
schtroumpf, il faut multiplier chaque élément du tableau 1 par chaque élément du tableau 2, et
additionner le tout. Par exemple si l'on a :
Tableau 1 4 8 7 12

Tableau 2 3 6

Le Schtroumpf sera :
3 * 4 + 3 * 8 + 3 * 7 + 3 * 12 + 6 * 4 + 6 * 8 + 6 * 7 + 6 * 12 = 279

23 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

Exercice 10
Ecrire un algorithme permettant de saisir 100 valeurs et qui les range au fur et à mesure dans un
tableau.

Exercice 11
Ecrire un algorithme qui calcule le plus grand écart dans un tableau d’entiers. Rappel : l’écart entre
deux entiers x et y est la valeur absolue de leur différence |x − y|.

Exercice 12
Ecrire un algorithme permettant de résoudre le problème suivant :
 Données : un tableau contenant 100 entiers
 Résultat : “vrai” si le tableau est trié du plus petit au plus grand et “faux” sinon

Exercice 13
Ecrire un algorithme qui calcule le plus grand écart dans un tableau d’entiers. Rappel : l’écart entre
deux entiers x et y est la valeur absolue de leur différence |x − y|.

Exercice 14
Ecrire un algorithme permettant de :
 Lire deux (02) matrices de taille NxN
 Faire le produit
 Afficher le résultat

24 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

Exercice 15
Soit un tableau à deux dimensions NxN d’entiers.
Ecrire un algorithme qui reconnaît si ce tableau est magique ou non. Un tableau est magique si la
somme de chacune des deux diagonales, des N lignes et des N colonnes sont toutes égales.

Exercice 16
Ecrire un algorithme qui affiche la valeur « vrai » si un nombre NB est égal à la somme de deux
éléments consécutifs d’un tableau TAB et faux dans le cas contraire.
Le nombre NB et le tableau TAB sont lus en entrée.

Exercice 17
Que produit l’algorithme suivant ?

Algorithme Exercice;

Const N= 5;

Var NB : tableau[1 .. N] de entier;


i : entier;

Début
pour i de 1 à N faire
NB[i] <- i*i;
finpour

pour i de 1 à N faire
écrire(NB[i]);
finpour
Fin.

Peut-on simplifier cet algorithme avec le même résultat ?

Exercice 18
25 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31
TD Algorithme et programmation 2023 / 2024

Que produit l’algorithme suivant ?

Algorithme Exercice;

Const N= 6;

Var tab : tableau[1 .. N] de entier;


i, k : entier;

Début
tab[1] <- 1;
pour k de 2 à N faire
tab[k] <- tab[k-1] + 2;
finpour

pour i de 1 à N faire
écrire(tab[i]);
finpour
Fin.

Peut-on simplifier cet algorithme avec le même résultat ?

Exercice 19
Que produit l’algorithme suivant ?

Algorithme Exercice;

Const N= 7;

Var suite : tableau[1 .. N] de entier;


i : entier;

Début
suite[1] <- 1;
suite[2] <- 1;
pour i de 2 à 7 faire
suite[i] <- suite[i-1] + suite[i-2];
finpour

pour i de 1 à N faire
écrire(suite[i]);
finpour
Fin.

26 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

Exercice 20
Ecrire un programme qui saisit un tableau d’entiers de taille N (constante symbolique) et qui
l’affiche de telle sorte que tous les entiers pairs se retrouvent avant les entiers impairs. Par exemple,
le programme affichera pour un tableau contenant 7 4 7 8 4 6 3 9 6 ses valeurs de la manière
suivante : 4 8 4 6 6 7 7 3 9.

Exercice 21
Ecrire un algorithme qui permet de calculer le produit de deux matrices triangulaires M1 et M2 de
dimension NxN.
 M1 est une matrice triangulaire supérieure (c'est-à-dire pour tout i < j M1 [ i ][ j ] = 0)
 M2 est une matrice triangulaire inférieure (c'est-à-dire pour tout i > j M2 [ i ][ j ] = 0)
 Le produit de M1 et M2 est une matrice M de même dimensions.

Exercice 22
Soient deux tableaux contenant les 10 notes et les dix coefficients d’un étudiant. Ecrire un
algorithme qui permet de calculer la moyenne de cet étudiant.

Exercice 23
Soit la structure de données contenant les données suivantes :
23 21 19 17 15 13 11 9 7 5

1. Déclarer la structure de données nécessaire pour le stockage de ces données.


2. Développer une procédure qui initialise votre structure de données.
3. Développer une fonction qui retourne le total des nombres divisibles par 3.
4. Développer une fonction booléenne qui recherche un nombre passé en paramètre dans cette
structure de données.
5. Développer une procédure qui effectue le tri par sélection de ce tableau.
6. Ecrire une fonction qui retourne le total des nombres pairs de ce tableau.

27 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

Exercice 24 : Carré magique


Un carré magique est un tableau à deux dimensions de même taille, tel que les sommes des numéros
de chaque ligne et de chaque colonne sont identiques. Par exemple, le T suivant est un carré
magique :

4 9 2
3 5 7
8 1 6

Ecrire un algorithme qui permet de lire les paramètres d’un tableau T de c x c cases et de dire s’il
est un carré magique ou pas.
NB : Dans la définition d’un carré magique les valeurs composant le carré sont exactement les
valeurs comprises entre 1 et c.

Exercice 25
Ecrire une fonction qui prend en paramètre un tableau d’entiers et retourne la somme des nombres
premier.

Exercice 26 : Permutation circulaire


Ecrire une fonction qui fait la permutation circulaire à droite dans un tableau passé en paramètre. La
permutation circulaire à droite consiste à déplacer toutes les cases du tableau vers la droite et la
dernière valeur va à la première case.

Exercice 27 :
Ecrivez un programme qui permette de saisir un nombre quelconque de valeurs, et qui les range au
fur et à mesure dans un tableau. Le programme, une fois la saisie terminée, doit dire si les éléments
du tableau sont tous consécutifs ou non.
Par exemple, si le tableau est :
12 13 14 15 16 17 18
Ses éléments sont tous consécutifs. En revanche, si le tableau est :
9 10 11 15 16 17 18
Ses éléments ne sont pas tous consécutifs.

28 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

Exercice 28 :
Ecrivez un programme qui permette de saisir un nombre quelconque de valeurs, et qui les range au
fur et à mesure dans un tableau. Le programme, une fois la saisie terminée, doit dire si les éléments
du tableau sont tous consécutifs ou non.

Exercice 29 :
Ecrivez un algorithme qui inverse l’ordre des éléments d’un tableau dont on suppose qu'il a été
préalablement saisi (« les premiers seront les derniers… »).

Exercice 30 :
Ecrivez un algorithme qui inverse l’ordre des éléments d’un tableau dont on suppose qu'il a été
préalablement saisi (« les premiers seront les derniers… »).

Exercice 31 :
Écrivez un algorithme qui permette de saisir les éléments d'un tableau, et qui vérifie s'ils sont tous
différents. L'algorithme affichera simplement "Il y a un ou plusieurs doublons" ou "Il n'y a pas de
doublons" selon les cas.

Exercice 32 :
Ecrire un algorithme qui demande à l’utilisateur d’entrer les valeurs d’un tableau de 10 entiers, puis
rechercher dans le tableau et afficher la plus petite et la plus grande valeur du tableau.

29 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

TD : LES FONCTIONS ET PROCEDURES


Exercice 1
Écrire un algorithme qui à l’aide d’une fonction renvoie la somme de cinq nombres fournis en
argument.

Exercice 2
Écrire une fonction qui renvoie la somme de cinq nombres fournis en argument.

Exercice 3
Soit le programme suivant :

Algorithme Exercice;

Var x, y, z, t: entier;

Procédure ma_procedure(a:entier, b:entier, Var c:entier, d:entier);


Début
c <- a + b;
d <- a * b;
Fin;

Début
lire(x);
lire(y);
ma_procedure(x, y, z, t);
écrire(z)
écrire(t);
Fin.

1. Identifier les paramètres effectifs et les paramètres formels.


2. Qu'affiche ce programme en supposant que l'utilisateur saisisse 2 dans x et 3 dans y ?
3. Modifier le code pour obtenir un résultat plus logique.

30 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

Exercice 4
Ecrire une procédure « Echanger » qui échange la valeur de deux variables.
On donne ci-dessous un exemple d'appel de la procédure « Echanger ».

Algorithme Exercice

Var A, B : entier;

Procédure Echanger(Var x : entier, Var y : entier);


Var sauv : entier;
Début
sauv <- x;
x <- y;
y <- sauv;
Fin;

Début
...
A <- 1;
B <- 2;
Echanger(A, B) co ici, A vaut 2 et B vaut 1 fco
...
Fin.

Exercice 5
Procédure mystere(x : réel, y : réel, Var z : réel);
Début
si x > y alors
z <- x;
sinon
z <- y;
finsi
Fin;

1. Que fait cette procédure « mystere » ?


2. Au lieu d'une procédure, peut-on utiliser une fonction ? Si oui, en donner l'algorithme.

31 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

Exercice 6 :
Soit un tableau pouvant contenir 10 notes d’un étudiant. Ecrire un algorithme permettant de lire au
clavier les notes de cet étudiant et d’afficher sa moyenne. Cet algorithme contiendra :
1. Une procédure de saisie des notes
2. Une fonction de calcul de la moyenne

Exercice 7 :
1. Ecrire une fonction ou procédure qui permet de lire une liste de nombres 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.
2. Ecrire une fonction ou procédure qui permet de lire deux nombres, calculer la somme et le
produit et affiche si ces derniers sont positifs ou négatifs.

Exercice 8 : Les nombres amis


Soient a et b deux entiers strictement positifs. a est un diviseur strict de b si a divise b et a ≠ b. Par
exemple, 3 est un diviseur strict de 6. Mais 6 n’est pas un diviseur strict de 6. a et b sont des
nombres amis si la somme des diviseurs stricts de a est b et si la somme des diviseurs de b est a.
Le plus petit couple de nombres amis connu est 220 et 284.
1. Ecrire une fonction « sommeDiviseursStricts », qui prend en paramètre un entier n et
retourne la somme des diviseurs stricts de n.
2. Ecrire une fonction « sontAmis », qui prend en paramètre deux entiers et retourne 1 si a et
b sont amis, 0 sinon.

32 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

TD : LES CHAINES DE CARACTERES


Exercice 1
Ecrire une fonction qui récupère en paramètre une chaine de caractère et affiche le nombre de
voyelle que contient cette chaine.

Exercice 2 : Palindrome
Une phrase est dite palindrome si en éliminant les blancs entre les mots, elle représente la même
lecture dans les deux sens. Exemple : elu par cette crapule  eluparc ettec rap ule
1. Ecrire une fonction « compresser » qui prend en paramètre une chaîne de caractères,
élimine tous les blancs de la chaîne et retourne le résultat.
2. Ecrire une fonction « inverser » qui prend en paramètre une chaîne de caractères, inverse
les caractères de la chaîne et retourne résultat.
3. Ecrire un algorithme qui permet de lire une phrase au clavier, appel les deux fonctions
précédentes et affiche si oui ou non la phrase est un palindrome.

Exercice 3
Ecrire un algorithme qui lit une chaîne de caractères puis affiche son inverse.
Exemple : Si la chaîne entrée est "algo", l'algorithme doit afficher "ogla".

Exercice 4
Ecrire un algorithme qui permet de compter le nombre de mots dans une phrase. La phrase
commence obligatoirement par une lettre et les mots sont séparés par des espaces.

Exercice 5
33 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31
TD Algorithme et programmation 2023 / 2024

Ecrire un algorithme qui détermine et affiche le mot le plus long dans une phase donnée.

Exercice 6
Ecrire un algorithme qui lit un mot (chaîne de caractère formée uniquement de lettres) et une lettre
et affiche le nombre d'apparitions de la lettre dans le mot.

Exercice 7
L’on vous propose d’écrire un algorithme qui lit un mot puis retourne le mot lu suivit de la taille du
mot.
1. Proposez une structure de données adaptée pour stocker convenablement les caractères
d’une chaîne de caractères.
2. Ecrire une fonction qui prend en paramètre un mot, puis retourne la taille du mot.
3. Ecrire une procédure qui prend en paramètre un message puis l’affiche à l’écran
4. Ecrire la fonction principale qui :
a. Demande un mot à l’utilisateur
b. Appelle la fonction référencée en question 2 pour calculer et retourner la taille du
mot lu.
c. Affiche à l’écran le mot de départ suivit de la taille du mot.

Exercice 8
Ecrire un algorithme qui affiche le nombre de caractère L suivit du caractère E (LE) dans une
phrase terminée par le marqueur « . ».

Exercice 9
Ecrire un algorithme qui détermine et affiche le nombre de mots contenu dans une phrase terminée
par le marqueur point « . ».
34 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31
TD Algorithme et programmation 2023 / 2024

Pour simplifier, on considèrera que le caractère séparateur des mots est le ‘ ’ (le caractère blanc). Il
n’y a pas d’autres séparateurs.

Exercice 10
Ecrivez une fonction qui purge une chaîne d'un caractère, la chaîne comme le caractère étant passés
en argument. Si le caractère spécifié ne fait pas partie de la chaîne, celle-ci devra être retournée
intacte. Par exemple :
 Purge("Bonjour", "o") renverra "Bnjur"
 Purge("J'ai horreur des espaces", " ") renverra "J'aihorreurdesespaces"
 Purge("Moi, je m'en fous", "y") renverra "Moi, je m'en fous"

Exercice 11
Ecrire une fonction qui compte le nombre de voyelle d’un mot saisi au clavier.
NB : Vous devez utiliser la fonction SSCHAINE (mot, position_of_caracter, number_of_caracter)
qui permet d’extraire les caractères dans un mot et la fonction TAILLE (mot) qui retourne la
longueur d’une chaine de caractère.
Exemple : si mot← marc ;
Premier_caractere← SSCHAINE (mot, 1,1) ; et Number_caractere←TAILLE (mot) ;

35 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

TD : LES ENREGISTREMENTS ET
FICHIERS
Exercice 1
Écrire un algorithme comportant une fonction qui recherche une personne par son nom dans un
fichier de personne. Sachant qu’une personne est identifiée par son nom, son âge, et son sexe.

Exercice 2
Écrire un algorithme qui à l’aide d’une procédure fusionne deux fichiers de personne F1 et F2 lus
en donnée pour produire un fichier de personne F3. Sachant qu’une personne est identifiée par son
nom, son âge, et son sexe.

Exercice 3
Écrire une procédure qui trie les éléments d’un fichier de personne par nom, sachant qu’une
personne est identifiée par son nom, son âge, et son sexe. Cette procédure produira un fichier dont
les enregistrements sont classés par ordre alphabétique.

Exercice 4
Écrire un algorithme qui à l’aide d’une fonction retourne le nombre de personnes qui ont moins de
30 ans dans un fichier de personne. Sachant qu’une personne est identifiée par son nom, son âge, et
son sexe.

Exercice 5
Écrire une fonction permettant de supprimer un enregistrement contenu dans un fichier de personne.
Sachant qu’une personne est identifiée par son nom, son âge, et son sexe.

36 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

Exercice 6 : Gestion des Rendez-vous


Le but de cet exercice est d’écrire un algorithme pour la gestion des rendez-vous. S’assurer du
mode de passage de paramètres aux fonctions et procédures.

Modélisation et gestion du temps

Soient les types intervalles heure_t, minute_t, et seconde_t et le type enregistrement temps_t
suivants :

Type heure_t= 0..23;


minute_t= 0..59;
seconde_t= 0..59;

temps_t= enregistrement
h : heure_t;
m : minute_t;
s : seconde_t;
fin;

1. Ecrire une procédure ecriture(t) qui affiche à l’écran les valeurs des champs du temps t
sous la forme « h:m:s » sans retour à la ligne, et une procédure lecture(t) qui lit au clavier
les valeurs du temps à mémoriser dans t.
2. Ecrire une fonction calc_ns(t) qui calcule le nombre de secondes du temps t et retourne le
résultat.

Modélisation et gestion des Rendez-vous

Soit le type temps_t définir plus haut, les procédures ecriture(t : temps_t) et lecture(t : temps_t),
et la fonction calc_ns(t : temps_t) : integer. On introduit les types suivants :

Const MaxRdv= 20;

Type Rdv_t= enregistrement


titre : chaîne;
debut, fin : temps_t;
fin;

TabRdv_t= tableau[1 .. MaxRdv] de Rdv_t;

37 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

3. Ecrire une procédure saisieRdv(r) qui lit au clavier les champs de r de type Rdv_t.
4. Ecrire une procédure affichRdv(r) qui affiche à l’écran les champs de r de type Rdv_t.
5. Ecrire une fonction booléenne chevauche(r1, r2) qui renvoie vrai si les rendez-vous r1 et
r2 de type Rdv_t se chevauchent.
6. Ecrire une procédure testJournee(tab, n) qui détecte et affiche les rendez-vous qui se
chevauchent dans la journée, parmi les n rendez-vous stockés dans tab de type TabRdv_t,
en utilisant la fonction chevauche.
7. Ecrire le programme principal qui demande un nombre de rendez-vous, lit ces rendez-vous
au clavier, puis affiche la liste des rendez-vous qui se chevauchent en utilisant la fonction
testJournee.

Exercice 7
On travaille avec le fichier du carnet d’adresses en champs de largeur fixe.
Ecrivez un algorithme qui permet à l’utilisateur de saisir au clavier un nouvel individu qui sera
ajouté à ce carnet d’adresses.
NB : On laissera le soin à l’apprenant de juger des caractéristiques ou propriétés d’un individu.

Exercice 8
Soient Toto.txt et Tata.txt deux fichiers dont les enregistrements ont la même structure. Ecrire un
algorithme qui recopie tout le fichier Toto dans le fichier Tutu, puis à sa suite, tout le fichier Tata
(concaténation de fichiers).

Exercice 9
Les enregistrements d’un fichier contiennent les deux champs Nom (chaîne de caractères) et
Montant (Entier). Chaque enregistrement correspond à une vente conclue par un commercial d’une
société. On veut pouvoir afficher à l'écran, le total de ventes de la société. Pour simplifier, on
suppose que le fichier de départ contient une et une seule vente effectuée par un commercial.

38 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

Exercice 10 : Gestion du stock


Une entreprise commerciale de la place désire mettre en place un programme pour la gestion de
stock de ses produits. Un produit est donné par son code qui ne dépasse pas 5 caractères
(Exemple : NDJ2S), sa désignation, sa catégorie, son prix de vente (l’unité), sa quantité en stock,
sa quantité d’alerte pour le réapprovisionnement, le nombre d’approvisionnement déjà effectué
(avant le premier approvisionnement il est mis à zéro) et la liste des approvisionnements effectués
pour ce produit (cette liste sont contenue dans un tableau et on suppose que la valeur maximale de
ce tableau est de 500). Un approvisionnement est donné par la quantité du produit, la date de
l’approvisionnement et le prix d’achat. L’ensemble des produits est stocké dans un tableau de
taille 10000.

1. Définir une fonction « Existence » qui prend en entrée le code d’un produit et le tableau de
produits, retourne vrai si ce code existe déjà dans le tableau et faux dans le cas contraire.
2. Ecrire une procédure « AjoutProduit » qui prend en entrée le tableau des produits et y
enregistre un produit lu au clavier si le code du produit n’existe pas dans le tableau.
3. Ecrire une procédure « Affiche » qui affiche la liste de tous les produits qui doivent faire
l’objet d’un approvisionnement. Un produit doit faire l’objet d’un approvisionnement si la
quantité en stock est inférieure à la quantité d’alerte.

39 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

TD : STRUCTURES DE DONNEES
AVANCEES
Exercice 1
On désire automatiser l’affectation hebdomadaire des salles du collège. Une salle est caractérisée
par un code, un libellé, un type, une capacité. Un cours est caractérisé par un code, un libellé, le
nom de l’enseignant qui donne le cours et la période à laquelle se déroule le cours. La période est un
enregistrement constitué du jour et de l’heure.

Les cours sont stockés dans un fichier et les salles sont stockées dans un vecteur d’au plus 30 salles.

1. Effectuer toutes les déclarations nécessaires à la gestion des affectations hebdomadaire des
salles.
2. Ecrire une procédure qui permet de créer un fichier de cours. La lecture s’arrête lorsque le
code du cours est vide.
3. Ecrire une fonction qui calcule la taille du fichier des cours
4. Ecrire une procédure qui permet d’afficher tous les cours ayant lieu le lundi
5. Ecrire une fonction qui retourne la salle qui a la plus grande capacité.
6. On souhaite supprimer un cours du fichier, pour cela on vous propose deux méthodes :
METHODE 1 : transférer tous les cours dans un vecteur, ensuite supprimer ce cours dans le
vecteur et transférer à nouveau les cours du vecteur dans le fichier.
METHODE 2 : transférer tous les cours du fichier dans une liste chainée, ensuite supprimer
ce cours dans la liste chaînée et transférer à nouveau les cours de la liste chaînée dans le
fichier.
a. Quelle est la méthode la plus réaliste ? Justifier votre réponse.
b. Donner la déclaration de la liste chaînée des cours et celle du vecteur de cours.
c. Ecrire une procédure pour transférer les cours du fichier dans une liste chaînée.
d. Ecrire une procédure pour supprimer un cours dans la liste chaînée.
e. Ecrire une fonction pour compter le nombre de cours dans une liste chaînée.

40 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

Exercice 2
On vous demande à la suite d’une analyse, d’écrire des algorithmes pour gérer automatiquement les
abonnés à une salle de cinéma. Chaque abonné est caractérisé par un numéro, son nom, son prénom,
son numéro de téléphone, son adresse complète, le nombre de film auquel il est abonné, la liste des
films choisies. Le champ liste des films est un tableau pouvant contenir au plus 15 films : chaque
film est caractérisé par un code, le titre, l’acteur principal et la date de première projection. Les
abonnés sont stockés dans un vecteur pouvant contenir au plus 100 abonnés.
1. Effectuer les déclarations des structures de données suivantes :
a. Film.
b. Tableau de film.
c. Abonné.
d. Tableau des abonnés
2. Ecrire une procédure qui prend en paramètre le tableau des abonnés, le nombre d’abonnés
déjà enregistrés et qui permet d’enregistrer un nouvel abonné dans le tableau.
3. Ecrire une procédure qui prend en paramètre le tableau des abonnés, le nombre d’abonnés
déjà enregistrés, le numéro d »un abonné et affiche tous les films (code, titre, acteur
principal) choisis par l’abonné dont le numéro est passé en paramètre.
4. Pour ne pas avoir à saisir à chaque fois les abonnés dans le vecteur, on vous demande
d’utiliser un fichier pour gérer les abonnés.
a. Quels sont les avantages d’un fichier par rapport à vecteur ?
b. Donner la déclaration d’un fichier des abonnés.
c. Ecrire une procédure qui prend en paramètre le fichier des abonnés, le vecteur des
abonnés, le nombre d’abonnés enregistrés dans le vecteur et qui permet de transférer
les abonnés du vecteur dans un fichier
d. Ecrire une fonction de type booléen qui prend en paramètre le fichier des abonnés, le
numéro d’un abonné et qui vérifier si cet abonné existe dans le fichier.
5. On souhaite à présent supprimer un abonné du fichier : pour cela on vous demande d’utiliser
une liste chaînée.
a. Donner la déclaration d’une liste chaînée des abonnés.

41 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

b. Ecrire une procédure qui prend en paramètre le fichier des abonnés, la tête de la liste
des abonnés et qui permet de transférer les abonnés du fichier dans la liste chaînée.

Exercice 3
On se propose de mettre sur pied une structure de données pour la manipulation d’une liste
d’information. Les éléments de la liste sont triés par codes ascendants.
Les informations manipulées sont celles relatives aux livres d’une bibliothèque. On restreint les
informations à : code, intitulé, auteur, éditeur.
1. Proposer une structure de données adaptée à la résolution du problème.
2. Ecrire une fonction permettant d’insérer un élément non existant dans la liste.
3. Ecrire une fonction permettant de supprimer un élément de la liste.
4. Ecrire une fonction permettant de rechercher un élément dans la liste.

Exercice 4
1. Définir : pile, file, liste chaînée.
2. Définir les structures de données piles et files implémentés dans un tableau, et la structure de
données liste chainée pour la gestion des entiers.
3. Ecrire une fonction longueur qui calcule la longueur d’une liste chaînée d’entiers.
4. Définir la structure de données dynamique liste chaînée d’étudiants.

Exercice 5
Soit P une pile d’entiers.
1. Ecrire les fonctions pour déterminer le nombre d’éléments de la pile et la valeur maximale
de la pile.
2. Ecrire une procédure qui permet de trier les éléments de la pile selon un ordre croissant.

42 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

Exercice 6
Dans l’optique d’atteindre de manière efficace les principaux objectifs concernant la gestion des
concours, il vous est demandé de développer les sous-programmes suivants en tenant compte du fait
qu’un candidat est caractérisé par son Nom, son Code, et la Désignation du concours qu’il sollicite.
On suppose que les informations des candidats sont stockées dans un Fichier.
1. Donner un avantage et un inconvénient des tableaux par rapport aux listes chainées.
2. Déclarer les structures de données nécessaires.
3. Elaborer les sous-programmes suivants :
a. L’algorithme d’une procédure de création du fichier des candidats.
b. L’algorithme d’une fonction de recherche séquentielle booléenne d’un candidat
donné (dont le code est donné en paramètres).
c. L’algorithme d’une procédure d’impression de la liste des candidats.
4. On désire à présent pouvoir supprimer un candidat du fichier. On se propose de ce fait
d’utiliser une liste chainée des candidats.
a. Proposer une structure de liste chainée des candidats.
b. Ecrire l’algorithme d’une procédure de transfert du fichier des candidats dans la liste
chainée des candidats. On effectuera les insertions en tête de liste.

Exercice 7
1. Fonction de comptage d’occurrences dans une liste chaînée
Ecrire une fonction qui renvoie le nombre d’éléments d’une liste chaînée ayant une valeur
donnée.
2. Fonction de vérification d’une liste chaînée triée
Ecrire une fonction qui vérifie si une liste chaînée est triée par valeurs croissantes.
3. Fonction de suppression d’un élément dans une liste doublement chaînée

43 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31


TD Algorithme et programmation 2023 / 2024

Ecrire une fonction supprimant, dans une liste doublement chaînée, un élément ayant une
valeur donnée. La fonction doit retourner un paramètre booléen qui aura comme valeur vrai
si la suppression a pu avoir lieu, faux sinon.

Exercice 8 : Traitement des commandes de client


Soit un processus de « traitement des commandes client », processus qui présente des liaisons
avec le processus « Tenue de stock » et « Approvisionnement » non concernés par ce traitement.
Les traitements de commandes dans le magasin se passent de la manière suivante :
Les clients passent leur commande au service commercial du magasin. Des commandes des
clients jugés non solvables sont refusées par le service commercial. Les commandes acceptés sont
confrontées à l’état du stock pour déterminé quel sont les manquants et quels sont les commandes
disponibles.
En cas de manquants ou si la commande rend la quantité en stock inférieur ou égal à la
quantité seuil, le service achat devra prendre toutes dispositions pour réapprovisionner le stock si ce
n’est pas encore fait.
Dès livraison du fournisseur, les commandes devenues disponibles subissent le même
traitement que celles qui l’étaient dès le départ.
Les commandes disponibles donnent lieu à la confection de bons de livraison destinés aux
clients.
A la livraison, ceux-ci peuvent refuser la commande, auquel cas il y a retour de
marchandise.
Si le client accepte la livraison, la comptabilité émet une facture qui sera soldée qu’après son
règlement complet, les clients qui n’ont pas réglé à l’échéance devant recevoir une relance. Les
factures soldées sont archivées.
1. Définir les structures de données client, commande et produit.
2. Ecrire une fonction qui prend en paramètre un client et dit s’il est solvable ou pas.
On souhaite gérer la liste de commande par les piles chaînées.
3. Définir les structures de données correspondantes.
4. Comment appelle-t-on la primitive qui permet d’ajouter un objet dans une pile ? Ecrire cette
primitive pour l’ajout d’une commande dans la pile.
5. Ecrire une fonction qui permet de dépiler une commande.
44 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31
TD Algorithme et programmation 2023 / 2024

45 M. Marc TEJIOGNI | mtejiogni@yahoo.fr | Tél : 693 90 91 21 – 682 66 37 31

Vous aimerez peut-être aussi