UA 7 : ALGORITHMIQUE
OPO : Identifier les éléments de base d’un algorithme exécuter un algorithme simple
Décrire les structures de contrôle
INTRODUCTION
L’algorithmique est la science qui étudie les algorithmes.
Un algorithme est une suite finie et ordonnée d’instructions permettant de résoudre un type de
problème précis.
Cette leçon vise à rappeler les notions de base sur les algorithmes.
I. ETAPES DE RESOLUTION D’UN PROBLEME EN ALGORITHMIQUE
L‘utilisation des algorithmes pour résoudre un problème passe par étude préalable du problème
structuré en trois principales étapes que sont :
L‘identification des résultats attendus (qui passe par une claire compréhension du problème) ;
L‘identification des données dont on a besoin pour résoudre le problème ;
L‘identification des opérations ou traitements à effectuer sur les données.
II. LES PARTIES D’UN ALGORITHME
Un algorithme comprend les 03 parties suivantes :
L’entête : Permet d’identifier l’algorithme, de lui donner un nom.
La partie déclarative : C’est une liste de tous les objets à utiliser dans le corps de l’algorithme :
variables, constantes, fonction, procédure…
Le corps de l’algorithme : Compris entre les mots ‘’début’’ et ‘’fin’’, il contient les instructions et
opérations de traitements.
III. LES OBJETS MANIPULÉS DANS UN ALGORIITHME
Les objets permettent de stocker les données qui seront manipulées par l’algorithme.
Exemple de données : le nom d’un utilisateur, l’âge, un nombre, une température, un genre etc.
Les objets peuvent être soit des variables soit des constantes.
1. Les variables
Ce sont des objets dont la valeur peut être modifiée au cours de l’exécution de l’algorithme.
Les 03 caractéristiques d’une variable sont :
Son nom, encore appelé identificateur doit obligatoirement commencer par une lettre et ne doit
pas contenir d’espace.
Son type : C’est la nature de la donnée qu’elle va stocker. On distingue cinq types de base : entier
(nombre sans virgules), réel (nombres avec virgules), booléen (C’est une donnée qui ne peut prendre
Tle C-D 2022/2023
1
UA 7 : ALGORITHMIQUE
que deux états : VRAI ou FAUX, M ou F, Ouvert ou Fermé… ), caractère (‘’a’’, ‘’p’’, ‘‘5’’, ‘’ ?’’), chaine
de caractère (‘’10YI014 ‘’, ‘’Eric’’, ‘’Salut !’’).
Sa valeur : C’est le contenu de la variable à un moment donné.
Syntaxe de déclaration : Variable Nom_Variable : type ; ou Var Nom_Variable : type ;
Exemple de déclaration de variable : variable rayon : entier ; Var nom_utilisateur : chaine ;
2. Les constantes
Ce sont des objets (nombre, caractères,…) dont la valeur ne peut pas être modifiée pendant
l’exécution de l’algorithme.
Syntaxe de déclaration: Constante NomConstante = Valeur ; ou Const NomConstante = Valeur;
Exemple de déclaration de constante : Constante pi = 3.14 ; Const coefmath=4 ;
IV. LES INSTRUCTIONS
Une instruction est une opération élémentaire interprétée et exécutée par un processeur.
Les instructions simples les plus utilisées en algorithmique sont : l’écriture, la lecture et l’affectation.
1. Instruction d’écriture ou d’affichage
Elle permet d’afficher un message ou un résultat à l’écran. On l’utilise grâce aux mots-clés
Ecrire et Afficher.
Sa syntaxe est la suivante : Écrire (‘‘ce qu’on veut afficher’’); ou Ecrire(NomVariable) ;
Exemple : Écrire (‘’ Salut le monde ! ‘’) ; affiche à l’écran le message « Salut le monde ! »
Écrire (age) ; affiche à l’écran la valeur de la variable nommée age.
2. Instruction de Lecture ou de saisie.
Cette instruction permet de récupérer une donnée saisie au clavier afin de la stocker dans une
variable. On l’utilise grâce aux mots-clés Lire ou Saisir.
Sa syntaxe est la suivante :
Lire (NomVariable); ou Lire(NomVar1,NomVar2) ;
Exemple : Lire (longueur) ; récupère une valeur au clavier et stocke dans la variable longueur.
Lire (a, b, c); récupère 03 valeurs au clavier et stocke dans les 03 variables a, b et c.
3. Instruction d’Affectation
Cette instruction permet d’affecter une valeur à une variable.
La syntaxe est la suivante : NomVariable valeur à affecter ;
Exemple : r 5 ; permet d’affecter à la variable r la valeur 5.
V. LES OPÉRATEURS EN ALGORITHMIQUE
On distingue plusieurs types d’opérateurs. Certains diffèrent des opérateurs connus en maths.
Les opérateurs arithmétiques : somme + ; soustraction – ; multiplication * ; division / ;
puissance ^ ; modulo MOD
Les mêmes règles de priorité sur les opérateurs sont valables : 1- Parenthèses 2- Puissance
3- Multiplication et division 4-Addition et Soustraction
Les opérateurs de comparaison : inférieur < ; supérieur > ; inférieur ou égal <= ;
supérieur ou égal >= ; différent < > ; égal =
Les opérateurs logiques ou booléens : OU, ET, NON.
Tle C-D 2022/2023
2
UA 7 : ALGORITHMIQUE
VI. STRUCTURES DE CONTRÔLE
Les structures de contrôle permettent à l‘ordinateur d‘accomplir des actions plus complexes.
Par exemple : tester des conditions ou répéter des traitements en boucle. On distingue
principalement les structures de contrôle suivantes : structure alternative ou conditionnelle,
structure répétitive ou itérative.
1. Structure alternative
Elle permet d’effectuer des traitements qui dépendent de la réalisation d’une condition. Elle existe
sous 2 formes :
Structure alternative réduite Structure alternative complète
Si (condition) alors Si (condition) alors
bloc instructions ; bloc instructions 1;
FinSi Sinon
bloc instructions 2;
FinSi
2. Structure itérative ou boucle
Elle permet de répéter des traitements un nombre déterminé ou indéterminé de fois.
On distingue ainsi :
Structures Cas utilisation Syntaxes
Pour Nombre de répétitions Pour compteur de val_ini à val_fin faire
connu à l’avance bloc instructions ;
FinPour
Tant que Nombre de répétitions compteurVal_ini ;
inconnu Tantque (condition vraie) faire
Répéter un traitement 0 bloc instructions ;
ou plusieurs fois compteurcompteur+1 ;
FinTanque
Répéter Nombre de répétitions compteurVal_ini ;
inconnu Repeter
Répéter un traitement 1 bloc instructions;
ou plusieurs fois compteurcompteur+1 ;
Jusqu‘à(condition vraie)
Citer cinq structures de données ; Déclarer un tableau ; Parcourir un tableau pour effectuer
la lecture et l’affichage ; Ecrire l’algorithme de recherche séquentielle dans un tableau ; Exécuter
pas à pas un algorithme de recherche séquentielle dans un tableau
INTRODUCTION
Une structure des données est une méthode utilisée pour stocker et organiser les données dans un
ordinateur de façon à les utiliser efficacement.
On en distingue plusieurs types. Notre leçon s’attardera sur les tableaux principalement.
I. EXEMPLES DE STRUCTURES DE DONNEES
On distingue plusieurs structures de données en algorithmiques parmi lesquels :
Tle C-D 2022/2023
3
UA 7 : ALGORITHMIQUE
Les Enregistrements : C’est un type de données défini par l'utilisateur et qui permet de grouper un
nombre fini de données de types différents.
Les Piles : Une pile est une structure de données dans laquelle on peut ajouter et supprimer des
éléments suivant la règle du dernier arrivé premier sorti ou encore LIFO (Last In First Out).( Empiler ;
Dépiler ; Vider ; Détruire ;Initialiser etc.)
Les Files : Une file est une structure de données dans laquelle on peut ajouter et supprimer des
éléments suivant la règle du premier arrivé premier sorti ou encore FIFO (Last In First Out).
Les Listes : Une liste chaînée est un ensemble de cellules liées entre elles par des pointeurs.
(Chaque cellule est une structure contenant les champs suivants : une ou plusieurs données comme
dans n’importe quelle structure ; un pointeur suivant sur la cellule suivante).
Les Tableaux : Un tableau est une structure de donnée ayant une taille fixe et qui permet de
manipuler les données de même type.
II. DECLARATION D’UN TABLEAU
Un tableau permet de stocker les données de même type. Il peut être à une dimension
(unidimensionnel) ou à 2 dimensions.
Nous travaillerons avec les tableaux unidimensionnels.
La syntaxe de déclaration d’un tableau est donnée ci-dessous :
Variable Nom_tableau = Tableau [indice_min .. indice_max] de type_éléments;
i: entier ;
i représente l’indice du tableau, qui permettra d’identifier chaque case de ce tableau.
Exemple : Variable T= Tableau[1..5] d’entiers ;
i : entier ;
T est un tableau pouvant contenir 5 nombres entiers ; i peut prendre les valeurs entre 1 et 5.
Il est représenté comme suit : T
i 1 2 3 4 5
Ainsi chaque case du tableau se note sous la forme T[i].
La première case du tableau porte le nom T[1], et la 5e T[5].
III. MANIPULATION DES TABLEAUX
Nous travaillerons avec notre tableau T précédemment déclaré.
1. Ajout des éléments dans le tableau.
L’ajout peut se faire de 02 façons :
Par lecture ou saisie : l’utilisateur pourra saisir les valeurs au clavier.
Syntaxe : Lire(T[i]) ;
Exemple : Lire(T[1]) ; permet de saisir au clavier le 1er élément du tableau T.
Par affectation
Syntaxe : T[i]valeur ;
Exemple : T[3]12 ; affecte 12 comme valeur de la 3e case de T.
Pour remplir le tableau par saisie, on utilise une boucle de notre choix.
Exemple : Remplissage du tableau avec la boucle Pour.
Pour i allant de 1 à 5 faire
Ecrire("Entrer l’élément N°", i) ;
Tle C-D 2022/2023
4
UA 7 : ALGORITHMIQUE
Lire (T[i]) ;
FinPour
On suppose notre tableau rempli comme suit
10 6 12 -5 0
i 1 2 3 4 5
2. Affichage des données du tableau
On utilise l’instruction d’affichage en indiquant l’élément à afficher comme suit :
Ecrire (T[i]) ;
Exemple : Ecrire(T[5]) ; affiche à l’écran la valeur « 0 ».
L’affichage de tous les éléments du tableau peut se faire à l’aide d’une boucle (Exemple Pour).
Pour i allant de 1 à 5 faire
Ecrire (T[i]) ;
FinPour
3. Recherche séquentielle des données dans un tableau.
La recherche des éléments dans un tableau s’effectue en parcourant chaque case du tableau. Ainsi
donc on pourra rechercher par exemple le plus grand élément (Maximum) d’un tableau, le plus petit
(minimum) ou simplement vérifier la présence d’un nombre dans un tableau.
Cette recherche s’effectuera à l’aide des boucles.
a) Algorithme de Recherche séquentielle du maximum dans un tableau T
On considère que notre tableau est rempli avec les valeurs saisies plus haut.
On a les 02 algorithmes suivants qui permettent d’aboutir au même résultat.
Algorithme Recherche_Max Algorithme Recherche_Max
Var T: Tableau[1..5] d’entiers; Var T: Tableau[1..5] d’entiers;
Max, i: entier; Max, i: entier;
Début Début
Pour i allant de 1 à 5 faire Pour i allant de 1 à 5 faire
Ecrire("Entrer l’élément N°", i) ; Ecrire("Entrer l’élément N°", i) ;
Lire (T[i]) ; Lire (T[i]) ;
FinPour FinPour
Max T[1];
Max T[1]; i2 ;
Pour i de 2 à 5 Faire TantQue(i<=5) Faire
Si (T[i] > max) Alors Si (T[i] > max) Alors
MaxT[i]; MaxT[i];
FinSi ii+1 ;
FinPour FinSi
Ecrire("Le max est: ", Max); FinTantQue
Fin Ecrire("Le max est: ", Max);
Fin
b) Algorithme de recherche séquentielle du minimum d’un tableau
On a les 02 algorithmes suivants qui permettent d’aboutir au même résultat.
Algorithme Recherche_Min Algorithme Recherche_Min
Var T: Tableau[1..5] d’entiers; Var T: Tableau[1..5] d’entiers;
Min, i: entier; Min, i: entier;
Début Début
Pour i allant de 1 à 5 faire Pour i allant de 1 à 5 faire
Tle C-D 2022/2023
5
UA 7 : ALGORITHMIQUE
Ecrire("Entrer l’élément N°", i) ; Ecrire("Entrer l’élément N°", i) ;
Lire (T[i]) ; Lire (T[i]) ;
FinPour FinPour
Min T[1]; Min T[1];
Pour i de 2 à 5 Faire i2 ;
Si (T[i] < max) Alors TantQue(i<=5) Faire
MinT[i]; Si (T[i] < max) Alors
FinSi MinT[i];
FinPour ii+1 ;
Ecrire("Le min est: ", Min); FinSi
Fin FinTantQue
Ecrire("Le min est: ", Min);
Fin
c) Recherche d’un élément quelconque dans un tableau
Cette méthode simple consiste à parcourir le tableau à partir du premier élément, et à s'arrêter dès
que l'on trouve l'élément cherché (on ne cherche pas toutes les occurrences d'un élément). Soient T
un tableau de n éléments et m l'élément qu'on recherche.
Algorithme de recherche séquentielle
Données : Un tableau T de n éléments et un élément m
Résultat : Le premier indice i où se trouve l'élément m s‘il est dans T, et sinon la réponse «
Elément introuvable ! »
i1;
TantQue (i<=n ET [i]<>m) faire
ii+1;
FinTanque
Si (i<=n) alors
Ecrire(" Elément en position", i) ;
Sinon
Ecrire(" Elément introuvable !") ;
FinSi
Tle C-D 2022/2023