Vous êtes sur la page 1sur 10

VOGT>>Dept INFO>>Terminale CD / Leçons 28 à 30

UA 7 : ALGORITHMIQUE

Leçon 28 : Généralités sur les algorithmes

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.

I- Généralités sur les algorithmes


1- Structure d’un algorithme
Un algorithme : est une suite finie et ordonnée d’instructions donc l’exécution pas à pas permet de résoudre
un problème.
Un algorithme a généralement trois parties :
- L’entête : Elle permet d’identifier un algorithme par un nom.
- La partie déclarative : elle permet de déclarer tous objets et sous-programmes à utiliser dans
l’algorithme : variable, constante, fonction, procédure, structure.
- Le corps de l’algorithme : délimité par les mots « Début » et « Fin » et contient les
instructions à exécuter.
En général, un algorithme est structuré de la façon suivante :

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 : Algorithme : Fenasco


Var age : entier ;
Début
Ecrire(‘’Enter votre age’’) ;
Lire(age) ;
Si (age ≤ 18) Alors
Ecrire(‘’Tu peux jouer à la fenasco’’) ;
Finsi
Fin

b- La structure alternative complète Si (condition) Alors


Dans cette structure, si la condition est satisfaisante, alors Action1 ;
Action1 est exécuté sinon Action2 qui est exécuté. Sa syntaxe Sinon
est : Action2 ;
Exemple : Algorithme : Resultat_Bacc Finsi
Var Moy : réel ;
Début
Ecrire(‘’Enter votre moyenne’’) ;
Lire(Moy) ;
Si (Moy ≤ 10) Alors
Ecrire(‘’ Refusé’’) ;
Sinon
Ecrire(‘’ Admis’’) ;
Finsi
Fin

2- Les structures itératives


a- La boucle Pour
Elle s’utilise lorsque le nombre d’itérations est à exécuter est bien connu. Sa syntaxe est la suivante :
Pour (Compteur allant de Val_Initiale à Val_Finale pas n ) Faire
Actions ;
Finpour

Exemple : Ecrire l’algorithme permettant d’afficher les 10 premiers entiers.


Algorithme Afficher_Entier
Var i : entier ;
Début
Pour i allant de 0 à 9 pas 1 Faire
Ecrire(i) ;
Finpour
Fin
Page 3 sur 10
VOGT>>Dept INFO>>Terminale CD / Leçons 28 à 30
b- La boucle Tant que
Elle s’utilise lorsqu’aucun traitement ne s’exécute avant la condition (le test) et le nombre d’itérations n’est
pas connu. Sa syntaxe est :
Tant que (Condition) Faire
Actions ;
Fin tant que

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) ;
i1;
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) ;
i1;
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

I- Algorithme de recherche séquentielle


La recherche séquentielle ou linéaire est un algorithme qui permet de trouver une valeur dans une structure
de données (notamment un tableau dans notre cas).
Le principe est de parcourir les cases du tableau dans l’ordre croissant des indices jusqu’à ce qu’on trouve
l’élément recherché, ou bien jusqu’à ce qu’on arrive à la fin du tableau, sans avoir trouvé l’élément recherché.
Soit à rechercher la valeur 6 dans le tableau de taille 5 nommé Tab.
Algorithme : RechercheSequentielle
Var valCherchee, indice, indiceVal : entier ;
Tab : Tableau [1..5] d’entiers ;
Trouve : booléen ;
Début
// Remplissage du tableau
Tab[1]  12 ;
Tab[2]  9 ;
Tab[3]  15 ;
Tab[4]  6 ;
Tab[5]  3 ;
Ecrire(‘’Entrer la valeur à rechercher’’) ;
Lire(valCherchee) ;
Trouve  Faux ;
Pour (indice allant de 1 à 5 pas 1) faire
Si (Tab[indice] = valCherchee) alors
Trouve  vrai ;
indiceVal  indice ;
Fin si
Fin Pour
Si (Trouve = vrai ) alors
Ecrire(‘’La valeur se trouve dans le tableau à l’indice’’, indiceVal) ;
Sinon
Ecrire(‘’La valeur est n’est pas dans ce tableau ‘’) ;
Fin si
Fin

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] ;
ji;
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

III- Résolution d’un problème concret de recherche de données dans un tableau

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

2- Recherche du plus grand élément contenu dans un tableau d’entier

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

Vous aimerez peut-être aussi