Vous êtes sur la page 1sur 78

1er année CP

Algorithmique 3
Introduction

Structure d’un algorithme

Les organigramme

Les structures de contrôle

Les structures répétitives


Dr . Laouedj
Abdesselem
Introduction

Qu’est ce qu’ un algorithme


L'algorithme une suite organisée d’opérations élémentaires pour l’obtention
d’une solution à un problème posé.

Apprendre à écrire des programmes.


Introduction

Notion d’algorithme
Problèmes :

 Addition de deux nombres


 Calcul de la factorielle d’un nombre
 Dessiner la courbe d’une fonction
 Calculer la moyenne des notes des étudiants
Introduction

Notion d’algorithme
Exécution d’un algorithme :

 L’exécution se fait en séquence : exécuter la première instruction, puis la


deuxième puis la troisième, …
Introduction

Analyse d’un problème


Les étapes d’analyse :

 Comprendre le problème.
 Dégager les données en entrée.
 Dégager les données en sortie.
 Formaliser la solution trouvée par un algorithme.
Introduction

Analyse d’un problème


Exemple d’algorithme : Addition de deux nombres A et B.

Langage naturel
 Introduire le premier nombre A
 Introduire le deuxième nombre B
 Faire l’addition A+B et mettre le résultat dans C
 Afficher C
Introduction

Analyse d’un problème


Une opération dans un algorithme est équivalente à une action sur un objet.

Dans l’algorithme précédent :


 Actions : Introduire, faire l’addition, mettre le résultat dans, Afficher.
 Objets : les nombres A, B, C.
Introduction

Les objets dans un algorithme


Un objet possède trois caractéristiques : le nom, le type et la valeur

 Le nom (identificateur) de l’objet sert à le désigner dans l’algorithme. Il


peut être alphanumérique et doit commencer par une lettre.
 Le type de l’objet caractérise l’ensemble des valeurs permises pour cet objet
et les opérations qui lui sont autorisées.
 La valeur est le contenu de l’objet. Cette valeur peut changer pendant
l’exécution de l’algorithme (si l’objet est une variable) ou non (si l’objet est
une constante).
Introduction

Les valeurs des objets dans un algorithme


Les valeurs des objets possèdent deux catégories :

 Les constantes : une constante est un objet qui a un nom fixe, un type fixe,
et une valeur fixe.

 Les variables : une variable est un objet qui a un nom fixe, un type fixe, et
une valeur variable.
Introduction

Les valeurs des objets dans un algorithme


Une variable peut être vue comme une place dans la mémoire centrale de
l’ordinateur portant un nom.

Nom Type Valeur


Constante Fixe Fixe Fixe
variables Fixe Fixe Variable
Structure d’un algorithme

Formalisme d'un algorithme


Un algorithme est exprimé dans un langage proche du langage naturel et
constitué d’une série de conventions, appelé pseudo-code (ou langage
algorithmique).

Ce langage permet de décrire de manière complète et


claire les objets manipulés par l’algorithme ainsi que
l’ensemble des actions à exécuter sur ces objets.
Structure d’un algorithme

Formalisme d'un algorithme


Le format d’un algorithme est comme suit :

Algorithme < nom-de-l’algorithme >


< Déclaration des constantes est des variables >
Début
< Action 1 >

Fin
Structure d’un algorithme

Formalisme d'un algorithme


Déclaration des constantes :
Constante
<Nom-de-constante1> = <valeur1>
<Nom-de-constante2> = <valeur2>

Déclaration des variables :


Variable
<Nom-de-variable1> : <Type1>
<Nom-de-variable2> : <Type2>
Structure d’un algorithme

Formalisme d'un algorithme


Exemple :

Algorithme addition
Constante
pi = 3.14
Variable
A : réel
B5 : entier
Structure d’un algorithme

Les actions élémentaires


L’affectation : C’est l’action par laquelle nous pouvons attribuer à une
variable V une valeur résultante de l’évaluation d’une expression E. Le type de
l’expression doit être compatible avec le type de la variable V.
Cette action est notée par : V ← E
Ce qui signifie évaluer E et ranger le résultat dans la zone mémoire appelée V.

Exemple : C’est la troisième action de l’algorithme d’addition


C ← A+B
Structure d’un algorithme

Les actions élémentaires


La lecture : C’est l’action par laquelle nous pouvons introduire des données en
utilisant le clavier. Elle est notée par :
Lire (x)
Ce qui signifie mettre dans la zone mémoire x la donnée tapée sur le clavier.

Exemple : C’est la première et deuxième action de l’algorithme d’addition


Lire (A)
Lire (B)
Structure d’un algorithme

Les actions élémentaires


L’écriture : C’est l’action par laquelle nous pouvons communiquer un résultat
ou un message à l’utilisateur par l’intermédiaire de l’écran. Elle est notée par :
Écrire (E)
Ce qui signifie évaluer l’expression E et afficher le résultat.

Exemple : C’est la quatrième action de l’algorithme d’addition


Écrire (C)
Structure d’un algorithme

Les actions élémentaires


Exemple d’algorithme : Addition de deux nombres A et B.
Algorithme addition
Langage naturel Variable
 Introduire le premier nombre A A, B, C : entier
 Introduire le deuxième nombre B Début
 Faire l’addition A+B et mettre le résultat dans C Lire (A)
Lire (B)
 Afficher C
C←A+B
Écrire (C)
Fin
Structure d’un algorithme

Les types élémentaires

 Les types élémentaires sont des types simples à valeur unique.


 On distingue les types : entier, réel, booléen, caractère et chaîne.
 Un type désigne l’ensemble des valeurs permises pour un objet, et
l’ensemble des opérateurs autorisés sur les objets de ce type.
Structure d’un algorithme

Les types élémentaires

Le type entier :
 Désigne les nombres entiers. (ex: 2, +2, -30)

Opérateurs du type entier :


 Les opérateurs arithmétiques : +, -, *, /
 L’opérateur modulo noté : mod (qui veut dire reste de la division)
 Les opérateurs de relation : <, <=, >, >=, =, ≠.
Structure d’un algorithme

Les types élémentaires

Le type réel :
 Désigne les nombres réels. (ex: 2.5, +12.55, 2E5)

Opérateurs du type réel :


 Les opérateurs arithmétiques : +, -, *, /
 Les opérateurs de relation : <, <=, >, >=, =, ≠
Structure d’un algorithme

Les types élémentaires

Le type booléen (logique) :


 Une variable de ce type peut contenir une des valeurs logiques vrai ou faux.
Exemple :
Opérateurs du type booléen :
Algorithme addition
 Les opérateur logique: et, ou, non. Constante
V = vrai
Variable
test : booléen
Structure d’un algorithme

Les types élémentaires

Le type caractère :
 Désigne l’ensemble des lettres alphabétiques majuscules et minuscules, les
chiffres, les caractères spéciaux (ex: ‘?’, ‘!’, ‘)’, ‘*’,…) et le caractère espace.

Opérateurs du type caractère :


 Les opérateurs de relation : <, <=, >, >=, =, ≠, car les caractères sont
ordonnés dans la table du code ASCII.
Structure d’un algorithme

Les types élémentaires


Le type chaîne de caractère :
 Désigne l’ensemble des chaînes de caractères que nous pouvons former en
regroupant des caractères. (ex: ‘nuit’, ‘Couleur’)

Opérateurs du type chaîne :


 Les opérateurs de relation : =, ≠
 La fonction longueur qui fournit la longueur d’une chaîne.
Exemple: longueur ("nuit") = 4.
Structure d’un algorithme

Les expressions
Il y a deux sortes d’expressions : les expressions arithmétiques et les
expressions logiques.

L’évaluation d’une expression repose sur les règles de priorité entre opérateurs
(il faut noter que ces règles de priorité diffèrent selon le langage de
programmation utilisé).
Structure d’un algorithme

Les expressions
La liste des opérateurs : du plus prioritaire au moins prioritaire
 Opérateurs arithmétiques : *, /
 Opérateurs arithmétiques : +, -
 Opérateurs de relation : <, ≤, >, ≥, =, ≠
 L’opérateur logique : non
 L’opérateur logique : et
 L’opérateur logique : ou
Structure d’un algorithme

Les expressions
Remarques :
 Pour les opérateurs de même priorité l’expression est évaluée de gauche à
droite.
 S’il y a des parenthèses on commence par évaluer les plus internes.
 Pour déterminer le type d’une expression il faut vérifier sa syntaxe (la façon
d’écriture).
Structure d’un algorithme

Les commentaires dans les algorithmes


Pour la lisibilité de l'algorithme on peut insérer des commentaires à n'importe
quel endroit de l'algorithme.

Syntaxe :
 // Mettre les commentaires ici en une seule ligne
 { Mettre les commentaires ici en multi-lignes }
Structure d’un algorithme

Trace d’un algorithme


Exemple : Donner la trace de l'algorithme suivant : pour A = 7 et B = 21
Algorithme addition
Variable
A, B, X : réel
Début Action A B X Affichage
Lire (A) Lire (A) 7
Lire (B)
Lire (B) 21
X ←-B /A
Écrire (X) X ← -B /A -3 -3
Fin
Les structures de contrôle
Introduction
Une structure de contrôle est une action qui permet d'exécuter un ensemble
d'actions lorsque une condition spécifique est vérifiée.

Il existe deux types de structure de contrôle :


 Actions conditionnelles
 Actions répétitives
Les structures de contrôle
Actions conditionnelles
Une action conditionnelle est une action qui ne s'exécute que lorsqu'une
condition est vérifiée.

Syntaxe :
Si conditions alors
L'action ou les actions <actions> s'exécutent
actions; lorsque la condition <conditions> est vraie.
FinSi Rien ne s'exécute lorsque la condition <conditions>
est fausse.
Les structures de contrôle
Actions conditionnelles
Exemple 1 :
On veut calculer la moyenne générale d’un étudiant connaissant son nom et
prénom et ses 2 notes : Contrôle continue et EMD.

Lorsque l’étudiant ai une moyenne supérieure ou égale à 10, on affiche le


message supplémentaire suivant : L’étudiant est admis.
Les structures de contrôle
Actions conditionnelles
Algorithme exemple1
Variable
CC, EMD, Moyenne : réel
Début
Lire (CC)
Lire (EMD)
Moyenne ← (CC+EMD)/2
Écrire ("La moyenne est : ", Moyenne)
Si moyenne >= 10 alors
Écrire (" Étudiant admis ")
Finsi
Fin
Les structures de contrôle
Action conditionnelle alternée
Une action conditionnelle alternée est une action qui exécute l'action1 lorsque la
condition est vraie et exécute l'action2 dans le cas contraire.

Notation :
Si conditions alors
actions1; L'action <actions1> s'exécute lorsque la condition
Sinon <condition> est vraie.
actions2; L'action <actions2> s'exécute lorsque la condition
<conditions> est fausse.
FinSi
Les structures de contrôle
Actions conditionnelles alternée
Exemple 2 :
On veut calculer la moyenne générale d’un étudiant connaissant son nom et
prénom et ses 2 notes : Contrôle continue et EMD.

Vérifier si l’étudiant est admis ou non.


Les structures de contrôle
Actions conditionnelles alternée
Algorithme exemple2
Variable
CC, EMD, Moyenne : réel
Début
Lire (CC , EMD)
Moyenne ← (CC+EMD)/2
Écrire ("La moyenne est : ", Moyenne)
Si moyenne >= 10 alors
Écrire (" Étudiant admis ")
Sinon
Écrire (" Étudiant non admis ")
Finsi
Fin
Les structures de contrôle
Action conditionnelle imbriquée
On peut combiner les deux types d'action conditionnelle de manière séparée ou imbriquée.
Notation :
Si conditions1 alors
actions1;
Si conditions2 alors
actions2;
Remarque : Parfois la condition n’est pas simple, elle
Sinon
s’appelle alors expression logique composée. Une
Si conditions3 alors
expression logique composée est une combinaison de
actions3;
plusieurs opérations de comparaison utilisant les opérateurs
FinSi
logique de base qui sont la négation (non), l’union (Ou) et
Fsi
l’intersection (et).
Fsi
Les structures de contrôle
Actions conditionnelles imbriquée
Exemple 3 :
Écrire un algorithme qui demande deux nombres distincts à l’utilisateur et qui
affiche le plus petit des 2 nombres.

Remarque : Si les deux nombres sont


égaux, on affiche un message d’erreur.
Les structures de contrôle
Actions conditionnelles imbriquée
Algorithme exemple3
Variable
nombre1, nombre2 : réel
Début
Écrire ("Veuillez donner deux nombres distincts : ")
Lire (nombre1, nombre2)
Si nombre1 == nombre2 alors
Écrire (" Erreur ! Les deux nombres sont égaux")
Sinon
Si nombre1 < nombre2 alors
Écrire (" Le plus petit des deux nombres est : " , nombre1 )
Sinon
Écrire (" Le plus petit des deux nombres est : " , nombre2 )
Finsi
Finsi
Fin
Structure à choix multiples
Structure à choix multiples
L’instruction case permet de faire un choix parmi plusieurs possibilités, suivant la valeur
d’une expression de choix appelée sélecteur. Cette expression doit être de type ordinal
Structure à choix multiples
Structure SELON
La structure SELON permet d'effectuer tel ou tel traitement en fonction de la valeur du
sélecteur (variable ou donnée) .

Syntaxe : Explication :
Selon sélecteur faire  Si le sélecteur vaut valeur1, alors on exécute le
valeur 1 : <Traitement1> traitement1 et on quitte la structure Selon.
valeur 2 : <Traitement2>
 Si le sélecteur et différent de valeur1, on évalue la
……
valeur2 ... et ainsi de suite.
valeur N : <Traitement N>
Sinon  Si aucune n'est vraie on effectue l'action sinon
<Traitement R>  (au cas où l'action sinon n'existe pas alors aucune
Fin selon action n'est exécutée !).
Structure à choix multiples
Structure SELON
Exemple 4 :
Écrire un algorithme qui à partir d’un nombre
compris entre 1 et 7 affiche le jour correspondant ?
Structure à choix multiples
Structure SELON
Algorithme jours_semaine
Var jour : réel
Début
Écrire (" Saisir une valeur : ")
Lire (jour)
SELON jour faire
1 : Écrire ("Lundi")
2 : Écrire ("Mardi")
3 : Écrire ("Mercredi")
4 : Écrire ("Jeudi")
5 : Écrire ("Vendredi")
6 : Écrire ("Samedi")
7 : Écrire ("Dimanche")
Sinon : Écrire ("Jour invalide")
Fin SELON
Fin
Structure à choix multiples
Structure SELONQUE
La structure SELONQUE permet d'effectuer tel ou tel traitement en fonction de la valeur
des conditions 1 ou 2 ou ... n.

Syntaxe : Explication :
SELONQUE  Si la condition 1 est vraie, alors on exécute l'action
<condition 1> : <action 1> correspondante et on quitte la structure selon-que
<condition 2> : <action 2>  Si la condition 1 est fausse, on évalue la condition 2 ...
... et ainsi de suite.
<condition n> : <action n>  Si aucune n'est vraie on effectue l'action sinon ( au cas
Sinon : <action_sinon> où l'action sinon n'existe pas alors aucune action n'est
Fin SELONQUE exécutée !).
Structure à choix multiples
Structure SELONQUE
Exemple 5 :
Écrire un algorithme qui à partir d’une note affiche la mention correspondant ?
Structure à choix multiples
Structure SELONQUE
Algorithme mention
Var note : réel
Début
Écrire (" Saisir une note : ")
Lire (note )
SELONQUE
note <10 : Écrire ("Non admin")
note <12 : Écrire ("passable")
note <14 : Écrire ("assez bien")
note <16 : Écrire ("Bien")
note <18 : Écrire ("très bien")
note <=20 : Écrire ("Excellent")
SINON : Écrire ("Note invalide")
Fin SELONQUE
Fin
Les structures répétitives

Les boucles
On appelle boucle ou structure itérative tout ensemble d’instructions qui peut être
exécuté plusieurs fois.

On peut considérer deux cas pour les boucles.


 Le nombre de répétitions n’est pas connu ou est variable, il existe deux
structures pour ce cas : la structure « Répéter … jusqu’à » et la structure
« Tant que … faire ».
 Le nombre de répétitions est connu, la structure utilisée est « Pour ».
Les structures répétitives
La boucle « Répéter … jusqu’à »
Dans cette structure, le traitement est exécuté une première fois puis sa répétition se
poursuit jusqu’à ce que la condition soit vérifiée.

Syntaxe :
Explication :
Répéter  L’action dans cette boucle est toujours exécutée au
Actions moins une fois.
jusqu’à condition  Les instructions encadrées par les mots répéter et
jusqu’à constitue le bloc de la boucle qu’il faut répéter
jusqu’à ce que la condition soit vérifiée.
Les structures répétitives
La boucle « Répéter … jusqu’à »
Exemple 6 :
Écrire un algorithme qui définit un mot secret, et après il lit jusqu'à ce que
l'utilisateur trouve ce mot.
Les structures répétitives
La boucle « Répéter … jusqu’à »
Algorithme secret
Var MotDePasse, Saisie : chaîne de caractère
Début
MotDePasse = "secret"
Répéter
Écrire (" Saisir un mot de passe : ")
Lire (Saisie)
jusqu’à Saisie = MotDePasse
Fin
Les structures répétitives
La boucle « Tant que … faire »
Dans cette structure, on commence par tester une condition, si elle est vérifiée, le
traitement est exécuté.

Syntaxe :
Explication :
Tant que condition faire  L’action dans cette boucle peut ne jamais être exécutée.
Actions  Les
Fin Tant que
Les structures répétitives
La boucle « Tant que … faire »
Exemple 7 :
Écrire un algorithme qui demande son
prénom à l’utilisateur tant qu’il ne donnera
pas une réponse non vide
Les structures répétitives
La boucle « Tant que … faire »
Algorithme prénom
Var Prenom : chaîne de caractère
Début
Prenom = " "
Répéter TANT QUE Prenom = " " FAIRE
Écrire (" Votre prénom ? ")
Lire (Prenom )
FINTANTQUE
Fin
Les structures répétitives
La boucle « Pour »
Cette structure est utilisée lorsqu’on sait exactement combien de fois on doit répéter un
traitement. Donc, la boucle s’arrête si le nombre souhaité d’itérations est atteint.

Syntaxe :

Pour variable de début à fin pas n


Remarque :
Actions
 Si on ne précise pas la valeur du « pas » dans la
Fin Pour boucle « pour » ; celle-ci fonctionne par défaut avec
un pas de 1.
Les structures répétitives
La boucle « Pour »
Cette structure utilise une variable (indice) de contrôle d’itérations caractérisée par :

 Sa valeur initiale,
 Sa valeur finale,
 Son pas de variation.
 Si la valeur initiale de l’indice est inférieure à sa valeur
finale le pas de variation est positif et la structure est dite
« croissante ».
 Dans le cas contraire, le pas est négatif et la structure est
dite « décroissante ».
Les structures répétitives
La boucle « Pour »
Exemple 8 :
Écrire un algorithme qui
compte jusqu’à 100.
Les structures répétitives
La boucle « Pour »
Algorithme compte
Variable
n , p : entier
Début
Pour i de 1 à 100 /* équivalent à : pour i de 1 à 100 pas 1 */
Écrire (i)
Fin Pour
Fin
Les structures répétitives
La boucle imbriquées
On parle de boucles imbriquées lorsqu’une boucle contient elle-même une autre boucle.
Les deux boucles peuvent être les mêmes ou différentes.

Syntaxe :
Pour variable1 de début à fin pas m
Actions1 Remarque :
Pour variable2 de début à fin pas n  Des boucles peuvent être successives
Actions2 ou imbriquées, mais elles ne peuvent
Fin Pour jamais être croisées.
Fin Pour
Les structures répétitives
La boucle imbriquées
Organigramme

Introduction
Un organigramme (ou algorigramme, lorsqu'il est plus particulièrement
appliqué à l'algorithmique) est une représentation graphique normalisée, utilisée
pour analyser ou décoder un problème.
Organigramme
Symboles
Il est clair, mais peu adapté aux systèmes complexes.

Un algorigramme considéré comme bon a les caractéristiques suivantes :


 Il comporte des liaisons fléchées
 Il est fermé
 Il comporte un début et une fin
Organigramme

Symboles
Début, fin, interruption
Le cas de l'interruption ne sera pas vu au sein de ce cours.
Organigramme

Symboles
Traitement
Opération ou groupe d'opérations sur des données, etc.
Organigramme

Symboles
Entrée / Sortie
Mise à disposition d'une information à traiter ou enregistrement d'une
information traitée. Pour simplifier la première approche, nous considérerons
dans un premier temps que cet élément est utilisé lors d'une entrée ou sortie du
système étudié. Par exemple, un capteur fait partie du système, mais la
grandeur captée en est extérieure.
Organigramme

Symboles
Sous-programme
Portion de programme considérée comme une simple opération.
Organigramme

Symboles
Embranchement (choix)
Test, question qui implique un choix.

Le sens général de lecture est de haut en bas, et de gauche à droite.


Si ce n'est pas le cas, on flèche la liaison.
Organigramme

Relation entre algorigramme et pseudo-code

Un algorigramme est utilisé à dessein de programmer un système.


C'est en effet une phase qui permet de décrire un comportement, et d'envisager
les réactions d'un système.
Il y a un lien direct entre un algorigramme et un programme.
Organigramme

Relation entre algorigramme et pseudo-code


Organigramme
Relation entre algorigramme et pseudo-code
Structure linéaire Elle se caractérise par une suite d'actions à exécuter
successivement, dans un ordre défini.

Début
Action A
Action B
Action C

Fin
Organigramme
Relation entre algorigramme et pseudo-code
Structure alternative (Si … alors … sinon … )
Elle propose un choix ; une condition va entraîner telle ou telle réaction du
système. Cette structure peut intégrer des portions de structures linéaires.

Si condition 1 alors
Action D
Sinon
Action E
FinSi
Organigramme
Relation entre algorigramme et pseudo-code
Structure alternative (Si … alors)
Il s'agit de la même structure que précédemment, mais la partie « SINON ... »
est omise ; il en résulte un choix non pas entre deux actions, mais entre
l'exécution d'une action ou non.

Si condition 2 alors
Action F
FinSi
Organigramme
Relation entre algorigramme et pseudo-code
Structure itérative
La structure itérative, aussi appelée structure répétitive, permet par exemple de
répéter une action jusqu'à ce qu'une condition soit validée. Elle intègre de facto
une structure alternative, et éventuellement des structures linéaires.
Organigramme
Relation entre algorigramme et pseudo-code
Structure itérative (Répéter … jusqu’à )
L'action est exécutée au moins une fois. Le nombre d'exécutions de la boucle
est inconnu et / ou variable.
Syntaxe :

Répéter
Action G
jusqu’à condition 3
Organigramme
Relation entre algorigramme et pseudo-code
Structure itérative (Tantque … Faire)
L'action n'est pas forcément exécutée. Le nombre d'exécutions de la boucle est
inconnu et / ou variable.
Syntaxe :

Tant que condition 4 faire


Action H
Fin Tant que
Organigramme
Relation entre algorigramme et pseudo-code
Structure itérative (Pour … faire )
Le nombre d'exécutions de la boucle est connu. Il peut être variable dans
certains cas particuliers qui ne seront pas vus ici.

Syntaxe :

Pour variable de valeur initiale à valeur finale pas pas


Action I
Fin Pour
Organigramme

Symboles annexes
Renvoi
Permet d'améliorer la lisibilité d'un algorigramme. Il y a
forcément un nombre pair de renvois au sein d'un
organigramme.

Commentaire
Permet d'expliciter un comportement grâce à un
commentaire.

Vous aimerez peut-être aussi