Académique Documents
Professionnel Documents
Culture Documents
UA 7 : ALGORITHMIQUE
Indicateurs de compétences :
- Enoncer les généralités sur les algorithmes ;
- Citer quelques structures de contrôle ;
- Exécuter pas à pas un algorithme simple.
Page 1 sur 10
VOGT>>Dept INFO>>Terminale CD / Leçons 28 à 30
2- Déclaration d’une variable et d’une constante
a- Déclaration d’une variable
Une variable : est un objet dont le contenu peut changer au cours de l’exécution de l’algorithme.
La syntaxe de déclaration d’une variable est la suivante : Var nom_variable : type ;
Exemple : Var Nbr_eleve : entier ;
Var sexe : booléen ;
NB : Il existe cinq types de variables : Entier, Réel, Caractère, Chaine de caractères et Booléen.
b- Déclaration d’une constante
Une constante : est un objet donc le contenu reste inchangé (fixe) au cours de l’exécution de l’algorithme.
Sa syntaxe est la suivante :
Const Nom_const = valeur ;
Exemple : Const pi = 3.14 ;
3- Les instructions
Une instruction : est un ordre de traitement respectant les actions simples dans l’exécution d’un algorithme.
Elle se termine en général par un ‘;’. Il existe plusieurs instructions :
- L’instruction d’affectation ( ) : qui consiste à attribuer une valeur à une variable. Exemple :
note 13.5 ;
- L’instruction de sortie ou d’affichage : qui sert à afficher un message à l’écran. Elle utilise le
verbe Ecrire() ou Afficher().
Exemple : Ecrire(‘’Entrer votre note’’) ;
- L’instruction d’entrée ou de lecture : qui permet d’affecter à une variable une valeur de
même type que la variable.
Exemple : Lire(note) ;
Exercice d’application :
Ecrire l’algorithme qui calcule la surface d’un cercle.
Solution :
Algorithme : surface_Cercle
Var S, R : réels ;
Const pi = 3.14 ;
Début
Ecrire(‘’Entrer le rayon du cercle’’);
Lire(R);
S pi*R*R ;
Ecrire(‘’La surface de ce cercle est’’, S) ;
Fin
II- Les structures de contrôle
Une structure de contrôle est une structure qui permet d’exécuter un bloc d’instructions lorsqu’un ensemble
de conditions est réalisé.
Un bloc d’instructions est un ensemble d’instructions qui doivent être exécutées ensemble.
Comme structures de contrôle nous avons : les structures alternatives ou conditionnelles et les structures
répétitives ou itératives.
Page 2 sur 10
VOGT>>Dept INFO>>Terminale CD / Leçons 28 à 30
1- Les structures alternatives ou conditionnelles
On distingue deux structures alternatives ; la structure alternative réduite et la structure alternative
complète.
a- La structure alternative réduite
Elle ne s’exécute que si la condition est satisfaisante. Sa syntaxe est :
Exemple : Écrire l’algorithme permettant d’afficher la somme des entiers consécutifs inferieurs ou égaux au
nombre lu au clavier.
Algorithme Afficher_Nombre
Var i, n, som : entier ;
Début
Ecrire (‘’Entrer votre nombre’’) ;
Lire(n) ;
i1;
som 0 ;
Tant que (i ≤ n ) Faire
som som + i ;
i i+ 1 ;
Fin tant que
Ecrire(‘’La somme calculée est :’’, som) ;
Fin
c- La boucle Répéter
Est une structure dans laquelle le traitement est exécuté une fois avant le test et le nombre d’itération n’est
pas connu. Sa syntaxe est :
Répéter
Actions ;
Jusqu’à (Condition)
Exemple : Écrire l’algorithme permettant d’afficher la somme des entiers consécutifs inférieurs ou égaux au
nombre lu au clavier.
Algorithme Afficher_Nombre
Var i, n, som : entier ;
Début
Ecrire (‘’Entrer votre nombre’’) ;
Lire (n) ;
i1;
som 0 ;
Repeter
som som + i ;
i i+ 1 ;
Jusqu’à (i > n)
Ecrire(‘’La somme calculée est :’’, som) ;
Fin
Page 4 sur 10
VOGT>>Dept INFO>>Terminale CD / Leçons 28 à 30
III- Exécution d’un algorithme simple
Considérons l’algorithme suivant et exécutons-le en donnant une valeur à la longueur et la largeur.
Algorithme Surface_Rectangle ;
Var S, L, l : Réels ;
Début
Ecrire (‘’Entrer la longueur et la largeur);
Lire (L,l);
S L*l;
Ecrire (S) ;
Fin
Solution
i- Si L=6.5 et l=3
- L=6.5 et l=3
- S = 6.5 x 3 (car S L*l;)
- On affiche S=19.5
- Fin de l‘algorithme.
Page 5 sur 10
VOGT>>Dept INFO>>Terminale CD / Leçons 28 à 30
Leçon 29 : Les structures de données
Indicateurs de compétences :
- Citer cinq structures de données
- Utiliser les structures de données (tableau et enregistrement)
I- Les structures de données
Une structure de 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 distingue plusieurs structures de données en algorithmiques parmi lesquels :
➢ Les Enregistrements : Un enregistrement est un type de données défini par l'utilisateur et qui permet de
grouper un nombre fini d'éléments (ou champs) de types éventuellement différents. Il est une structure finie.
➢ Les Piles : Une pile est une structure de données récursive 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).
➢ Les Files : Une file est une structure de récursive 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. Une liste
est une structure récursive.
➢ Les Tableaux : Un tableau est une structure indexée ayant une taille fixe et qui permet de manipuler
les données de même type.
II- Utilisation du tableau et des enregistrements
1) Utilisation des tableaux
Un tableau : est une structure de données indexée qui permet de stocker un certain nombre d’éléments
repérés par un index.
Un tableau a pour caractéristique :
- Tous les éléments ont le même type de base.
- Le nombre d’éléments fixé est fixe.
La syntaxe de déclaration d’un tableau est la suivante :
Variable Nom_Tableau = Tableau [IndiceMin .. IndiceMAx] de type_éléments ou
Variable Nom_Tableau = Tableau [taille] de type_éléments où taille = nombre d’éléments.
Exemple : Déclaration d’un tableau qui va contenir 50 notes.
Variable Notes = Tableau [1..50] de réels.
Les différentes opérations qu’on peut effectuer sur un tableau sont : l’affectation, la lecture (saisie) et
l’affichage (sortie).
- l’affectation : Elle consiste à affecter à une variable un élément du tableau et la syntaxe pour le faire
est la suivante : nom_Variable Nom_Tableau[indice de l’élément] ;
Exemple : X Notes [6] ; permet d’affecter le 6e élément du tableau note à X.
- La lecture : Elle consiste à récupérer et affecter une valeur introduite par l’utilisateur à un élément du
tableau et sa syntaxe est : Lire(Nom_Tableau[indice de l’élément]);
Exemple : Lire(Notes[3]) ; permet d’affecter une valeur introduite par l’utilisateur au 3e élément
du tableau Notes.
- L’affichage ou la sortie : Pour afficher le contenu d’un tableau, la syntaxe est la suivante :
Ecrire(Nom_Tableau[indice de l’élément]) ;
Exemple : Ecrire (Notes[12]) ; permet d’afficher le contenu du 12e élément du tableau Notes.
Page 6 sur 10
VOGT>>Dept INFO>>Terminale CD / Leçons 28 à 30
2) Utilisation de l’enregistrement
Les enregistrements sont des structures de données dont les éléments peuvent être de type différent. Pour
créer des enregistrements, il faut déclarer un nouveau type (type structuré), basé sur d'autres types existants.
Après avoir défini un type structuré, on peut l'utiliser comme un type normal en déclarant une ou plusieurs
variables de ce type.
Les variables de type structuré sont appelées enregistrements. Les éléments qui composent un
enregistrement sont appelés champs.
La syntaxe pour la déclarer est la suivante :
Type montype = Enregistrement
(
Champ1 : type_champ1
Champ2 : type_champ2
…
Champ n : type_champ n
)
Exemple :
Type Personne = Enregistrement
(
Nom : Chaine de caractères
Age : Entier
)
Une fois qu’on a défini un type structuré, on peut déclarer des variables enregistrements exactement de la
même façon que l’on déclaré des variables d’un type primitif.
Syntaxe : Nom_Var : Nom_Enregistrement ;
Exemple : P : Personne ;
La manipulation d’un enregistrement se fait à travers ses champs. Par exemple, pour afficher un
enregistrement il faut afficher tous ses champs un par un.
Alors que les éléments d’un tableau sont par l’intermédiaire de leur indice, les champs d’un enregistrement
sont accessibles à travers leur nom, grâce à l’opérateur ’.’
Nom_Var.Nom_Champ représente la valeur mémorisée dans le champ de l’enregistrement.
Par exemple, pour accéder à l’âge de la variable P, on utilise l’expression : P.Age
Devoir :
1- Ecrire un algorithme qui calcule la surface d’un trapèze.
2- Ecrire un algorithme qui calcule la factorielle de n (n!).
3- Ecrire un algorithme qui affiche la table de multiplication de 3.
4- Ecrire un algorithme qui sauvegarde 50 nombres saisi par l’utilisateur dans un tableau puis les
affiche.
5- a- . Créer type enregistrement qu’on peut utiliser pour sauvegarder les informations sur un élève
sachant que ce dernier possède un nom, un prénom, une date et lieu de naissance, l’âge et le sexe. b.
Ecrire un algorithme qui permet d’enregistrer deux éléments qui compare leurs âges et affiche le
plus âgé.
Page 7 sur 10
VOGT>>Dept INFO>>Terminale CD / Leçons 28 à 30
Leçon 30 : La recherche séquentielle et le par insertion
Indicateurs de compétence :
- Ecrire l’algorithme de recherche séquentielle
- Exécuter pas à pas un algorithme de tri par insertion
- Résoudre les problèmes concrets de recherche de données dans un tableau
Page 8 sur 10
VOGT>>Dept INFO>>Terminale CD / Leçons 28 à 30
II- Exécution d’un algorithme de tri par insertion
Dans l'algorithme du tri par insertion, on parcourt le tableau à trier du début à la fin. Au moment où on
considère le i-ème élément, les éléments qui le précèdent sont déjà triés.
Algorithme Tri_Insertion
Var i, j: entiers ;
Tab : Tableau[1..8] d’entiers ;
Début
Pour i allant de 2 à 8 pas 1 faire
v Tab[i] ;
ji;
Tant que ((Tab[j-1] > v) et (j> 1)) faire
Tab[j] Tab[j-1] ;
j j-1 ;
Fin Tant que
Tab[j] v ;
Fin pour
Fin
Exécution :
Voici les étapes de l’exécution du tri par insertion sur le tableau [6, 5, 3, 1, 8, 7, 2, 4] . Le tableau est
représenté au début et à la fin de chaque itération.
Page 9 sur 10
VOGT>>Dept INFO>>Terminale CD / Leçons 28 à 30
1- Recherche dans le tableau nommé Elève, l’élève dont le nom est saisi en entrée.
Takam Ngo Atangana Idrissou
Algorithme : RechercheSequentielle
Var indice : entier ;
Eleve : Tableau [1..4] de chaine de caractères ;
Nom : chaine de caractères ;
Début
Ecrire(‘’Entrer le nom à rechercher’’) ;
Lire(nom) ;
Pour (indice allant de 1 à 4 pas 1) faire
Si (Eleve[indice] = nom) alors
Ecrire(nom, ‘‘se trouve à l’indice’’, indice) ;
Sinon
Ecrire(nom‘’ est non présent dans ce tableau’’) ;
Fin si
Fin Pour
Fin
Algorithme RechercheMaximun
Const Nmax=100;
Var max, i, n : Entier ;
TabValeur : Tableau [1..Nmax] d’entier ;
Début
//remplissage du tableau avec n valeurs (n<=Nmax)
Pour i allant de 1 à n faire
Lire (TabValeur[i]) ;
FinPour
//valeur à rechercher et initialisation de l’indice
max ← TabValeur[1]) ;
//parcours du tableau à la recherche d’un éventuel maximum
Pour i allant de 2 à n faire
Si (TabValeur[i]>max) alors
max ← TabValeur[i];
Finsi
Finpour
//Affichage du résultat de la recherche
Ecrire("Le plus grand élément dans le tableau est :", max);
Fin
Page 10 sur 10