Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Chapitre IV
Initiation à l’ Algorithmique
Chapitre IV
Algorithmique
Plan du chapitre
1) Objectifs du chapitre
2) Notions de base de l’algorithmique
3) Structure d’un algorithme Cours : 3 semaines
4) Instructions de base
5) Primitives
1
07/12/2016
1. Objectifs du chapitre
Plus précisément :
• La structure d’un algorithme
• Les constantes et variables
• Les instructions de base
• Les primitives
07/12/2016 ENSB 3
Début de l’algorithme
1. Marcher tout droit jusqu’au prochain carrefour
2. Tourner à gauche au carrefour Algorithme destiné à être exécuté
3. Prendre la deuxième rue à droite par des humains
4. Le point B sera en face de vous
Fin de l’algorithme
Important : Un algorithme doit contenir uniquement des instructions compréhensibles par celui qui
devra l’exécuter.
07/12/2016 ENSB 4
2
07/12/2016
Al-Khawarizmi (783-850)
07/12/2016 ENSB 5
Traduction Compilation
Organiser les Code source
Identifier le problème : Programme
actions : écrire (langage de
données, résultats ? exécutable
l'algorithme programmation)
Objectif : Apprendre à définir des algorithmes pour qu’ils soient compréhensibles (et donc exécutables)
par un ordinateur.
R : L’algorithmique exprime les instructions indépendamment des particularités des langages de programmation
07/12/2016 ENSB 6
3
07/12/2016
Les ordinateurs, quels qu’ils soient, ne sont fondamentalement capables de comprendre que
quatre catégories d'ordres (instructions). Ces quatre familles d'instructions sont :
L’affectation de variables
Instructions de base
La lecture / écriture
Les tests
Instructions évoluées
Les boucles
Un algorithme
informatique = La combinaison de ces quatre type
briques (Instruction)
07/12/2016 ENSB 7
Déclaration
Constante Remarque :
Il est fortement
/*Déclaration des constante*/
Zone déclarative conseillé d'écrire un
Variable algorithme sur une
et une seule page
/*Déclaration des variables*/
Début
Fin.
07/12/2016 ENSB 8
4
07/12/2016
Une variable est un objet informatique qui associe un nom à une valeur qui peut éventuellement
varier au cours du temps
Variables = Contenant qui permet de contenir une donnée
Valeur 1
Etiquette … Etiquette … Etiquette
Mémoire de l’ordinateur
07/12/2016 ENSB 9
Avant de pouvoir utiliser une variable il faut la déclarer = Créer la boîte et de lui coller une étiquette.
Une variable est déclarée par son nom (identificateur ou l’étiquette) suivi de deux points ‘ : ’ puis son
type et enfin un point-virgule.
On commence par étudier seulement trois (03) types de variables : entier, réel et caractère.
Exemple :
A : entier ;
B : réel ; Déclaration de 4 Variables
C : entier;
F : caractère ;
07/12/2016 ENSB 10
5
07/12/2016
Une constante est déclarée par son nom (identificateur) égal une information (une donnée) suivie
d’un point-virgule.
Exemple :
A=4; Déclaration de 2 Constantes
Pi = 3.14 ;
07/12/2016 ENSB 11
Narration Algorithmique
07/12/2016 ENSB 12
6
07/12/2016
4. Instructions de base
4.1. Affectation
L’affectation est l’opération qui consiste à attribuer une Valeur à une variable
Le nom de la variable à modifier est placé à gauche du signe , la valeur qu’on veut lui attribuer (ou
plus généralement l’expression) est placée à droite du signe suivie du point-virgule.
07/12/2016 ENSB 13
4. Instructions de base
4.1. Affectation
Exemples :
07/12/2016 ENSB 14
7
07/12/2016
4. Instructions de base
4.1. Affectation
Exemple 1 : Exemple 2 :
Déclaration Déclaration
Variable Variable
A : Entier; A : Entier;
Y : Entier; Y : Réel; Début
Début A 13 ;
A 13 ; A 123 ;
Y (2*A)/3 ; A 46;
Fin; Fin;
L’évaluation de l’expression donne un réel La valeur de la variable A est : 46 (la dernière affecter)
et non pas 13, 123, 46 ou 13 + 123 + 46
07/12/2016 ENSB 15
4. Instructions de base
4.1. Affectation : équivalent en narration
Narration Algorithmique
07/12/2016 ENSB 16
8
07/12/2016
4. Instructions de base
4.1. La lecture
L'instruction de lecture attend que l'utilisateur entre une valeur au clavier et stocke la valeur en mémoire
dans la variable désignée en paramètres.
4. Instructions de base
4.1. La lecture : équivalent en narration
Narration Algorithmique
Lire A : Lire une valeur à partir du clavier Lire (A) ; Lire une valeur à partir du clavier
et la mettre dans l’objet A et l’affecter à la variable A
Lire A, B : Lire les valeurs des objets A et B Lire (A, B) ; : Lire deux valeurs à partir du clavier et les
à partir du clavier affecter aux variables A et B respectivement
Lire A et Lire B Lire (A), Lire (B) ;
Remarque : Remarques :
La notion de type d’objet n’existe pas en narration, • Si on fait un parallèle avec la narration, on
nous ne somme pas obliger de faire attention au type remarque l’utilisation des parenthèses et le point-
de l’information fournie virgule
• En algorithmique, le type de la valeur fournie en
entrée de lecture doit correspondre au type de la
variable entre parenthèses
07/12/2016 ENSB 18
9
07/12/2016
4. Instructions de base
4.2. L’écriture
L'instruction d'écriture permet d’afficher à l’écran le contenu de l'expression en paramètre.
Important !!!
Une expression peut être une valeur, le contenu d'une variable, le résultat d'un calcul ou un message.
Tout ce qui se trouve entre deux côtes est considéré comme un message.
Exemples :
Dans les exemples suivants nous allons utiliser les variables F,R,X,Y et Z. Ces variables doivent
être déclarés dans la section déclaration de l’algorithme.
Ecrire (F) ;
Ecrire (‘’ Le résultat est : ‘’, R) ; Ecrire à l’écran le message suivie du contenue de la variable R
Ecrire (X, Y, Z) ;
07/12/2016 ENSB 19
4. Instructions de base
4.2. L’écriture équivalent en narration
Narration Algorithmique
Ecrire A : Ecrire à l’écran la valeur de l’objet A Ecrire (A) ; Ecrire la valeur de la variable A à l’écran.
Ecrire A, B : Ecrire à l’écran la valeur des Ecrire (A, B) ; : Ecrire la valeur des variables A et B à
objets A et B l’écran.
07/12/2016 ENSB 20
10
07/12/2016
07/12/2016 ENSB 21
5. Les primitives
5.1. Primitives (ou instruction) conditionnelles
Une primitive conditionnelle est un type d’instruction un peu spécial car elle permet
d’exécuter ou non un bloc d’instructions selon le résultat d’un test
La syntaxe utilisée pour écrire une instruction conditionnelle est comme suit:
Si (Condition(s)) alors
Peut être une instruction de base (lecture, écriture, affectation)
Instruction ;
ou une primitive
Finsi
07/12/2016 ENSB 22
11
07/12/2016
5. Les primitives
5.1. Primitive (ou instruction) conditionnelle
Narration Algorithmique
Tester <Objet> par rapport à <Valeur> (Condition) SI ( Condition ) Alors
Oui Aller à <Étiquette A >
Non Aller à < Étiquette B > Instruction 1;
<Étiquette A > Instruction 1
<Étiquette B > Instruction 2 Fin si
Instruction 2;
07/12/2016 ENSB 23
5. Les primitives
5.1. Primitive (ou instruction) conditionnelle
07/12/2016 ENSB 24
12
07/12/2016
5. Les primitives
5.1. Primitive (ou instruction) conditionnelle
Conditions composées
Certains problèmes exigent parfois de formuler des conditions qui ne peuvent pas être exprimées
sous la forme simple exposée ci-dessus.
Exemple : 10 < X < 18 Solution : Divisé la condition en deux conditions (ou plus)
et les lier avec un opérateur logique
07/12/2016 ENSB 25
5. Les primitives
5.1. Primitive (ou instruction) conditionnelle
Conditions composées
07/12/2016 ENSB 26
13
07/12/2016
5. Les primitives
5.1. Primitive conditionnelle (2ème Format d’écriture)
Si (Condition(s)) alors
Début
Instruction 1 ;
Si nous avons plus d’une instruction conditionnée entre le « si »
Instruction 2 ;
et le « fin si », on utilise un bloc début fin
…
Instruction N;
Fin
Finsi
07/12/2016 ENSB 27
5. Les primitives
5.1. Primitives (ou instruction) conditionnelles
07/12/2016 ENSB 28
14
07/12/2016
5. Les primitives
5.2. Primitive alternative
Une primitive alternative est un type d’instruction qui permet d’exécuter un bloc
d’instructions si une condition est vérifiée ET un autre bloc d’instruction si la condition n’est
pas vérifiée
La syntaxe utilisée pour écrire une instruction conditionnelle est comme suit:
Si (Condition(s)) alors
Instruction 1;
Peut être une instruction de base (lecture, écriture, affectation)
Sinon
ou une primitive
Instruction 2;
Finsi
07/12/2016 ENSB 29
5. Les primitives
5.2. Primitive alternative
Si (Condition(s)) alors
Remarque :
Instruction 1;
• L’instruction 1 et l’instruction 2 ne sont jamais
Sinon
exécutées en même temps ; c’est ou bien l’une ou
Instruction 2; bien l’autre d’où le mot « alternative ».
Finsi
07/12/2016 ENSB 30
15
07/12/2016
5. Les primitives
5.2. Primitive alternative (2ème forme)
Si (Condition(s)) alors
Début
Instruction 1 ;
Instruction 2 ; Si nous avons plus d’une instruction conditionnée entre le « si »
Instruction 3; et le « Sinon », on utilise un bloc début fin
Fin
Sinon
Début
Instruction 1 ;
Instruction 2 ; Si nous avons plus d’une instruction conditionnée entre le « Sinon »
Fin et le « Finsi », on utilise un bloc début fin
Finsi
07/12/2016 ENSB 31
5. Les primitives
5.1. Primitive alternative
Exemple : Dire si un nombre est pair ou impair
Algorithme PairImpair
PairImpair
Déclaration Si (R=0) alors
Objet X, Q, R
Variable Écrire (X,’’est pair ’’);
1_ Lire X
X, Q, R : entier ; Finsi
2_ Calculer Q = X/2
Début Si (R !=0 ) alors
3_ Calculer R = X – 2*Q
Lire (X); Écrire (X,’’est impair ’’);
4_ Tester R par rapport à 0 (R = 0 ?)
Q X/2; Finsi
4-1_ Oui : Aller à 5
4-2_ Non : Aller à 7 Algorithme R X – 2*Q ;
5_ Ecrire X ‘est pair’ Si (R=0) alors
Écrire (X,’’est pair ’’); Une seule instruction dans
6_ Aller à 8 les blocs Si et Sinon : pas
7_ Ecrire X ‘est impair’ Sinon
Écrire (X,’’est impair ’’); besoin d’utiliser un bloc
8_ Arrêter début Fin
Finsi
Fin.
07/12/2016 ENSB 32
16
07/12/2016
5. Les primitives
5.1. Primitive itérative
Ces primitives sont appelées aussi structures répétitives ou encore boucles. Nous allons étudier deux
types de boucles :
La boucle Tant que
La boucle Pour
A quoi ça sert ?
Les boucles sont des structures qui permettent d'exécuter plusieurs fois la même série d'instructions
jusqu'à ce qu'une condition ne soit plus vérifiée...
07/12/2016 ENSB 33
5. Les primitives
5.1. Primitive itérative
Dans tous les cas, le schéma de fonctionnement est le même (pour toutes les boucles) :
07/12/2016 ENSB 34
17
07/12/2016
5. Les primitives
5.1. Primitive itérative
5.1.1. La boucle Tantque
Les mots clés utilisés sont : tantque, faire, fintantque
La syntaxe utilisée pour écrire une instruction Tant que est comme suit :
07/12/2016 ENSB 35
5. Les primitives
5.1. Primitive itérative
5.1.1. La boucle Pour
Les mots clés utilisés sont : pour, de, à, pas, faire, fin pour
La syntaxe utilisée pour écrire une instruction Pour est comme suit :
07/12/2016 ENSB 36
18
07/12/2016
5. Les primitives
5.1. Primitive itérative
5.1.1. La boucle Pour
07/12/2016 ENSB 37
5. Les primitives
5.1. Primitive itérative
5.1.1. La boucle Pour En quelque sorte trois opérations
Initialisation
Condition
Exemple : Équivalent de la boucle pour
Incrémentation
en boucle Tantque
Pour N de 1 à 10 pas 1 faire
07/12/2016 ENSB 38
19
07/12/2016
5. Les primitives
5.1. Primitive itérative
Si pas est égale à 1, nous pouvant ne pas le
5.1.1. La boucle Pour
mentionner --> Pour N de 1 à 10 faire
Exemple :
Pour N de 1 à 10 pas 1 faire /* Condition*/
Début
Écrire (N);
N N+1 ;
Il est strictement interdit de modifier la variable
Fin de la boucle Pour à l’intérieur de la boucle
Finpour
07/12/2016 ENSB 39
5. Les primitives
5.1. Primitive itérative
MoyenneN
Objet X, S, Co, N, M
1_ Écrire ‘Combien de nombres à lire?’
2_ Lire N
3_ Calculer S = 0
4_ Calculer Co = 0
5_ Tester Co par rapport à N (Co < N ?)
Exemple : Narration qui calcule
5-1_ Oui : Aller à 6
la moyenne de N nombres entiers
5-2_ Non : Aller à 10
6_ Lire X
7_ Calculer S = S+X
8_ Calculer Co = Co+1
9_ Aller à 5
10_ Calculer M = S/N
11 _ Écrire M
12_ Arrêter
07/12/2016 ENSB 40
20
07/12/2016
07/12/2016 ENSB 41
5. Les primitives
Algorithme MoyenneN
5.1. Primitive itérative Déclaration
Variable
X, S, Co, N : entier ;
M : réel;
Exemple : Algorithme qui calcule Début
la moyenne de N nombres entiers Lire (N);
(Avec boucle Pour) S 0;
Pour CO de 0 à N-1 Pas 1 faire
X 2 4 2 Début
Lire(X);
N 3
S S + X;
S 0 2 6 8 Fin
Co 0 1 2 3 Finpour
M S / N;
M 2,66
Écrire (M);
Fin.
07/12/2016 ENSB 42
21
07/12/2016
5. Les primitives
5.1. Primitive itérative
Attention aux boucles infinies !!!
Lorsque l’on créez une boucle, nous devons absolument nous assurer qu'elle peut
s'arrêter à un moment !
Si la condition est toujours vraie, votre programme ne s'arrêtera jamais !
Voici un exemple de boucle infinie :
N5;
Co 0 ;
Tantque ( CO < N ) faire
Debut
Lire(X);
S S+X;
Fin
Fintantque
07/12/2016 ENSB 43
Les commentaires
Les commentaires sont essentiels pour “éclairer” le code. Un commentaire est un texte qui est
ignoré par l’ordinateur lorsqu’il exécute le programme, mais qui peut être lu par le développeur
lorsqu’il lit le programme.
07/12/2016 ENSB 44
22
07/12/2016
07/12/2016 ENSB 45
23