Académique Documents
Professionnel Documents
Culture Documents
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
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
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
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.
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 ?
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.
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
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
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.
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.
Ecrire un algorithme qui permet de déterminer si un entier positif donné correspond à une année
bissextile ou non.
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 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.
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
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
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 8
Écrire un algorithme qui demande 10 entiers, compte le nombre d’entiers positifs saisis, et affiche
ce résultat.
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.
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.
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
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
Objectif
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.
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.
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
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
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;
Début
pour i de 1 à N faire
NB[i] <- i*i;
finpour
pour i de 1 à N faire
écrire(NB[i]);
finpour
Fin.
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
Algorithme Exercice;
Const N= 6;
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.
Exercice 19
Que produit l’algorithme suivant ?
Algorithme Exercice;
Const N= 7;
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.
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
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 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.
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.
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;
Début
lire(x);
lire(y);
ma_procedure(x, y, z, t);
écrire(z)
écrire(t);
Fin.
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;
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;
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 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) ;
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.
Soient les types intervalles heure_t, minute_t, et seconde_t et le type enregistrement temps_t
suivants :
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.
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 :
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.
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.
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.
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.
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.
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
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.