Vous êtes sur la page 1sur 66
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 Langage Algorithmique KHALID SBAI
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
Langage Algorithmique
KHALID SBAI
Enseignant – Chercheur
Ecole Supérieure de Technologie
Département de Génie Electrique
Université Moulay Ismaïl
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 I. NOTION D’ALGORITHME I.1
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
I. NOTION D’ALGORITHME
I.1 Définition
Un algorithme est
* une suite finie de raisonnements (d'opérations
ou d’instructions)
* à appliquer dans un ordre déterminé
* à un nombre fini de données
* pour arriver à un certain résultat (solution du
problème) et cela indépendamment des données.
L’algorithmique
exprime
donc
les
instructions
permettant
de
résoudre
un
problème
donné
indépendamment
des
particularités
de
tel
ou
tel
langage
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 I.2 Qu’est ce que
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
I.2 Qu’est ce que veut dire "écrire un algorithme "
Comprendre et Analyser le problème : étude des données
fournies et des résultats attendus.
Résoudre le problème: C’est trouver une méthode
adaptée ainsi que l’enchaînement des actions à réaliser
pour passer des données aux résultats;
ENTREE
Sortie
Données d’entrée connues
avant exécution et sur
lesquelles l’algorithme est
appliqué.
Données de sortie produites
par l’algorithme et qui sont
en relation spécifiée avec les
données d’entrées.
méthode de résolution de problème
énoncée sous la forme d'une série
d'opérations à effectuer.
Algorithme
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 I.3 Objectifs Description des
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
I.3 Objectifs
Description des étapes à suivre pour réaliser un travail.
Il permet d'expliciter clairement les idées de la solution d'un
problème indépendamment d'un langage de programmation.
L'utilisateur d'un algorithme n'aura qu'à suivre toutes les
instructions, dans l'ordre pour arriver au résultat que doit
donner l'algorithme.
Remarque:
Le "langage algorithmique" que nous utilisons est un
compromis entre un langage naturel et un langage de
programmation.
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 I.4 Propriétés L’algorithme doit
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
I.4 Propriétés
L’algorithme doit tenir compte de tous les cas possibles:
Il traite le cas général et les cas particuliers (possibles).
Il contient toujours un nombre fini d’actions.
L’ordre des actions est important (exécution séquentielle).
Chaque action doit être définie avec précision: sans aucune difficulté.
Certaines actions peuvent être raffinées (décomposées).
L’algorithme n’est pas nécessairement unique.
Il doit produire le résultat désiré.
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 II. ETAPES DE CONSTRUCTION
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
II. ETAPES DE CONSTRUCTION D’UN PROGRAMME
La mise au point d'un programme informatique se fait en plusieurs étapes :
Enoncé d’un problème
Pseudo code
Analyse
Données
résultats
Formulation de l’Algorithme
Langage de
programmation
(code)
Suite des opérations à effectuer
pour résoudre le problème
Compilateur
Phase de Programmation
Compilation et Editions des liens
Langage
machine
Exécution par l’ordinateur
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 III. EXEMPLES D’ALGORITHME Exemple
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
III. EXEMPLES D’ALGORITHME
Exemple 1:
Calcul des racines d’un polynôme du second degré à coefficients réels:
2
ax +bx+c =0
(a,b,c)
R
1.
Saisir les valeurs de (a, b, c)
2.
On calcule =b 2 – 4ac
Si
Si
< 0 alors pas de racine dans |R.
= 0 alors racine double x= -b/2a.
Si
> 0 alors deux racine:
b
b
+
x
=
x
=
1
2
2 a
2 a
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 Exemple 2: Algorithme de
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
Exemple 2:
Algorithme de mise en marche d'une voiture :
Mettre la clé dans le démarreur
Serrer le frein à main
Mettre le levier des vitesses au point mort
Répéter les opérations suivantes
tourner la clé dans le sens des aiguilles d'une montre
attendre quelques secondes
mettre la clé dans la position "marche"
si le moteur ne tourne pas, ramener la clé dans sa position
initiale jusqu'à ce que le moteur démarre
Enclencher la première vitesse
Desserrer le frein à main
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 IV. CONVENTIONS D’ÉCRITURE Un
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
IV. CONVENTIONS D’ÉCRITURE
Un programme Algorithmique peut être écrit sous deux formes:
Pseudo-code
Représentation graphique
ressemble à un langage de
programmation authentique
dont on aurait évacué la plupart
avec des carrés, des losanges, etc.
qu’on appelle des organigrammes
des problèmes de syntaxe.
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 V. STRUCTURE D'UN ALGORITHME
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
V. STRUCTURE D'UN ALGORITHME
La structure d’un algorithme est composée d'une entête et d'un
corps.
Nom de l’algorithme
Entête
Déclarations des variables
Déclarations des constantes
Début
*commentaires*
Corps
Instruction 1
Instruction n
Fin
Délimité par
Début et Fin
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 VI. ACTIONS DE BASE
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
VI. ACTIONS DE BASE DANS UN ALGORITHME
VI.1 Notions connues par l’ordinateur
A. Les variables
Dans un programme informatique, on va avoir en
permanence besoin de stocker provisoirement des
valeurs de types différents: d’où utilisation de variables
Une variable est une entité qui contient une information, elle possède
un nom, on parle aussi d’identifiant ou identificateur
une valeur
un type qui caractérise l’ensemble des valeurs que peut
prendre la variable
L’ensemble des variables est stocké dans la mémoire de l’ordinateur
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 A. Les variables (suite)
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
A. Les variables (suite)
Type de variable
entier pour manipuler des entiers
réel pour manipuler des nombres réels
booléen pour manipuler des valeurs booléennes
caractère pour manipuler des caractères alphabétiques
et numériques
chaîne pour manipuler des chaînes de caractères
permettant de représenter des mots ou des phrases.
Permet de préciser 3 caractéristiques principales:
l’ensemble de valeur que peut prendre la variable.
la taille mémoire réservée à la variable.
les différents operateurs qui peuvent agir sur les
données de ces variables.
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 A. Les variables (suite)
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
A. Les variables (suite)
Type de variable
Syntaxe de déclaration:
Variables
Type_de_variable Nom_variable
Remarque:
Un nom de variable correct commence impérativement
par une lettre.
Comporte des lettres et des chiffres, mais qui exclut
la plupart des signes de ponctuation, en particulier
les espaces.
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 A. Les variables (suite)
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
A. Les variables (suite)
Une variable peut être :
Donnée :
Variable nécessaire pour faire fonctionner un
algorithme.
Exemple : PI =3.14
,
a=1.2
Résultat :
Résultat d'un calcul:
c = PI+a
Auxiliaire :
Sert à stocker des informations temporaires, à
faire des calculs ou à faire fonctionner des
structures de contrôle.
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 B. Opérateur, opérande et
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
B. Opérateur, opérande et expression
A un type donné, correspond un ensemble d'opérations définies
pour ce type.
Un opérateur est un symbole d’opération qui permet d’agir sur
des variables ou de faire des "calculs"
Une opérande est une entité (variable, constante ou expression)
utilisée par un opérateur
Une expression est une combinaison d’opérateur(s) et d’opérande(s),
elle est évaluée durant l’exécution de l’algorithme, et possède une
valeur et un type
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 B. Opérateur, opérande et
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
B. Opérateur, opérande et expression (Suite)
Exemple
a l’opérande gauche
b est l’opérande droite
C= a
+
b
+ est l’opérateur
a + b est une expression
Si par exemple a vaut 2 et b vaut 3, l’expression a + b vaut 5
Si par exemple a vaut 2.5 et b vaut 3.14 , l’expression a + b
est un réel.
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 B.1 Les opérateurs Un
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
B.1 Les opérateurs
Un opérateur peut être unaire ou binaire :
Unaire s’il n’admet qu’une seule opérande, par exemple
l’opérateur non
Binaire s’il admet deux opérandes, par exemple l’opérateur +
Un opérateur est associé à un type de donnée et ne peut être utilisé
qu’avec des variables, des constantes, ou des expressions de ce type
Toutefois exceptionnellement dans certains cas on accepte d’utiliser
un opérateur avec deux opérandes de types différents, c’est par
exemple le cas avec les types arithmétiques (2 + 3.5)
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 B.2 Les opérateurs booléens
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
B.2 Les opérateurs booléens
Pour les booléens nous avons les opérateurs non, et, ou, ou Exclusif
Non
Et
Ou
Ou exclusif
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 B.3 Les opérateurs sur
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
B.3 Les opérateurs sur les numériques
On retrouve tout naturellement : +, -, *, /
Avec en plus pour les entiers div et mod, qui permettent respectivement
de calculer une division entière et le reste de cette division,
Exemple :
11 div 2 vaut 5
et
11 mod 2 vaut 1
Opérateur d’égalité (ou de comparaison):
C’est l’opérateur que l’on retrouve chez tous les types simples
qui permet de savoir si les deux opérandes sont égales
Il est représenté par le caractère =
Le résultat d'une expression contenant cet opérateur
est un booléen
On a aussi l’opérateur d’inégalité (différent de): ≠
Les opérateurs de comparaison:
<, ≤, >, ≥
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 B.4 Manipulation de variables
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
B.4 Manipulation de variables
On ne peut faire que deux choses avec une variable :
1. Obtenir son contenu
Cela s’effectue simplement en nommant la variable
2. Affecter un (nouveau) contenu
Cela s’effectue en utilisant l’opérateur d’affectation
représenter par le symbole ←
Syntaxe :
Nom_variable ← (expression)
Exemple :
Expression :
c ← a + b
se comprend de
la façon suivante :
On prend la valeur contenue dans la variable a
On prend la valeur contenue dans la variable b
On additionne ces deux valeurs
On met ce résultat dans la variable c
Si c avait auparavant une valeur, cette dernière est perdue !
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 B.4 Manipulation de variables
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
B.4 Manipulation de variables (suite)
Exemple
Programme exemple d’affectation
Variables
entier A
Début
A
1
Fin
Cette séquence d’instruction donne la valeur entière 1 à la variable A
Remarque
Faire attention à la concordance des types de variables
pendant l’affectation. Dans le cas où x est de type réel et n
de type entier , l’affectation x = n est valide alors que n = x
ne l’est pas.
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 C. Les entrées /
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
C. Les entrées / sorties
Un algorithme peut avoir des interactions avec l’utilisateur
Il peut afficher
Il peut saisir
une information:
une information
Sous forme du texte
Sous forme du texte
ou numérique
sous forme de chiffres
(contenu d’une variable)
Mémorisation dans
des variables
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 C. Les entrées /
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
C. Les entrées / sorties
C.1 Instruction d'écriture
L'instruction de restitution de résultats sur le périphérique
de sortie (en général l'écran) est :
Ecrire (liste d'expressions)
Cette instruction réalise simplement l'affichage des valeurs des
expressions décrites dans la liste.
Ces instructions peuvent être simplement des variables ayant des
valeurs ou même des nombres ou des commentaires écrits sous
forme de chaînes de caractères
Exemple:
Ecrire(x, y+2, ‘bonjour’)
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 C.1 Instruction d'écriture (suite)
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
C.1
Instruction d'écriture (suite)
Exemple
Ecrire ("nombre ?")
nb ← 10
Ecrire (nb)
Ecrire ("nb vaut ", nb, ".")
instruction 1 :
instruction 3 :
instruction 4 :
affichage du texte
affichage de la valeur
texte et valeur
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 C.1 Instruction d'écriture (suite)
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
C.1
Instruction d'écriture (suite)
Exemple
Programme exemple d’utilisation de Ecrire
Variables
Déb
Entier A, B
u
t
A
3
B
2*A
Ecrire (‘la valeur de A est ‘, A)
Ecrire (‘la valeur de B est ‘, B)
Fin
Un tel programme permet d’afficher sur l’écran
La valeur de A est 3
La valeur de B est 6
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 C. Les entrées /
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
C. Les entrées / sorties
C.2 Instruction de lecture
L'instruction de prise de données sur le périphérique
d'entrée (en général le clavier) est :
lire(nom_de_variable)
L'exécution de cette instruction consiste à affecter une valeur à
la variable en prenant cette valeur sur le périphérique d'entrée.
Avant l'exécution de cette instruction, la variable avait ou n'avait
pas de valeur. Après, elle a la valeur prise sur le périphérique
d'entrée.
Exemple:
Lire (x)
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 C.2 Instruction de lecture
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
C.2 Instruction de lecture
Exemple
Ecrire ("nombre ?")
Lire (nb)
Ecrire ("nb vaut ", nb, ".")
instruction 1 :
affichage du texte
instruction 2 : étape1
attente action utilisateur
instruction 2 : étape2
affecter la valeur
instruction 3 :
texte et valeur
nb ← 10
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 C.2 Instruction de lecture
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
C.2 Instruction de lecture
Exemple
Programme exemple d’utilisation de Lire
Variables
Entier A
Début
Lire (A)
A
2*A
Ecrire (‘La valeur de A est ‘, A)
Fin
Si l'utilisateur saisit la valeur 10, nous aurons alors à l'écran:
La Valeur de A est 20
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 VII. INSTRUCTIONS DE CONTROLE
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
VII. INSTRUCTIONS DE CONTROLE
Dans la programmation classique (structurée), on
distingue trois structures
La séquence
La sélection
La répétition
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 VII.1 La séquence On
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
VII.1 La séquence
On dit aussi instruction composée : c’est une suite d’instructions
(arithmétiques ou autres), délimitée par les mots clés, début et fin,
qui s’exécutent séquentiellement (c’est à dire l’une après l’autre).
Exemple
L’algorithme suivant lit deux valeurs, en fait la somme et
affiche le résultat
Programme somme de deux entiers
Variables
Entier a, b, z
Début
Ecrire(‘donner deux entiers :’)
Lire(a)
Lire(b)
z
a + b
Ecrire(‘la somme de ces deux entiers est = ‘,z)
Fin.
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 VII.2 La sélection La
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
VII.2 La sélection
La sélection en algorithmique est une instruction de
branchement permettant de décider, dans un contexte
donné, quelle sera la séquence d'instructions à exécuter.
Cette instruction peut s’écrire sous deux formes:
Forme2
Forme1
Si <condition> Alors
Si <condition> Alors
Instruction_1
Instruction
Sinon
Fsi
Instruction_2
Fsi
La partie <condition> est de type booléenne
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 VII.2 La sélection (suite)
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
VII.2 La sélection (suite)
Exemple1:
Connaissant une valeur on veut écrire un algorithme
qui affiche sa valeur absolue.
Algorithme valeur_absolue
Variables
entier valeur, valeurabs
Début
Données
Ecrire(‘donner un nombre :’)
Traitements
Lire(valeur)
si valeur ≥ 0 alors
valeurabs ← valeur
sinon
valeurabs ← -1*valeur
finsi
Résultats
Ecrire (‘valeur absolue de ‘,
valeur, ‘est = ‘, valeurabs)
fin
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 VII.2 La sélection (suite)
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
VII.2 La sélection (suite)
Exemple2
Algorithme maximum
Variables
Entier A, B, max
Connaissant deux valeurs
A et B, on veut écrire un
algorithme qui affiche la
plus grande des deux.
Début
Ecrire(‘donner deux entiers :’)
Lire(A, B)
Si A>B alors
A
max
Sinon
max
B
fsi
Ecrire(‘le plus grand des deux est :’, max)
Fin
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 VII.2 La sélection (suite)
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
VII.2 La sélection (suite)
L'instruction cas
Lorsque l’on doit comparer le contenu d’une même
variable avec plusieurs valeurs, comme par exemple :
si (a=1) alors
faire une chose
Sinon si a=2 alors
faire une autre chose
Sinon si a=4 alors
faire une autre chose
sinon
.
.
Finsi
On peut remplacer cette suite de si par l’instruction cas
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 VII.2 La sélection (suite)
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
VII.2 La sélection (suite)
L'instruction cas
Syntaxe :
cas où
v
vaut
v1 : action1
v2 : action2
. . .
vn : actionn
autre : action autre
fincas
v1,
. . .
, vn sont des constantes de type scalaire (entier, caractère … )
Action i est exécutée si v = vi (on quitte ensuite l’instruction cas)
Action autre est exécutée si quelque soit i, v ≠ vi
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 VII.3 Les itérations Il
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
VII.3 Les itérations
Il arrive souvent dans un algorithme qu'une même action soit
exécutée plusieurs fois. Cependant, dans la plus part des cas, il est
impossible de savoir à l'avance combien de fois la même
instruction doit être décrite
Pour gérer ces cas, on fait appel à des instructions en boucle
qui ont pour effet de répéter plusieurs fois une même
instruction.
Deux formes existent
Nombre de répétitions est connu
avant l'exécution de l'instruction
Nombre d'exécution des
instructions n’est pas connu
L'exécution de la liste des instructions se nomme itération.
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 VII.3 Les itérations (suite)
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
VII.3 Les itérations (suite)
A. Les répétitions inconditionnelles
Boucle Pour …
..
Faire (suite)
Cas ou le nombre de répétitions est connu à l'avance.
Le mécanisme permettant cela est la Boucle Pour.
Syntaxe:
Pour
i
VI
à
VF
faire (Par valeur croissante)
liste d'instructions
fpour
La variable i va prendre successivement toutes les valeurs entières
entre valeur initiale VI et valeur finale VF. Pour chaque valeur prise
par la variable, la liste des instructions est exécutée.
La variable utilisée pour énumérer les itérations est appelée variable
d'itération, indice d'itération ou compteur.
L'incrémentation par 1 de la variable est implicite.
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 Boucle Pour … ..
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
Boucle Pour …
..
Faire (suite)
Exemple
Calcule de la somme des entiers de 1 à n
Programme somme des entiers de 1 à n
Variables
Entier
I, S, n
Début
Ecrire(‘donner un entier positif :’)
Lire(n)
S 0
Pour
I
1
n
S + i
à
faire
S
fpour
Ecrire(S)
Fin
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 Boucle Pour … ..
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
Boucle Pour …
..
Faire (suite)
On peut avoir plusieurs POUR imbriqués
Cas permise
Cas non permise
Pour i
m1 à m2 faire
Pour i
m1 à m2 faire
Début
Début
Instruction1
Instruction1
Pour k
m3 à m4 faire
Pour k
m3 à m4 faire
Début
Début
Instruction2
Instruction3
Instruction3
Instruction4
fin
Fin
fpour_k
Fpour_i
instruction4
Instruction5
fin
fin
fpour_i
Fpour_k
Le chevauchement de deux boucles POUR est non permis
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 Boucle Pour … ..
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
Boucle Pour …
..
Faire (suite)
Autre forme de la boucle Pour :
Pour
i
VI
à
VF
faire (Par valeur décroissante)
liste d'instructions
fpour
La variable d'itération est décrémentée de 1 après chaque itération.
La décrémentation de la variable d’itération est automatique.
La variable VI ≥ VF.
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 B. Les répétitions conditionnelles
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
B. Les répétitions conditionnelles
L'utilisation de la "boucle pour" €€€€ nombre d'itérations connu.
Dans certains cas, le nombre d'itérations n’est pas connu à l’avance.
Deux possibilités :
boucle Tant que
boucle Répéter jusqu'à
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 B. Les répétitions conditionnelles
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
B. Les répétitions conditionnelles
Boucle Tant que :
Syntaxe :
Initiation
Tant Que <condition> Faire
instruction
Ft
an
t
La boucle tant que
...
faire répète l’exécution d’une action jusqu’à ce
qu’une condition soit remplie. Le test s'effectue au début de la boucle
(avant l’exécution de l’action). Tant que la condition du test est vraie,
on exécute l'instruction
Explications
instruction: représente une seule instruction ou un groupe d’instructions
<condition> : représente la condition d’arrêt, c’est une condition
logique qui doit être vraie après un nombre fini d’itérations
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 Boucle Tant que (suite)
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
Boucle Tant que (suite)
Exemple 1
Programme somme d’une série
Variables
Algorithme utilisant la
Entier
i
boucle tant que pour
Réel
S, epsilon
calculer la somme :
Début
S
0
1
S
=
i
1
2
i = 1
i
epsilon
0.0001
Tant que (1/i 2 ) ≥ epsilon Faire
début
S
S+( 1/i 2 )
i
i+1
Fin
Ftant
Ecrire(‘Somme = ‘,S)
Fin.
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 Boucle Tant que (suite)
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
Boucle Tant que (suite)
Exemple 2
Programme somme de n premiers entiers
variables
Algorithme permettant de
entier
i, S, n
calculer la somme des
Début
entiers de +1 à n
Ecrire(‘donner un entier positif :’)
Lire(n)
i
0
S
0
Tant que (i <n) faire
Début
i
i+1
S
S +i
Fin
Ftant
Ecrire(S)
Fin
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 B. Les répétitions conditionnelles
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
B. Les répétitions conditionnelles
Boucle Répéter jusqu'à
Syntaxe :
Initiation
Répéter
instruction
jusqu'à <condition>
Cette boucle est similaire à la boucle TANT QUE
...
FAIRE,
Mais ici, le test s'effectue après l'exécution de l'action
Elle est donc exécutée au moins une fois
Tant que la condition du test est fausse, on exécute l'instruction
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 Boucle Répéter jusqu'à (suite)
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
Boucle Répéter jusqu'à (suite)
Exemple 1
Programme somme d’une série
Variables
Algorithme utilisant la
Entier
i
boucle tant que pour
réel
S, epsilon
calculer la somme :
Début
S
0
1
i
1
S =
2
epsilon
0.0001
i = 1
i
répéter
début
S
S+( 1/i 2 )
i
i+1
FIN
jusqu’à ((1/i 2 ) < epsilon)
Ecrire(‘Somme = ‘,S)
Fin.
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 Boucle Répéter jusqu'à (suite)
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
Boucle Répéter jusqu'à (suite)
Exemple 2
Programme somme de n premiers entiers
variables
Algorithme permettant
Entier
i, S, n
de calculer la somme des
Début
entiers de +1 à n
Ecrire(‘donner un entier positif :’)
Lire(n)
i
0
S
0
Répéter
Début
i
i+1
S
S +i
Fin
jusqu’à (i = n)
Ecrire(S)
Fin
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 B. Les répétitions conditionnelles
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
B. Les répétitions conditionnelles
Différences entre la boucle Tant que et Répéter jusqu'à :
La séquence d'instructions est exécuter au moins une fois
dans la boucle Répéter jusqu'à, alors qu'elle peut ne pas être
exécuter dans le cas du Tant que.
La séquence d'instructions est exécuter si la condition est
vrai
pour le Tant que
fausse pour la boucle Répéter jusqu'à.
Dans les deux cas, la séquence d'instructions doit
nécessairement faire évoluer la condition, faute de quoi on
obtient une boucle infinie.
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 VIII. LES TABLEAUX Lorsque
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
VIII. LES TABLEAUX
Lorsque les données sont nombreuses et de même type, on les
regroupe dans un tableau afin d'éviter de multiplier le
nombre des variables.
Le type d'un tableau précise le type (commun) de tous les
éléments
Type
Nom_Tableau [borne_inf
..
borne_sup]
En général, nous choisirons toujours la valeur 0 pour la
borne inférieure dans le but de faciliter la traduction de
l'algorithme vers les autres langages (C, Java,
...
).
Pour un tableau de 8 entiers, on aura :
Entier tab[8]
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 VIII. LES TABLEAUX (suite)
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
VIII. LES TABLEAUX (suite)
Les tableaux à une dimension ou vecteurs
Entier tab[9]
23
100
33
-2
0
53
23
13
-23
tab[0]
tab[1]
tab[8]
Ce tableau est de longueur 9, car il contient 9 emplacements.
Chacun des huit nombres du tableau est repéré par son rang,
appelé indice.
Pour accéder à un élément du tableau, il suffit de préciser
entre crochets l'indice de la case contenant cet élément.
Pour accéder au 6ème élément (53), on écrit : Tab[5]
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 VIII. LES TABLEAUX (suite)
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
VIII. LES TABLEAUX (suite)
Les instructions de lecture, écriture et affectation s'appliquent
aux tableaux comme aux variables.
x ← Tab[0]
La variable x prend la valeur du premier élément
du tableau c'est à dire : 23
,
Tab[6] ← 43
Cette instruction a modifiée le contenu du 7 ème élément du
tableau
Les répétitions inconditionnelles (Boucle Pour) sont le moyen
le plus simple de parcourir complètement un tableau.
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 VIII. LES TABLEAUX (suite)
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
VIII. LES TABLEAUX (suite)
Exemple
Le programme suivant initialise un à un tous les
éléments d'un tableau de n éléments :
Nom initialisation d’un tableau
Variables
Entier
i
// indice d'itération
Entier
n
// taille courante du tableau
Entier tab[100]
Début
Ecrire(‘saisir le nombre d’éléments du tableau :’)
lire (n)
pour i ← 0 à n-1 faire
tab[i] ← 0
fpour
fin
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 VIII. LES TABLEAUX (suite)
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
VIII. LES TABLEAUX (suite)
Les tableaux à deux dimensions ou matrices
Lorsque les données sont nombreuses et de même nature,
mais dépendent de deux critères différents, elles sont rangées
dans un tableau à deux entrées
0
1 2
3
4
5
6
0
12
28
44
2
76
77
32
1
23
36
51
11
38
54
25
2
43
21
55
67
83
41
69
Ce tableau a 3 lignes et 7 colonnes. Les éléments du tableau
sont repérés par leur numéro de ligne et leur numéro de
colonne.
Tab[1][4] = 38
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 VIII. LES TABLEAUX (suite)
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
VIII. LES TABLEAUX (suite)
La variable T[L][C] s'appelle l'élément d'indice L et C du
tableau T.
T[0][0]
T[0][1]
T[0][2]
T[0][3]
T[0][4]
T[1][0]
T[1][1]
T[1][2]
T[1][3]
T[1][4]
T[2][0]
T[2][1]
T[2][2]
T[2][3]
T[2][4]
Tableau T à 3 lignes et 5 colonnes
Les tableaux peuvent avoir n dimensions
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 VIII. LES TABLEAUX (suite)
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
VIII. LES TABLEAUX (suite)
Le programme suivant initialise un à un tous les éléments
Exemple
d'un tableau de n lignes et m colonnes éléments :
Variables
Entier
i, j
// indices d'itérations
Entier
n, m
// nombre de lignes et de colonnes du tableau
Entier tab[50][50]
Début
Ecrire(‘saisir le nombre de lignes du tableau ( 50):’)
lire (n)
Ecrire(‘saisir le nombre de colonnes du tableau ( 50):’)
lire (m)
pour i ← 0 à n-1 faire
pour
j ← 0 à m-1 faire
tab[i][j] ← 0
fpour_j
fpour_i
fin
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 XI. NOTION D’ORGANIGRAMME XI.1
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
XI. NOTION D’ORGANIGRAMME
XI.1 DEFINITION
Un organigramme est un schéma symbolique conventionnel
qui illustre les étapes d’un algorithme et leurs relations en
utilisant des symboles graphiques pour visualiser
l’exécution du programme et le cheminement des données..
Il permet
de
donner,
à
priori,
une
idée
claire
sur
l’enchaînement, la logique et le déroulement d’un algorithme
Nous utilisons l’organigramme parce qu’une représentation
graphique aide à la compréhension.
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 XI. NOTION D’ORGANIGRAMME XI.2
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
XI. NOTION D’ORGANIGRAMME
XI.2 Principaux symbole d’un organigramme
L’ellipse représente le début et la fin d’un algorithme :
DEBUT
FIN
Une opération ou un traitement est représenté par un rectangle
Traitement
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 XI. NOTION D’ORGANIGRAMME XI.2
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
XI. NOTION D’ORGANIGRAMME
XI.2 Principaux symbole d’un organigramme
Une condition est mise dans un losange
condition
La flèche désigne le sens de l’exécution de l’algorithme
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 XI. NOTION D’ORGANIGRAMME Ainsi
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
XI. NOTION D’ORGANIGRAMME
Ainsi les trois structures peuvent être représentées comme suit
La Séquence
DEBUT
Instruction_1
Instruction_2
Instruction_3
FIN
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 XI. NOTION D’ORGANIGRAMME La
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
XI. NOTION D’ORGANIGRAMME
La Sélection
Forme1
V
condition
Instruction_1
F
Instruction_2
Instruction_3
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 XI. NOTION D’ORGANIGRAMME La
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
XI. NOTION D’ORGANIGRAMME
La Sélection
Forme2
F
V
condition
Instruction_4
Instruction_1
Instruction_5
Instruction_2
Instruction_6
Instruction_3
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 XI. NOTION D’ORGANIGRAMME La
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
XI. NOTION D’ORGANIGRAMME
La Répétition
Forme : tant que……faire
F
condition
V
Instruction_1
Instruction_2
Instruction_3
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 XI. NOTION D’ORGANIGRAMME La
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
XI. NOTION D’ORGANIGRAMME
La Répétition
Forme : Répéter……Jusqu’à
Instruction_1
Instruction_2
Instruction_3
F
condition
V
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 XI. NOTION D’ORGANIGRAMME Forme
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
XI. NOTION D’ORGANIGRAMME
Forme : Pour……faire
La Répétition
I=VI
F
I
VF
V
Instruction_1
Instruction_2
Instruction_3
I=I+1
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 XI. NOTION D’ORGANIGRAMME XI.3
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
XI. NOTION D’ORGANIGRAMME
XI.3 Exemple
Khalid SBAI – Cours d’informatique
Université Moulay Ismaïl Ecole supérieure de Technologie Département de Génie Electrique 18/10/2010 SOMMAIRE I. NOTION D’ALGORITHME
Université
Moulay Ismaïl
Ecole supérieure de Technologie
Département de Génie Electrique
18/10/2010
SOMMAIRE
I. NOTION D’ALGORITHME
I.1 Définition
I.2 Qu’est ce que veut dire « écrire un algorithme »
I.3 Objectifs
I.4 Propriétés
II. ETAPES DE CONSTRUCTION D’UN PROGRAMME
III. EXEMPLES D’ALGORITHME
IV. CONVENTIONS D’ÉCRITURE
V. STRUCTURE D'UN ALGORITHME
VI. ACTIONS DE BASE DANS UN ALGORITHME
VI.1 Notions connues par l’ordinateur
VII. INSTRUCTIONS DE CONTROLE
VII.1 La séquence
VII.2 La sélection
VII.3 Les itérations
VIII. LES TABLEAUX
XI. NOTION D’ORGANIGRAMME
XI.1 DEFINITION
XI.2 Principaux symbole d’un organigramme
Khalid SBAI – Cours d’informatique