REPUBLIQUE DU CAMEROUN REPUBLIC OF CAMEROUN
Paix-Travail-Patrie Peace-Work-Fatherland
***** *****
UNIVERSITE DE YAOUNDE I THE UNIVERSITY OF YAOUNDE I
Sapientia –Collativa- Cognitio Sapientia –Collativa- Cognitio
***** *****
FACULTE DES SCIENCES FACULTY OF SCIENCE
DEPARTEMENT D’INFORMATIQUE DEPARTMENT OF COMPUTER
SCIENCE
TRAVAUX DIRIGES D’INTRODUCTION A L’ALGORITHMIQUE (INF 111)
Dr. NDOM / Professeur ATSA 2025-2026
Exercice 1
Give all the steps for the design and implementation of an algorithm.
Exercice 2
Un marchand de monnaie ou monnayeur reçoit de son client un billet en FCFA, et doit lui
rendre la monnaie en utilisant les pièces suivantes : 25, 50, 100 et 200. Ecrire un algorithme
permettant de résoudre ce problème.
Exercice 3
L’assurance Z vous paye une prestation de garantie si la somme de vos intérêts dépasse
200.000. L’intérêt est de 3.5% par an.
Ecrire un algorithme qui lit le montant de la prime payée par l'assuré à la compagnie
d'assurance, détermine et affiche le nombre d’années nécessaires pour bénéficier de cette
prestation.
Exercice 4
Que fait l’algorithme suivant ?
Algorithme mystèreBoucle2
# c’est à vous de trouver ce que fait cet algorithme…
variables a, b, c : entiers naturels
début
# lecture des données
Entrer ( a, b )
# initialisation et calculs
c 1
tantque ( b ≠ 0 )
faire si ( ( b mod 2 ) = 1 )
alors c c * a
fin_si
a a*a
b b div 2
fin_tantque
1/6
REPUBLIQUE DU CAMEROUN REPUBLIC OF CAMEROUN
Paix-Travail-Patrie Peace-Work-Fatherland
***** *****
UNIVERSITE DE YAOUNDE I THE UNIVERSITY OF YAOUNDE I
Sapientia –Collativa- Cognitio Sapientia –Collativa- Cognitio
***** *****
FACULTE DES SCIENCES FACULTY OF SCIENCE
DEPARTEMENT D’INFORMATIQUE DEPARTMENT OF COMPUTER
SCIENCE
TRAVAUX DIRIGES D’INTRODUCTION A L’ALGORITHMIQUE (INF 111)
Dr. NDOM / Professeur ATSA 2025-2026
# affichage résultat
Afficher ( c )
Exercice 5 Durée d’un vol d’avion
Écrire un algorithme permettant de calculer la durée d’un vol d’avion, connaissant l’horaire
de départ (heures et minutes) et l’horaire d’arrivée (heures et minutes), sans convertir les
horaires en minutes. On suppose que le vol dure moins de 24 heures.
Exercice 6 Diviseurs d’un entier et nombre premier
1. Écrire un algorithme permettant d’afficher les diviseurs d’un entier naturel par ordre
croissant.
2. Écrire un algorithme permettant de déterminer si un entier naturel entré au clavier
est premier.
3. Deux nombres premiers sont jumeaux si leur différence vaut 2 (par exemple, 5 et 7
sont deux nombres premiers jumeaux). Écrire un algorithme permettant d’afficher
tous les couples de nombres premiers jumeaux inférieurs à 1000.
Nota Bene : dans la suite lorsqu’on parle d’algorithme, il s’agit d’écrire une procédure ou une fonction
Exercice 7
Ecrire deux fonctions iterative et récursive permettant de calculer factorielle d’un nombre
entier positif.
Exercice 8 Calcul du nième nombre de Fibonnacci
Écrire un algorithme permettant de calculer le nombre de Fibonacci F(n) : F(0) = 0, F(1) = 1,
et F(n) = F(n-1) + F(n-2).
Exercice 9
Considérons les algorithmes ci-dessous :
a) Quel sera le contenu des variables a, b et éventuellement c après leur exécution
2/6
REPUBLIQUE DU CAMEROUN REPUBLIC OF CAMEROUN
Paix-Travail-Patrie Peace-Work-Fatherland
***** *****
UNIVERSITE DE YAOUNDE I THE UNIVERSITY OF YAOUNDE I
Sapientia –Collativa- Cognitio Sapientia –Collativa- Cognitio
***** *****
FACULTE DES SCIENCES FACULTY OF SCIENCE
DEPARTEMENT D’INFORMATIQUE DEPARTMENT OF COMPUTER
SCIENCE
TRAVAUX DIRIGES D’INTRODUCTION A L’ALGORITHMIQUE (INF 111)
Dr. NDOM / Professeur ATSA 2025-2026
Exercice 9
Écrire une fonction qui prend un tableau d’entiers en paramètre et détermine le plus grand
élément de celui-ci.
Exercice 10
Ecrivez un algorithme qui inverse l’ordre des éléments d’un tableau d’entier de taille N après
les avoir triés. Les premiers seront les derniers et vice-versa.
Exercice 11
Ecrivez un algorithme qui tri (tri fusion) dans l’ordre des éléments d’un tableau d’entier de
taille N.
Exercice 12
Écrire un algorithme qui calcule une valeur approchée de racine de x à 10^-2 près en utilisant
la méthode par recherche dichotomique.
Exercice 13 Structure de donnée Pile
1. Soit (y, q) = Depiler(Empiler(x,PileVide)). Montrer que EstVide(q) = VRAI et y = x.
On suppose que l’on dispose d’une implantation du TDA Pile(elem) avec l’interface
suivante :
typedef ... pile;
pile empty();
int is_empty(const pile);
push(pile &, elem);
elem pop(pile &);
2. Montrer que les états de la variable p après les deux suites d’instructions suivantes
sont identiques :
3/6
REPUBLIQUE DU CAMEROUN REPUBLIC OF CAMEROUN
Paix-Travail-Patrie Peace-Work-Fatherland
***** *****
UNIVERSITE DE YAOUNDE I THE UNIVERSITY OF YAOUNDE I
Sapientia –Collativa- Cognitio Sapientia –Collativa- Cognitio
***** *****
FACULTE DES SCIENCES FACULTY OF SCIENCE
DEPARTEMENT D’INFORMATIQUE DEPARTMENT OF COMPUTER
SCIENCE
TRAVAUX DIRIGES D’INTRODUCTION A L’ALGORITHMIQUE (INF 111)
Dr. NDOM / Professeur ATSA 2025-2026
// déclaration des types
elem x,y,z,t;
pile p;
// séquence d’instructions 1
push(&p, x);
push(&p, y);
// séquence d’instructions 2
push(&p, y);
push(&p, x);
z = pop(&p);
t = pop(&p);
push(&p, z);
push(&p, t);
Exercice 14 Implantation de Pile(T) et File(T)
1. Implanter le TDA Pile(elem) avec la structure de donnée suivante :
#define MAXPILE ...
struct pile_s {
int size;
elem values[MAXPILE];
};
2. Implanter le TDA Pile(elem) avec la structure de donnée suivante :
#define MAXFILE ...
struct pile_s {
4/6
REPUBLIQUE DU CAMEROUN REPUBLIC OF CAMEROUN
Paix-Travail-Patrie Peace-Work-Fatherland
***** *****
UNIVERSITE DE YAOUNDE I THE UNIVERSITY OF YAOUNDE I
Sapientia –Collativa- Cognitio Sapientia –Collativa- Cognitio
***** *****
FACULTE DES SCIENCES FACULTY OF SCIENCE
DEPARTEMENT D’INFORMATIQUE DEPARTMENT OF COMPUTER
SCIENCE
TRAVAUX DIRIGES D’INTRODUCTION A L’ALGORITHMIQUE (INF 111)
Dr. NDOM / Professeur ATSA 2025-2026
int head, tail;
elem values[MAXFILE];
};
Exercice 15 Pile avec taille
1. Étendre la spécification Pile(T) pour ajouter une fonction Hauteur.
2. Quels sont les axiomes vérifiés par Hauteur ?
Exercice 16 Tableau
1. Ecrire la spécification Tableau (T) et ajouter la fonction taille
2. Quels sont les axiomes vérifiés par taille ?
Exercice 17
Soit l’algorithme ci-dessous en langage C. Faites un « dry run » pour tester ce programme,
puis donner son principe.
#include <stdio.h>
#include <stdlib.h>
#define MAX_NODES 100
// Structure d'un nœud de la liste d'adjacence
typedef struct Node {
int data;
struct Node* next;
} Node;
typedef struct Graph {
int num_nodes;
5/6
REPUBLIQUE DU CAMEROUN REPUBLIC OF CAMEROUN
Paix-Travail-Patrie Peace-Work-Fatherland
***** *****
UNIVERSITE DE YAOUNDE I THE UNIVERSITY OF YAOUNDE I
Sapientia –Collativa- Cognitio Sapientia –Collativa- Cognitio
***** *****
FACULTE DES SCIENCES FACULTY OF SCIENCE
DEPARTEMENT D’INFORMATIQUE DEPARTMENT OF COMPUTER
SCIENCE
TRAVAUX DIRIGES D’INTRODUCTION A L’ALGORITHMIQUE (INF 111)
Dr. NDOM / Professeur ATSA 2025-2026
Node* adj_list[MAX_NODES];
int visited[MAX_NODES];
// Tableau pour suivre les nœuds visités
} Graph;
void DFS(Graph* graph, int start_node) {
graph->visited[start_node] = 1;
printf("Nœud visité : %d\n", start_node);
Node* current = graph->adj_list[start_node];
while (current != NULL) {
int neighbor = current->data;
// Si le voisin n'a pas été visité, appeler DFS récursivement
if (graph->visited[neighbor] == 0) {
DFS(graph, neighbor);
}
current = current->next;
}
}
6/6