Vous êtes sur la page 1sur 112

INTRODUCTION À L'ALGORITHMIQUE –2

SMI-3

A.U: 2022 – 2023

DÉPARTEMENT INFORMATIQUE

Pr. Redouan Lahmyed ALGORITHMIQUE 2 1


Procédure du cours

•Présence
• Prises de notes de cours
• Diffusion de l’information:
 Responsable de la section
 facebook : Dept Info FSA
Contact: lahmyed.redouan@gmail.com

Pr. Redouan Lahmyed ALGORITHMIQUE 2 2


References

 Introduction à l’algorithmique. Cours et exercices. Cormen et


al. 2e édition. (EN 3rd Edition)

 Algorithms, FOURTH EDITION, Robert Sedgewick and Kevin


Wayne. Princeton University.

• Algorithmique Raisonner pour concevoir. Christophe HARO.


• Éléments d'algorithmique. D. Beauquier et al.
• Informatique pour tous. P. Chatel.
• Algorithmique, M. El Marraki.

• http://pise.info/algo/

Pr. Redouan Lahmyed ALGORITHMIQUE 2 3


Sommaire

• Rappel
• Tableaux (statiques et dynamiques)
• Pointeurs
• Fonctions et procédures
• La récursivité
• Fichiers, Enregistrements et Structures
• Notions sur des structures de données élementaires
• La complexité
• Preuves d’algorithmes
• Tas et tri par tas ,
• Compression de données

Pr. Redouan Lahmyed ALGORITHMIQUE 2 4


C’est Quoi un Algorithme ?
 Le mot algorithme vient du nom du mathématicien arabe "Al-Khwârizmî“.

Définition 01
• Un algorithme représente une séquence
d’instructions (Actions), logiquement ordonnées, qui
permet de résoudre un problème donné.

Algorithme Problème à
Résoudre
 d’actions (instructions) Résoudre

Pr. Redouan Lahmyed ALGORITHMIQUE 2 5


Analyse et Résolution d’un Problème

Problème Analyser et Etudier le problème à Résoudre

Spécifier le modèle de Résolution : données et les


Modèle
formules mathématiques

Algorithme Écrire l’algorithme

Traduire l’algorithme à un programme


Programme

Exécuter le programme par un ordinateur afin d’obtenir


Résultats
des résultats

Pr. Redouan Lahmyed ALGORITHMIQUE 2 6


Structure D’un Algorithme
Entête
Permet d’identifier l’algorithme avec un nom unique
(Identificateur)
Algorithme
 de Données +  d’instruction Déclarations
On déclare toutes les données (Variables et
Constantes)

Corps (Instructions)
La partie des instructions (Entrées, Traitement et
Sorties)

Modèle d’écriture d’un Algorithme


Algorithme <Ident_Algo>
<Déclarations>
Début
<Instructions>
Fin
Pr. Redouan Lahmyed ALGORITHMIQUE 2 7
Déclaration des variables

Pr. Redouan Lahmyed ALGORITHMIQUE 2 8


Déclaration des variables

• Une variable est caractérisée par :


 Un identificateur (Identif) : qui sert à la désigner
 Un type : définit la nature de l’information qui sera représentée dans la
variable (numériques, caractères…)
 Une valeur : à un instant donné, une variable ne peut contenir qu’une
seule valeur
• La déclaration d’une variable se fait comme suit :
VARIABLE Identif : TYPE
ou
VARIABLES Identif1, Identif2,… : TYPE

Remarques
Les variables doivent être déclarées avant d’être utilisées

Pr. Redouan Lahmyed ALGORITHMIQUE 2 9


Déclaration des variables
Concept d’Identificateur
• Chaque donnée (Variable ou constante) manipulée par un
algorithme est désignées par un nom unique :
IDENTIFICATEUR.
• Identificateur : c’est une chaîne de caractères
alphanumérique (contenant uniquement des caractères
alphabétiques [a-z, A-Z] et numériques [0-9]) en plus du
caractère « _ » (Trait souligné) et qui ne commence pas par
un caractère numérique.

Remarques
 Un identificateur est affecté à un seul objet. On peut jamais utiliser le même identificateur pour deux
variables ou constantes différentes.
 Doit commencer par une lettre alphabétique
 Doit être différent des mots réservés du langage (par exemple en C: int, float, long, else, for, if,
return, …)
 La longueur du nom doit être inférieure à la taille maximale spécifiée par le langage utilisé

Pr. Redouan Lahmyed ALGORITHMIQUE 2 10


Déclaration des variables
Exemple
 Parmi les identificateurs suivants, indiquer ceux qui sont
valides et ceux qui ne le sont pas ?
12x ; Prix Unitaire ; Hauteur-Mur ; a1 ; a?b ;

Pr. Redouan Lahmyed ALGORITHMIQUE 2 11


Déclaration des variables
Exemple
 Parmi les identificateurs suivants, indiquer ceux qui sont
valides et ceux qui ne le sont pas ?
12x ; Prix Unitaire ; Hauteur-Mur ; a1 ; a?b ;

Réponse
• 12x : n’est valide, puisqu’il commence par un caractère numérique.
Doit être : x12
• Prix Unitaire : n’est pas valide, puisqu’il contient un espace. Doit
être : PrixUnitaire ou Prix_Unitaire.
• Hauteur-Mur : n’est pas valide, puisque il contient le signe « -
»(moins). Doit être : Hauteur_Mur.
• a1 : est valide
• a?b : n’est pas valide, puisqu’il contient le caractère « ? ». Doit être
: ab.

Pr. Redouan Lahmyed ALGORITHMIQUE 2 12


Déclaration des variables
Le type d’une variable permet de :

Définir l’ensemble de valeurs que peut prendre la


variable
Fixer la taille, en cases mémoires (octets), de la variable
Définir la nature des opérations autorisées sur la variable

Les types utilisés en langage algorithmique sont :

Type Entier pour représenter les entiers positifs ou négatifs (1, 2,


0, -5…).
Type Réel pour représenter les nombres à virgule (0.5, 2.11, -8.10
…).
Type Caractère pour représenter des caractères (‘a’, ‘A’, ‘b’, ‘B’, …).
Type Chaîne pour représenter des phrases ("FSA", "SMI",
"AGADIR", …).
Type logique (Booléen) pour représenter les valeurs de vérité de
la logique ("Vrai", "Faux").

Pr. Redouan Lahmyed ALGORITHMIQUE 2 13


Déclaration des variables
Exercice:
Donnez le type des données suivantes:

Donnée Type
“ Bienvenue au Maroc ”

-300

“8”

25.68

“@”

Vrai

“Faux”

Pr. Redouan Lahmyed ALGORITHMIQUE 2 14


Déclaration des variables
Exercice:
Donnez le type des données suivantes:

Donnée Type
“ Bienvenue au Maroc ” Chaine de caractères

-300 Entier

“8” Chaine de caractères

25.68 Réel

“@” Chaine de caractères

Vrai Booléen

“Faux” Chaine de caractères

Pr. Redouan Lahmyed ALGORITHMIQUE 2 15


Déclaration des constantes

 Variable: Une donnée dont le contenu peut être modifié par une action durant
l'éxécution d'un algorithme.

 Constante: Une donnée fixe qui ne varie pas durant l'éxécution d'un algorithme.

Syntaxe:
Constante NOM_DE_LA_CONSTANTE = Valeur

Exemple:
Constante PI = 3.14
Constante Nbr_Mois = 12

Pr. Redouan Lahmyed ALGORITHMIQUE 2 16


Les istructions élémentaires

Affectation
Entrées / Sorties (Lire-Ecrire)
Opérateurs arithmétiques (binaires & unaires)
Opérateurs Booléens
Opérateurs relationnels (de comparaison)
Opérateurs sur les chaînes

Pr. Redouan Lahmyed ALGORITHMIQUE 2 17


Affectation

 L'affectation permet d'affecter (attribuer) une valeur à une variable

 Elle est symbolisée en algorithmque par “←”


Expression peut être soit:
Syntaxe:  Identificateur
Variable ← Valeur  Constante
Variable ← Expression
 Expression arithmétique
 Expression logique

Exemple:

A←2 la variable A reçoit la valeur 2


B←A La variable B reçoit le contenu de A
C ← A+B La variable C reçoit le résultat de A plus B
Nom ← "Ali" La variable Nom reçoit la valeur “Ali”

Pr. Redouan Lahmyed ALGORITHMIQUE 2 18


Affectation
Exercice: Déclaration et affectation
Soient trois variables A, B et C tels que:

A est de type entier


B est de type chaine de caractères
C est type logique

1- Cochez ce qui est juste : ?

A←8 B ← "12/09/2022 "

A ← "FSA" C ← 10

B←3 C ← 2<5

B←A C ← 1> -22

Pr. Redouan Lahmyed ALGORITHMIQUE 2 19


Affectation
Exercice: Déclaration et affectation
Soient trois variables A, B et C tels que:

A est de type entier


B est de type chaine de caractères
C est type logique

1- Cochez ce qui est juste : ?

A←8 B ← "12/09/2022 "

A ← "FSA" C ← 10

B←3 C ← 2<5

B←A C ← 1> -22

Pr. Redouan Lahmyed ALGORITHMIQUE 2 20


Affectation
Exercice: Complétez le tableau suivant

Variables
Instructions A B C D

B←2

C ← B +10

A←4

D←A

B← B * D

Pr. Redouan Lahmyed ALGORITHMIQUE 2 21


Affectation
Exercice: Complétez le tableau suivant

Variables
Instructions A B C D

B←2 2

C ← B +10 2 12

A←4 4 2 12

D←A 4 2 12 4

B← B * D 4 8 12 4

Pr. Redouan Lahmyed ALGORITHMIQUE 2 22


Instruction d’écriture
 C’est l’instruction qui permet à l’algorithme d’afficher des
messages ou des résultats de calculs.

Syntaxe:
ECRIRE (Variable)
ECRIRE (" Message")
ECRIRE ("Message" ,
Variable)
De manière générale :
ECRIRE (V1 , V2 , … , Vn)

Exemples :
ECRIRE (A)
ECRIRE (" bonjour " )
ECRIRE (" le périmètre = " , P )
Pr. Redouan Lahmyed ALGORITHMIQUE 2 23
Instruction d’écriture

Exercice: Qu'affichent les instructions suivantes:

Nom ← "Ali"

Ecrire ("Nom")
Ecrire (Nom)
Ecrire ("Nom", Nom)

Pr. Redouan Lahmyed ALGORITHMIQUE 2 24


Instruction d’écriture

Exercice: Qu'affichent les instructions suivantes:

Nom ← "Ali"
 Signifie affiché sur l'écran le message (Nom)
Ecrire ("Nom")  Signifie affiché sur l'écran le contenu de la
Ecrire (Nom) variable Nom (Ali)
Ecrire ("Nom", Nom)  Signifie affiché sur l'écran le message (Nom)
+ le contenu de la variable Nom (Nom Ali)

Pr. Redouan Lahmyed ALGORITHMIQUE 2 25


Instruction de lecture
 L'instruction Lire permet de demander à l'utilisateur de fournir
des informations. Chaque information donnée par l'utilisateur est
stockée dans une variable (attention au type !).

Syntaxe:

LIRE (Variable)

LIRE (Variable1, Variable2, …, VariableN)

Pr. Redouan Lahmyed ALGORITHMIQUE 2 26


Instruction de lecture

Exercice:
Nous voulons écrire un algorithme qui calcule l'aire d'un cercle
1- Donner les instructions de déclaration.
2- Donner les instructions qui demandent à l'utilisateur de taper les valeurs
des données.
3- Donner les instructions de traitement.
4- Donner les instructions qui permettent d'afficher le résultat.

Pr. Redouan Lahmyed ALGORITHMIQUE 2 27


Instruction de lecture
Exercice:
Nous voulons écrire un algorithme qui calcule l'aire d'un cercle
1- Donner les instructions de déclaration.
2- Donner les instructions qui demandent à l'utilisateur de taper les valeurs
des données.
3- Donner les instructions de traitement.
4- Donner les instructions qui permettent d'afficher le résultat.

Algorithme Aire_Cercle
Variables Rayon, Surface : Réel
Constante Pi = 3.14
Début
Ecrire ("Veuillez entrer la valeur du rayon de cercle :")
Lire (Rayon)
Surface ← Rayon * Rayon * Pi
Ecrire ("L'aire de cercle est : ", Surface)
Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 28


Les opérateurs arithmétiques
Les opérateurs binaires:
 Ces opérateurs sont dits binaires car ils s’utilisent avec deux
valeurs. Une avant le symbole et une après
+ Addition
- Soustraction
* Multiplication
/ Division
% Modulo (reste de la division euclidienne)
^ Puissance

Rappel:
o La division de deux entiers est un entier. 15/2=7
o Le modulo est le reste d’une division entière. 15%2=1

Pr. Redouan Lahmyed ALGORITHMIQUE 2 29


Les opérateurs arithmétiques
Les opérateurs unaires :
 Ces opérateurs sont dits unaires car ils n’admettent qu’une seule
valeur (++ , --, ….).

Exemple:

o X++ = X+1
o ++X = X+1
o Y-- = Y-1
o --Y = Y-1

Pr. Redouan Lahmyed ALGORITHMIQUE 2 30


Les opérateurs arithmétiques
Exercice:
Qu'affichent les instructions suivantes

Algorithme Unaire
Variables A : Entier

Début
A←1
Ecrire (++A)
Ecrire (A++)
Ecrire (A)
Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 31


Les opérateurs arithmétiques
Exercice:
Qu'affichent les instructions suivantes

Algorithme Unaire
Variables A : Entier

Début
A←1 Resultat:
Ecrire (++A)
Ecrire (A++)
2
Ecrire (A)
Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 32


Les opérateurs arithmétiques
Exercice:
Qu'affichent les instructions suivantes

Algorithme Unaire
Variables A : Entier

Début
A←1 Resultat:
Ecrire (++A) 2
Ecrire (A++)
Ecrire (A)
2
Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 33


Les opérateurs arithmétiques
Exercice:
Qu'affichent les instructions suivantes

Algorithme Unaire
Variables A : Entier

Début
A←1 Resultat:
Ecrire (++A) 2
Ecrire (A++) 2
Ecrire (A)
Fin
3

Pr. Redouan Lahmyed ALGORITHMIQUE 2 34


Les opérateurs logiques
 Les opérateurs logiques sont : ‘NON’, ‘ET’ , ‘OU’, ‘OU exclusif’

On a les tableaux suivants : C1 C2 C1 OU C2


VRAI VRAI VRAI
C1 NON C1
VRAI FAUX VRAI
VRAI FAUX
FAUX VRAI VRAI
FAUX VRAI
FAUX FAUX FAUX

C1 C2 C1 ET C2 C1 C2 C1 OU exclusif C2
VRAI VRAI VRAI VRAI VRAI FAUX
VRAI FAUX FAUX VRAI FAUX VRAI
FAUX VRAI FAUX FAUX VRAI VRAI
FAUX FAUX FAUX FAUX FAUX FAUX

Pr. Redouan Lahmyed ALGORITHMIQUE 2 35


Les opérateurs de comparaison
Opérateur Dénomination Effet Exemple Résultat
(Pour x←3)

= Opérateur d’égalité Compare deux valeur et vérifie x=7 0


leur égalité

< Opérateur Vérifie si une valeur est


d’infériorité stricte strictement inférieure à une x<7 1
valeur
Vérifie si une valeur est
<= Opérateur d’infériorité inférieure ou égale à une x<=3 1
valeur
Vérifie si une valeur est
Opérateur de
> supériorité stricte
strictement supérieure à une x>7 0
valeur
Vérifie si une valeur est
Opérateur de
>= supériorité
supérieure ou égale à une x>=3 1
valeur
Opérateur de Vérifie si une valeur est
!= différence différente d’une autre valeur
x!=3 0

Pr. Redouan Lahmyed ALGORITHMIQUE 2 36


Les opérateurs de comparaison
Exercice:
Qu'affichent les instructions suivantes

Algorithme Comparaison
Variables A , B , C : Entier

Début
A←5
B←5
C ← 10
Ecrire (A = B)
Ecrire (A = C)

Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 37


Les opérateurs de comparaison
Exercice:
Qu'affichent les instructions suivantes

Algorithme Comparaison
Variables A , B , C : Entier

Début
A←5
B←5 Resultat:
C ← 10
Ecrire (A = B)
Ecrire (A = C)
1
Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 38


Les opérateurs de comparaison
Exercice:
Qu'affichent les instructions suivantes

Algorithme Comparaison
Variables A , B , C : Entier

Début
A←5
B←5 Resultat:
C ← 10
Ecrire (A = B) 1
Ecrire (A = C)
0
Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 39


Les opérateurs sur les chaines

 Pour les chaînes, on utilise l’opérateur ‘&’


 Cet opérateur permet de concaténer (agglomérer) deux chaines
de caractères.

Exemples :
A ← " Faculté "
B ← " des sciences"
C←A&B
La variable C vaut : " Faculté des sciences"

Pr. Redouan Lahmyed ALGORITHMIQUE 2 40


Les opérateurs sur les chaines
Exercice:
Qu'affichent les instructions suivantes

Algorithme TXT
Variables txt1 , txt2 , txt3 , txt4 : chaine des caractères

Début
txt1 ← "FSA"
txt2 ← " SMI"
txt3 ← "FSA SMI3"
txt4 ← txt1 & txt2
Ecrire (" txt1 ")
Ecrire (txt4 != txt3)

Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 41


Structures élémentaires

Structures élémentaires:
 Structures conditionnelles
 Simple : Si ... Alors ... Fin Si
 Alternative : Si ... Alors ... Sinon ... Fin Si
 Alternative SI imbriquée (plus de deux choix)
 à choix multiples : Selon

 Structures répétitives
 Les boucles Pour
 Les boucles Tant que
 Les boucles répéter... jusqu’à

Pr. Redouan Lahmyed ALGORITHMIQUE 2 42


Structures élémentaires

Structures de contrôle
conditionnelles

Pr. Redouan Lahmyed ALGORITHMIQUE 2 43


Structure conditionnelle simple (choix)

Syntaxe:

SI (condition) Alors
Instructions
FINSI

Si la condition vaut Vrai alors le bloc d'instructions sera exécuté, si non il sera ignoré

Pr. Redouan Lahmyed ALGORITHMIQUE 2 44


Structure conditionnelle simple (choix)
Exemple:

Algorithme Factoriele
Variables F , n , i : Entier

Début
Ecrire (" Veuillez entrer le dividende")
Lire (A)
Ecrire (" Veuillez entrer le diviseur")
Lire (B)
Si B != 0 Alors
Ecrire (" Le résultat est : " , A / B)
Fin Si

Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 45


Structure conditionnelle simple (choix)

Exercice:
Ecrire un algorithme qui permet de calculer le maximum de deux nombres
réels saisies par l'utilisateur.

Pr. Redouan Lahmyed ALGORITHMIQUE 2 46


Structure conditionnelle simple (choix)
Exercice:
Ecrire un algorithme qui permet de calculer le maximum de deux nombres réels
saisies par l'utilisateur.

Algorithme Maximum
Variables A , B , Max : Réel

Début
Ecrire (" Entrez les valeurs de A et de B.")
Lire (A , B)
Max ← A
Si Max < B Alors
Max ← B
Fin Si
Ecrire (" la valeur maximale est : " , Max)
Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 47


Structure conditionnelle - Structure alternative
(deux choix)

Syntaxe:
Non Condition Oui
SI (Condition) ALORS
bloc 1 d'instructions vérifiée
SINON
bloc 2 d'instructions
Séquence 22
Instructions Instructions
Séquence1 1
FINSI

Si la condition vaut Vrai alors le bloc d'instructions1 sera exécuté, et le bloc


d'instructions2 sera ignoré, sinon le bloc d'instructions2 sera exécuté et le bloc
d'instructions1 sera ignore.

Pr. Redouan Lahmyed ALGORITHMIQUE 2 48


Structure conditionnelle - Structure alternative
(deux choix)
Algorithme division
Variables A , B : Réel

Début
Ecrire (" Veuillez entrer le dividende")
Lire (A)
Ecrire (" Veuillez entrer le diviseur")
Lire (B)
Si B != 0 Alors
Ecrire (" Le résultat est : " , A / B)
Sinon
Ecrire (" La division par 0 est impossible " )

Fin Si

Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 49


Structure conditionnelle - Structure alternative
(deux choix)

Exercice:
Ecrire un algorithme qui permet de demander un nombre entier à
l'utilisateur, et l'informe ensuite si ce nombre est pair ou impair.

Pr. Redouan Lahmyed ALGORITHMIQUE 2 50


Structure conditionnelle - Structure alternative
(deux choix)
Exercice:
Ecrire un algorithme qui permet de demander un nombre entier à
l'utilisateur, et l'informe ensuite si ce nombre est pair ou impair.
Algorithme Pair_Impair
Variables A : Entier

Début
Ecrire (" Programme qui détermine la nature d'un nombre : ")
Ecrire (" Veuillez entrer le nombre")
Lire (A)

Si (A % 2 =0) Alors
Ecrire (" Le nombre est pair ")
Sinon
Ecrire (" Le nombre est impair ")
Fin Si
Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 51


Structure conditionnelle - Structure alternative
imbriquée (multiple choix)
Syntaxe:

Si (condition1) alors
instructionsA

Sinon
Si (condition2) alors
instructionsB
Sinon
instructionsC
Finsi
Finsi

Pr. Redouan Lahmyed ALGORITHMIQUE 2 52


Structure conditionnelle - Structure alternative
imbriquée (multiple choix)

Exemple:
Ecrire un algorithme qui permet de demander un nombre entier à l'utilisateur, et
l'informe ensuite si ce nombre est positif ou négatif.

Pr. Redouan Lahmyed ALGORITHMIQUE 2 53


Structure conditionnelle - Structure alternative
imbriquée (multiple choix)
Algorithme nature_Nombre
Variables A : Entier

Début
Ecrire (" Programme qui détermine la nature d'un nombre : ")
Ecrire (" Veuillez entrer le nombre")
Lire (A)
Si A > 0 Alors
Ecrire (" Le nombre est positif ")
Sinon
Si A < 0 Alors
Ecrire (" Le nombre est negatif ")
Sinon
Ecrire (" Le nombre est nul ")
Fin Si

Fin Si
Fin
Pr. Redouan Lahmyed ALGORITHMIQUE 2 54
Structure conditionnelle - Structure alternative
imbriquée (multiple choix)

Exercice:
Ecrire un algorithme qui permet de demander un nombre entier entre 0 et 2 à
l'utilisateur, et affiche leur nom.

Pr. Redouan Lahmyed ALGORITHMIQUE 2 55


Structure conditionnelle - Structure alternative
imbriquée (multiple choix)
Algorithme Nom_chiffre
Variables A : Entier
Début
Ecrire ("Donnez votre chiffre entre 0 et 2")
Lire (A)
Si A = 0 Alors
Ecrire (" Zéro")
Sinon
Si A = 1 Alors
Ecrire (" Un ")
Sinon
Si A = 2 Alors
Ecrire (" Deux ")
Sinon
Ecrire (" Erreur de la saisie ")
Fin Si
Fin Si
Fin Si
Fin
Pr. Redouan Lahmyed ALGORITHMIQUE 2 56
Structure à choix multiples : Selon
 Lorsque l'imbrication des alternatives devient importante, l'utilisation de la structure à
choix multiple devient nécessaire.

Syntaxe:
variable
Selon (variable)
Cas val_1 : inst_1
Cas val_2 : inst_2 val_1 val_2 val_n Sinon
... inst_1 inst_2 .... inst_n inst_d
Cas val_n : inst_n
Sinon : inst_d
FinSelon

Pr. Redouan Lahmyed ALGORITHMIQUE 2 57


Structure à choix multiples : Selon

Algorithme Nom_chiffre
Variables n : Entier

Début
Ecrire ("Donnez votre chiffre entre 0 et 2")
Lire (n)

Selon (n)

Cas 0 : Ecrire (" Zéro")


Cas 1 : Ecrire ("Un")
Cas 2 : Ecrire ("Deux")
Sinon : Ecrire ("erreur de la saisie")

Fin Selon

Fin
Pr. Redouan Lahmyed ALGORITHMIQUE 2 58
Structures élémentaires

Les structures itératives

Pr. Redouan Lahmyed ALGORITHMIQUE 2 59


La boucle Pour
 Utilisée lorsqu’on connait d’avance le nombre de Début de la
Boucle Pour
répétitions.

 Syntaxe : Cpt← Val_initial

Pour Cpt=val_initial à val_final Pas de pas


Faux
Bloc d’instructions Cpt <= Val_final
FinPour
Vrai

instructions

Cpt← Cpt+Pas

Pr. Redouan Lahmyed ALGORITHMIQUE 2 60


La boucle Pour
Exemple:
Ecrire un algorithme qui reçoit en entrée un nombre entier de 1 à 10 et affiche en
sortie la table de multiplication de ce nombre.

Algorithme Table_Multiplication
Variables N , i : Entier

Début
Ecrire (" Saisir un nombre entier")
Lire (N)

Pour i =1 à 10 Pas de 1

Ecrire (i , "x ", N ," = ", i * N)

FinPour

Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 61


La boucle Tant que
 Utilisée lorsqu’on ne connait d’avance le nombre de Début de la
répétitions. Boucle Tant que
 Syntaxe :

Faux
Tant que (Condition) Condition
Bloc d’instructions
Vrai
FinTantque
instructions
 La condition est évaluée avant chaque itération;
 Si la condition est vraie, on exécute le bloc
d’instructions puis, on retourne pour re-tester la condition.
Si elle est vraie, on ré-exécute le bloc d’instructions et ainsi de suite;
 Si la condition est fausse, on sort de la boucle sans exécuter le bloc d’instructions.

Pr. Redouan Lahmyed ALGORITHMIQUE 2 62


La boucle Tant que
Exemple:

Problème calcul de S = 1+2+3+…+100.

Algorithme Somme
Variables Somme , i : Entier

Début
i←0
S←0
Tant que ( i <= 100 )
Somme ← Somme + i
i←i+1
FinTantque

Ecrire ("La somme est ", Somme)

Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 63


La boucle Répéter…jusqu’à
 Utilisée lorsqu’on ne connait d’avance le nombre de Début de la Boucle
Répéter…jusqu’à
répétitions.
 Syntaxe :
instructions
Répéter
Bloc d’instructions
Vrai
Jusqu’à (Condition) Condition

 Le bloc d’instructions est exécuté;


Faux

 Ensuite la condition est évaluée;


 Si la condition est vraie, on sort de la boucle, sinon si elle
 est fausse on ré-exécute le bloc d’instructions, on réévalue la condition et ainsi de
suite.
Pr. Redouan Lahmyed ALGORITHMIQUE 2 64
La boucle Répéter…jusqu’à
Exemple:
Problème calcul de S = somme de N entiers saisis au clavier, le dernier entier est
zéro.

Algorithme Somme_Clavier
Variables S , Val : Entier

Début
S←0
Répéter
Lire(Val)
S ← S + Val

Jusqu’à (Val != 0)

Ecrire (" La somme est : « , S )

Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 65


Structures élémentaires

Les tableaux

Pr. Redouan Lahmyed ALGORITHMIQUE 2 66


Les tableaux

Définition:Un tableau est une suite d'éléments de même type. Il utilise


plusieurs cases mémoire à l'aide d'un seul nom (Identificateur).
Comme toutes les cases portent le même nom, elles se différencient
par un indice

Pr. Redouan Lahmyed ALGORITHMIQUE 2 67


Les tableaux

Tableaux

Déclarer un Accéder à un Afficher les Remplir un


Tableau Élément Éléments Tableau

Pr. Redouan Lahmyed ALGORITHMIQUE 2 68


Les tableaux
Déclaration d'un Tableau

Syntaxe: Tableau Nom_Tab[Taille] : type

Exemple: Déclaration de la variable N  Déclaration: Tableau N [500] : Réel


de l'algorithme note

Pr. Redouan Lahmyed ALGORITHMIQUE 2 69


Les tableaux
Accéder aux éléments d'un Tableau

 Syntaxe d'affectation Nom_Tab [indice] ← Valeur

 Syntaxe lecture Lire (Nom_Tab [indice])

 Syntaxe écriture Ecrire (Nom_Tab [indice])

Exemple:

Pr. Redouan Lahmyed ALGORITHMIQUE 2 70


Les tableaux
Accéder aux éléments d'un Tableau

 Syntaxe d'affectation Nom_Tab [indice] ← Valeur

 Syntaxe lecture Lire (Nom_Tab [indice])

 Syntaxe écriture Ecrire (Nom_Tab [indice])

Exemple:
Affectation de la note 14 à l'étudiant num 1 :

Pr. Redouan Lahmyed ALGORITHMIQUE 2 71


Les tableaux
Accéder aux éléments d'un Tableau

 Syntaxe d'affectation Nom_Tab [indice] ← Valeur

 Syntaxe lecture Lire (Nom_Tab [indice])

 Syntaxe écriture Ecrire (Nom_Tab [indice])

Exemple:
Affectation de la note 14 à l'étudiant num 1 : N [ 0 ] ← 14

Pr. Redouan Lahmyed ALGORITHMIQUE 2 72


Les tableaux
Accéder aux éléments d'un Tableau

 Syntaxe d'affectation Nom_Tab [indice] ← Valeur

 Syntaxe lecture Lire (Nom_Tab [indice])

 Syntaxe écriture Ecrire (Nom_Tab [indice])

Exemple:
Utilisation de la lecture pour saisir la note de
l'étudiant num 2

Pr. Redouan Lahmyed ALGORITHMIQUE 2 73


Les tableaux
Accéder aux éléments d'un Tableau

 Syntaxe d'affectation Nom_Tab [indice] ← Valeur

 Syntaxe lecture Lire (Nom_Tab [indice])

 Syntaxe écriture Ecrire (Nom_Tab [indice])

Exemple:
Utilisation de la lecture pour saisir la note de Lire (N [ 1 ])
l'étudiant num 2

Pr. Redouan Lahmyed ALGORITHMIQUE 2 74


Les tableaux
Accéder aux éléments d'un Tableau

 Syntaxe d'affectation Nom_Tab [indice] ← Valeur

 Syntaxe lecture Lire (Nom_Tab [indice])

 Syntaxe écriture Ecrire (Nom_Tab [indice])

Exemple:
Utilisation de la lecture pour saisir la note du
dernier étudiant :

Pr. Redouan Lahmyed ALGORITHMIQUE 2 75


Les tableaux
Accéder aux éléments d'un Tableau

 Syntaxe d'affectation Nom_Tab [indice] ← Valeur

 Syntaxe lecture Lire (Nom_Tab [indice])

 Syntaxe écriture Ecrire (Nom_Tab [indice])

Exemple:
Utilisation de la lecture pour saisir la note du Lire (N [ 499 ])
dernier étudiant :

Pr. Redouan Lahmyed ALGORITHMIQUE 2 76


Les tableaux
Accéder aux éléments d'un Tableau

 Syntaxe d'affectation Nom_Tab [indice] ← Valeur

 Syntaxe lecture Lire (Nom_Tab [indice])

 Syntaxe écriture Ecrire (Nom_Tab [indice])

Exemple:
Affichage de la note du dernier étudiant de la liste :

Pr. Redouan Lahmyed ALGORITHMIQUE 2 77


Les tableaux
Accéder aux éléments d'un Tableau

 Syntaxe d'affectation Nom_Tab [indice] ← Valeur

 Syntaxe lecture Lire (Nom_Tab [indice])

 Syntaxe écriture Ecrire (Nom_Tab [indice])

Exemple:
Affichage de la note du dernier étudiant de la liste : Ecrire (N [ 499 ])

Pr. Redouan Lahmyed ALGORITHMIQUE 2 78


Les tableaux
Exercice:
o Déclaration d'un tableau nommé T composé de cinq éléments entier :
o Affectation des valeurs aux éléments du tableau T :

T [0] ← 8

T [1] ← T [0] - 3
T [2] ← T [1] * T [0]

T [3] ← 20

T [4] ← T [0] + T [1] + T [2] + T [3]

Pr. Redouan Lahmyed ALGORITHMIQUE 2 79


Les tableaux
Exercice:
o Déclaration d'un tableau nommé T composé de cinq éléments entier :

Tableau T [ 5 ] : entier

Pr. Redouan Lahmyed ALGORITHMIQUE 2 80


Les tableaux
Exercice:
o Déclaration d'un tableau nommé T composé de cinq éléments entier :

Tableau T [ 5 ] : entier

Le tableau est représenté schématiquement dans la mémoire comme


suit :

Pr. Redouan Lahmyed ALGORITHMIQUE 2 81


Les tableaux
Exercice:

o Affectation des valeurs aux éléments du tableau T :

 T [0] ← 8

 T [1] ← T [0] - 3

 T [2] ← T [1] * T [0]

 T [3] ← 20

 T [4] ← T [0] + T [1] + T [2] + T [3]

Pr. Redouan Lahmyed ALGORITHMIQUE 2 82


Les tableaux
Exercice:

o Affectation des valeurs aux éléments du tableau T :

 T [0] ← 8

 T [1] ← T [0] - 3

 T [2] ← T [1] * T [0]

 T [3] ← 20

 T [4] ← T [0] + T [1] + T [2] + T [3]

Pr. Redouan Lahmyed ALGORITHMIQUE 2 83


Les tableaux
Exercice:

o Affectation des valeurs aux éléments du tableau T :

 T [0] ← 8

 T [1] ← T [0] - 3

 T [2] ← T [1] * T [0]

 T [3] ← 20

 T [4] ← T [0] + T [1] + T [2] + T [3]

Pr. Redouan Lahmyed ALGORITHMIQUE 2 84


Les tableaux
Exercice:

o Affectation des valeurs aux éléments du tableau T :

 T [0] ← 8

 T [1] ← T [0] - 3

 T [2] ← T [1] * T [0]

 T [3] ← 20

 T [4] ← T [0] + T [1] + T [2] + T [3]

Pr. Redouan Lahmyed ALGORITHMIQUE 2 85


Les tableaux
Exercice:

o Affectation des valeurs aux éléments du tableau T :

 T [0] ← 8

 T [1] ← T [0] - 3

 T [2] ← T [1] * T [0]

 T [3] ← 20

 T [4] ← T [0] + T [1] + T [2] + T [3]

Pr. Redouan Lahmyed ALGORITHMIQUE 2 86


Les tableaux
Exercice:

o Affectation des valeurs aux éléments du tableau T :

 T [0] ← 8

 T [1] ← T [0] - 3

 T [2] ← T [1] * T [0]

 T [3] ← 20

 T [4] ← T [0] + T [1] + T [2] + T [3]

Pr. Redouan Lahmyed ALGORITHMIQUE 2 87


Les tableaux
Remplir un Tableau

 Syntaxe lecture Lire (Nom_Tab [indice])


Exemple:
o Remplissage de tous les éléments du tableau T avec l'instruction "Lire"

Lire ( T [ 0 ] ) Pour i = 0 à 4 Pas de 1


Lire ( T [ 1 ] )
Lire ( T [ 2 ] ) Lire ( T [ i ] )
Lire ( T [ 3 ] )
Lire ( T [ 4 ] ) FinPour

Pr. Redouan Lahmyed ALGORITHMIQUE 2 88


Les tableaux
Afficher un Tableau

 Syntaxe d’écriture Ecrire (Nom_Tab [indice])


Exemple:
o Affichage des valeurs de tous les éléments du tableau T

Ecrire ( T [ 0 ] ) Pour i = 0 à 4 Pas de 1


Ecrire ( T [ 1 ] )
Ecrire ( T [ 2 ] ) Ecrire ( T [ i ] )
Ecrire ( T [ 3 ] )
Ecrire ( T [ 4 ] ) FinPour

Pr. Redouan Lahmyed ALGORITHMIQUE 2 89


Les tableaux

Exercice:

Écrire un algorithme qui permet de demander à l'utilisateur de


saisir les notes des étudiants (318 étudiants), puis l'algorithme calcule
et affiche la moyenne des notes.

Pr. Redouan Lahmyed ALGORITHMIQUE 2 90


Les tableaux
Algorithme Moyenne_Notes
Variables
Tableau N [318] : Réel
M : Réel
S : Réel
i : Entier

Début
Pour i = 0 à 317 Pas de 1
Ecrire (" Donner la note de l'étudiant num “, i+1 , " : ")
Lire (N [ i ])

FinPour
S <- 0
Pour i = 0 à 317 Pas de 1

S <- S + N [ i ]

FinPour
M <- S / 318
Ecrire (" La moyenne est : “, M)
Fin

Pr. Redouan Lahmyed ALGORITHMIQUE 2 91


Les tableaux: Les tableaux dynamiques

Pr. Redouan Lahmyed ALGORITHMIQUE 2 92


Les tableaux: Les tableaux dynamiques

 L’utilisation d’une taille maximale peut avoir comme problèmes:


Insuffisance de l’espace mémoire réservé
Gaspillage d’espace mémoire (des cases réservées sans
être utilisées)
 Les tableaux dynamiques sont utilisés lorsqu’on ne connaît pas à
l’avance la taille :

Syntaxe: Tableau Nom_Tab[ ] : type

Pr. Redouan Lahmyed ALGORITHMIQUE 2 93


Les tableaux: Les tableaux dynamiques

déclaration d’un tableau dynamique


Tableau Notes[] : Réel
Variables nb : Entier
Début
Ecrire("Combien y a-t-il de notes à saisir ? ")
Lire(nb)
Redim Notes[nb] redimensionnement
… de la taille du
Fin tableau Notes à nb
éléments

Pr. Redouan Lahmyed ALGORITHMIQUE 2 94


Les tableaux à deux dimensions

Exercice:

Ecrire un algorithme qui permet de:


1. Remplir un tableau de N entiers.
2. Afficher le tableau.
3. Compter et éliminer les zéros à partir du tableau.

Pr. Redouan Lahmyed ALGORITHMIQUE 2 95


Les tableaux à deux dimensions

Tableaux

Déclarer un Accéder à un Afficher les Remplir un


Tableau Élément Éléments Tableau

Pr. Redouan Lahmyed ALGORITHMIQUE 2 96


Les tableaux à deux dimensions
Déclaration d'un Tableau

Syntaxe: Tableau Nom_Tab[Lignes] [Colonnes] : type

Pr. Redouan Lahmyed ALGORITHMIQUE 2 97


Les tableaux à deux dimensions

Exemple: Déclaration du tableau notes Tableau Notes [ 5 ] [ 3 ]

Pr. Redouan Lahmyed ALGORITHMIQUE 2 98


Les tableaux à deux dimensions

Exemple: Déclaration du tableau notes Tableau Notes [ 5 ] [ 3 ]

Pr. Redouan Lahmyed ALGORITHMIQUE 2 99


Les tableaux à deux dimensions
Accéder aux éléments d'un Tableau
 Syntaxe d'affectation Nom_Tab [num_lig] [num_col] ← Valeur

Pr. Redouan Lahmyed ALGORITHMIQUE 2 100


Les tableaux à deux dimensions
Accéder aux éléments d'un Tableau
 Syntaxe d'affectation Nom_Tab [num_lig] [num_col] ← Valeur

Exemple: Affectation de la note 15 à l'étudiant


num 5 dans la matière num 2

Pr. Redouan Lahmyed ALGORITHMIQUE 2 101


Les tableaux à deux dimensions
Accéder aux éléments d'un Tableau
 Syntaxe d'affectation Nom_Tab [num_lig] [num_col] ← Valeur

Exemple: Affectation de la note 15 à l'étudiant


num 5 dans la matière num 2

Notes [4] [1] ← 15

Pr. Redouan Lahmyed ALGORITHMIQUE 2 102


Les tableaux à deux dimensions
Accéder aux éléments d'un Tableau
 Syntaxe lecture Lire (Nom_Tab [num_lig] [num_col])

Pr. Redouan Lahmyed ALGORITHMIQUE 2 103


Les tableaux à deux dimensions
Accéder aux éléments d'un Tableau
 Syntaxe lecture Lire (Nom_Tab [num_lig] [num_col])

Exemple: Utilisation de la lecture pour saisir la note


de l'étudiant num 1 dans la matière num 1

Pr. Redouan Lahmyed ALGORITHMIQUE 2 104


Les tableaux à deux dimensions
Accéder aux éléments d'un Tableau
 Syntaxe lecture Lire (Nom_Tab [num_lig] [num_col])

Exemple: Utilisation de la lecture pour saisir la note


de l'étudiant num 1 dans la matière num 1

Lire (Notes [0] [0] )

Pr. Redouan Lahmyed ALGORITHMIQUE 2 105


Les tableaux à deux dimensions
Accéder aux éléments d'un Tableau
 Syntaxe écriture Ecrire (Nom_Tab [num_lig] [num_col])

Pr. Redouan Lahmyed ALGORITHMIQUE 2 106


Les tableaux à deux dimensions
Accéder aux éléments d'un Tableau
 Syntaxe écriture Ecrire (Nom_Tab [num_lig] [num_col])

Exemple: Affichage de la note du premier étudiant


de la liste obtenue en troisième matière

Pr. Redouan Lahmyed ALGORITHMIQUE 2 107


Les tableaux à deux dimensions
Accéder aux éléments d'un Tableau
 Syntaxe écriture Ecrire (Nom_Tab [num_lig] [num_col])

Exemple: Affichage de la note du premier étudiant


de la liste obtenue en troisième matière

Ecrire (Notes [0] [2] )

Pr. Redouan Lahmyed ALGORITHMIQUE 2 108


Les tableaux à deux dimensions
Remplir tous les éléments

Pour i = 0 à nb_Lignes - 1 Pas de 1

Pour j = 0 à nb_Colonnes - 1 Pas de 1

Lire ( T [ i ] [ j ] )

FinPour

FinPour

Pr. Redouan Lahmyed ALGORITHMIQUE 2 109


Les tableaux à deux dimensions
Afficher tous les éléments

Pour i = 0 à nb_Lignes - 1 Pas de 1

Pour j = 0 à nb_Colonnes - 1 Pas de 1

Ecrire ( T [ i ] [ j ] )

FinPour

FinPour

Pr. Redouan Lahmyed ALGORITHMIQUE 2 110


Les tableaux à deux dimensions

Exercice:

Écrire un algorithm qui permet de demander à l'utilisateur de saisir


les notes des étudiants ( 5 étudiants ) dans chaque matière
( 3 matières), puis l'algorithme calcule et affiche la moyenne de chaque
étudiant.

Pr. Redouan Lahmyed ALGORITHMIQUE 2 111


INTRODUCTION À L'ALGORITHMIQUE –2
SMI-3

A.U: 2022 – 2023

DÉPARTEMENT INFORMATIQUE

Pr. Redouan Lahmyed ALGORITHMIQUE 2 1

Vous aimerez peut-être aussi