I. NOTIONS DE BASE
Exercice 1 : Définitions et questions
1. Définir : Algorithmique, Algorithme, Identificateur, Variable, Type de donnée
2. Dessiner le schéma des étapes de la mise au point d'un programme informatique.
3. Quels sont les caractéristiques d'un bon algorithme
4. A quoi sert une boucle dans un algorithme ?
1
Université de Ngaoundéré Année académique 2022/2023
Faculté des sciences Licence 1
Département de Mathématiques et Informatique Parcours Informatique/Mathématiques
TD INTRODUCTION A L’ALGORITHMIQUE (INF131)
Écrire un algorithme qui calcule l'amende à payer et le temps de retrait de permis, la quantité de
boisson et la teneur en alcool de chaque boisson étant saisies.
2
Université de Ngaoundéré Année académique 2022/2023
Faculté des sciences Licence 1
Département de Mathématiques et Informatique Parcours Informatique/Mathématiques
TD INTRODUCTION A L’ALGORITHMIQUE (INF131)
Exercice 15 : Suite
Soit (un) n ∊ IN la suite définie par u0 = 1 et la relation de récurrence : un+1 = 3un − 1
valable pour tout n ∈ N. Soit n ∈ N.
1. Ecrire un algorithme qui affiche la valeur de un.
n
2. Ecrire un algorithme qui affiche la valeur de la somme Sn définie par Sn ui .
i 0
3
Université de Ngaoundéré Année académique 2022/2023
Faculté des sciences Licence 1
Département de Mathématiques et Informatique Parcours Informatique/Mathématiques
TD INTRODUCTION A L’ALGORITHMIQUE (INF131)
U n1
3. Trouver la relation r entre deux termes consécutifs de la suite Un en calculant r .
Un
4. Ecrire un algorithme qui demande à l’utilisateur de faire entrer la valeur de x puis calcule
et affiche la valeur de sin(x) jusqu’à l’ordre N=50.
5. Quel est le nombre de fois que votre algorithme exécute les opérateurs × (multiplication)
et / (division).
Exercice 21 : La pendule
1. Ecrivez un algorithme qui demande sous forme de nombres l'heure qu'il est (un nombre pour les
heures, un pour les minutes et un pour les secondes). Cet algorithme indiquera ensuite s'il s'agit
d'une heure valide ou non.
2. Ecrire un algorithme qui lit une heure et il affiche l’heure qu’il sera dans dix- huit (18) secondes
plus tard. Par exemple, si l'utilisateur tape 21, 32 et 12, l'algorithme doit répondre : "Dans 18
secondes, il sera 21 heures 32 minutes 30 secondes".
NB : On suppose que l'utilisateur entre une heure valide. Pas besoin donc de la vérifier.
Exercice 22 : Phrase
Ecrire un algorithme qui lit une suite de caractère représentant une phrase et affiche le mot le plus
long et le nombre des mots lus. On rappel que deux consécutifs mots sont séparés par un seul espace
" " et la phrase se termine par un point.
4
Université de Ngaoundéré Année académique 2022/2023
Faculté des sciences Licence 1
Département de Mathématiques et Informatique Parcours Informatique/Mathématiques
TD INTRODUCTION A L’ALGORITHMIQUE (INF131)
Exercice 3 : Matrice
Soient A et B 2 matrices réelles de m lignes et n colonnes et D une matrice réelle de n lignes de p
colonnes
1. Écrire un algorithme qui calcule et affiche la somme des matrices A et B.
2. Écrire un algorithme qui calcule et affiche le produit des matrices A et D.
3. Écrire une fonction qui prend en entrée A et retourne le plus grand élément de cette matrice.
4. Écrire une procédure qui prend en entrée A et retourne en paramètre le plus grand élément de
cette matrice ainsi sa position ligne/colonne.
5
Université de Ngaoundéré Année académique 2022/2023
Faculté des sciences Licence 1
Département de Mathématiques et Informatique Parcours Informatique/Mathématiques
TD INTRODUCTION A L’ALGORITHMIQUE (INF131)
Exercice 5 : Enregistrement
Au département de mathématique de l’université de Ngaoundéré, un étudiant est caractérisé par
son matricule, Nom, Prénom, Date de naissance et sont lieu de naissance. Une année académique a
deux(2) sessions comportant chacune six (06) unités d’enseignement.
1. Définir une structure de donnée permettant de stocker les notes des étudiants.
2. Ecrire un algorithme permettant d’enregistrer les notes des étudiants de L1 et L2.
3. A partir de 2) afficher les noms des étudiants qui ont validé tous les UE ;
4. A partir de 2) afficher les noms des étudiants qui ont validé une seule UE ;
5. A partir de 2) afficher les noms des étudiants qui n’ont pas validé d’UE ;
6. A partir de 2) afficher les noms des étudiants qui ont une moyenne générale >= 10.
Exercice 6 : Le Temps
Le temps est une structure composé d’heure, de minute et de seconde (h : m : s).
1. Définir une structure enregistrement qui représente le temps.
2. Ecrire une fonction qui prend en entrée un temps t1 et affiche 1 si c’est un temps valide et 0
sinon.
3. Ecrire une procédure qui prend en entrée un temps et affiche le temps qui sera dans 8 s
4. Ecrire une fonction qui prend en paramètre deux temps t1 et t2 et renvoie la somme de ces
deux temps.
5. Ecrire une fonction qui prend en paramètre deux temps t1 et t2 et renvoie 1 s’ils sont égaux et
0 sinon.
6
Université de Ngaoundéré Année académique 2022/2023
Faculté des sciences Licence 1
Département de Mathématiques et Informatique Parcours Informatique/Mathématiques
TD INTRODUCTION A L’ALGORITHMIQUE (INF131)
Exercice 2 : Tableau
Soit un tableau de taille MAX et disposant de N entiers. ( N MAX )
1. Définir une fonction SOMME qui fait la somme des éléments du tableau.
2. Définir une procédure SUPPRIME qui supprime l’élément situé à la position k (1 k N ) du
tableau.
3. Définir une procédure SUPPRIMEVAL qui cherche et supprime le premier élément VAL trouvé
dans le tableau.
4. Définir une procédure INSERTVAL qui insert l’élément VAL à la position k (1 k N ) du
tableau.
Exercice 4: Hörner
Soit P(x) un polynôme de degré n = 3. P(x) peut s'écrire sous la forme suivante :
P( x) a0 a1 x a 2 x 2 a3 x 3 a0 x(a1 a 2 x a3 x 2 ) a0 x(a1 x(a 2 xa3 )) . On peut utiliser cette
forme pour calculer l'image d'un réel x0 par P. C'est la méthode de Hörner.
1. Ecrire l’algorithme qui lit les coefficients et calcule P(X0) où X0 est lu au clavier.
2. Tester cet algorithme avec P(X) = 2 - 4X + 3X2 + 2X3 - 0,5X4 et X0 = 7.
3. Ecrire ce polynôme sous la forme présentée en introduction puis déterminer le nombre
d'opérations effectuées (additions et multiplications) pour calculer P(7).
4. Compter le nombre d'opérations effectuées pour le calcul suivant : P(7) = 2 - 4×7 + 3×72 + 2×73 -
0,5×74
3un 1 si un est impair
1. Calculer les premiers termes de la suite pour u0 =1 ; u0 =3 et u0 =7. On ne sait pas à l'heure
actuelle s'il existe un entier u0 pour lequel cette suite n'atteint jamais 1.
2. Écrire un programme demandant u0 et n à l'utilisateur et affichant toutes les valeurs u1, u2... un.
3. Écrire un programme demandant u0 à l'utilisateur et affichant toutes les valeurs u1, u2... uN où N
est le plus petit entier k IN+ tel que uk=1.
4. Modifier votre programme pour qu'il affiche en plus N et le plus grand élément de la séquence
(u0,…, uN)
7
Université de Ngaoundéré Année académique 2022/2023
Faculté des sciences Licence 1
Département de Mathématiques et Informatique Parcours Informatique/Mathématiques
TD INTRODUCTION A L’ALGORITHMIQUE (INF131)
Algorithme devinette procédure deviner (V1:entier, var V2:entier, var Rep: bool)
var Essai, Prec: entier ; début
ok : booléen ; ecrire ("début deviner : ", V1, V2) ;
début si (V2 mod 2 = 0) alors
Prec 9 ; V2V2 / 2 ;
répéter sinon
ecrire ("Principal : une donnée SVP : ") ; V2 V2 + (V2 + 1)/2 ;
lire (Essai) ; fsi
ok faux ; Rep (V1 = V2);
deviner(essai, Prec, ok) ; V1 0 ;
ecrire ("Principal : ", essai, Prec) ; ecrire ("fin deviner : ", V1, V2) ;
jusqu’à (ok) fin
fin
1. Quels sont les affichages de devinette lorsque les données saisies sont 11, 11, 11, 11, ... ?
2. Quelles sont les lignes qui peuvent être supprimées sans que le fonctionnement général de
l'algorithme ne soit modifié?
8
Université de Ngaoundéré Année académique 2022/2023
Faculté des sciences Licence 1
Département de Mathématiques et Informatique Parcours Informatique/Mathématiques
TD INTRODUCTION A L’ALGORITHMIQUE (INF131)
IV. RECURSIVITÉ
1. Ecrire une fonction récursive qui retourne la notation binaire d'un entier naturel. Par exemple
: 25 → 11001.
2. Ecrire une fonction récursive qui retourne la notation décimale d'un nombre binaire. Par
exemple : 11001 → 25.
Proposer un algorithme récursif de calcul de la somme de deux entiers naturels a et b en supposant que les
seules opérations de base dont vous disposez sont :
− l'ajout de 1 à un entier a : a + 1 ;
− le retrait de 1 à un entier a : a − 1 et
− les comparaisons à 0 d'un entier a : a = 0, a > 0 et a < 0.
Comment étendre cette fonction aux entiers de signe quelconque ?
9
Université de Ngaoundéré Année académique 2022/2023
Faculté des sciences Licence 1
Département de Mathématiques et Informatique Parcours Informatique/Mathématiques
TD INTRODUCTION A L’ALGORITHMIQUE (INF131)
Exercice 8: Palindromes
Un palindrome est un mot dont les lettres lues de gauche à droite sont les mêmes que celles
lues de droite à gauche. Les mots radar, elle, été, ici sont des palindromes.
Proposer deux fonctions, une récursive et l’autre itérative, qui prennent en entrée un mot et le nombre de
caractère de la chaine et renvoie 1 si le mot est un palindrome.
1. Ecrire fonction EstVoyelle (car lettre) : booléen permettant de savoir si un caractère est ou non une
voyelle.
2. Ecrire une méthode récursive nombreVoyelles() qui prend en argument une chaîne de caractères. Dans
le cas où la chaîne passée en paramètres est réduite à la chaîne vide, on arrête la récursion. Dans le cas
où la chaîne a au moins une lettre, on regarde si sa première lettre est une voyelle ou pas et, dans
chaque cas, on réalise un appel récursif adéquat à nombreVoyelle. On va supposer qu’une chaîne vide
est symbolisée par ‘\0’.
10
Université de Ngaoundéré Année académique 2022/2023
Faculté des sciences Licence 1
Département de Mathématiques et Informatique Parcours Informatique/Mathématiques
TD INTRODUCTION A L’ALGORITHMIQUE (INF131)
1. Exécuter Hanoi(2, ’a’, ’b’, ’c’), Hanoi(3, ’a’, ’b’, ’c’) et Hanoi(4, ’a’, ’b’, ’c’).
2. Démontrer par récurrence que le nombre de déplacements est 2n – 1.
Soit Tab, un tableau qui contient n valeurs réelles. En supposant que le tableau est le trié dans l’ordre
croissant. On aimerait insérer un nombre réel x dans le vecteur de telle manière que le tableau Tab reste trié.
Exemple :
11