Vous êtes sur la page 1sur 66

Université Ecole supérieure de Technologie

Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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 Données de sortie produites
avant exécution et sur par l’algorithme et qui sont
lesquelles l’algorithme est en relation spécifiée avec les
appliqué. données d’entrées.

méthode de résolution de problème


énoncée sous la forme d'une série Algorithme
d'opérations à effectuer.
Khalid SBAI – Cours d’informatique
Université Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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
Langage de
programmation
Formulation de l’Algorithme (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é Ecole supérieure de Technologie
Moulay Ismaïl 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:

ax2 + bx + c = 0 ∀(a,b,c) ∈ R
1. Saisir les valeurs de (a, b, c)

2. On calcule ∆=b2 – 4ac


Si ∆ < 0 alors pas de racine dans |R.
Si ∆ = 0 alors racine double x= -b/2a.
Si ∆ > 0 alors deux racine:
−b − ∆ −b + ∆
x1 = x2 =
2a 2a
Khalid SBAI – Cours d’informatique
Université Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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 avec des carrés, des losanges, etc.
dont on aurait évacué la plupart qu’on appelle des organigrammes
des problèmes de syntaxe.

Khalid SBAI – Cours d’informatique


Université Ecole supérieure de Technologie
Moulay Ismaïl 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*
Instruction 1 Corps

Instruction n
Délimité par
Fin
Début et Fin

Khalid SBAI – Cours d’informatique


Université Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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


On prend la valeur contenue dans la variable a
se comprend de On prend la valeur contenue dans la variable b
la façon suivante : 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é Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl Département de Génie Electrique
18/10/2010
C.1 Instruction d'écriture (suite)

Exemple
Programme exemple d’utilisation de Ecrire
Variables
Entier A, B
Début
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é Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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 : instruction 2 : étape1 instruction 2 : étape2 instruction 3 :


affichage du texte attente action utilisateur affecter la valeur texte et valeur

nb ← 10

Khalid SBAI – Cours d’informatique


Université Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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:
Forme1 Forme2

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é Ecole supérieure de Technologie
Moulay Ismaïl 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 Données
entier valeur, valeurabs
Début
Ecrire(‘donner un nombre :’)
Lire(valeur) Traitements
si valeur ≥ 0 alors
valeurabs ← valeur
sinon Résultats
valeurabs ← -1*valeur
finsi
Ecrire (‘valeur absolue de ‘,
valeur, ‘est = ‘, valeurabs)
fin

Khalid SBAI – Cours d’informatique


Université Ecole supérieure de Technologie
Moulay Ismaïl 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 Début
A et B, on veut écrire un Ecrire(‘donner deux entiers :’)
algorithme qui affiche la Lire(A, B)
plus grande des deux. Si A>B alors
max ← A
Sinon
max ← B
fsi
Ecrire(‘le plus grand des deux est :’, max)
Fin

Khalid SBAI – Cours d’informatique


Université Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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 Nombre d'exécution des


avant l'exécution de l'instruction instructions n’est pas connu

L'exécution de la liste des instructions se nomme itération.


Khalid SBAI – Cours d’informatique
Université Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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 faire
S←S+i
fpour
Ecrire(S)
Fin

Khalid SBAI – Cours d’informatique


Université Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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
Ftant

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é Ecole supérieure de Technologie
Moulay Ismaïl Département de Génie Electrique
18/10/2010
Boucle Tant que (suite)
Exemple 1
Programme somme d’une série
Algorithme utilisant la Variables
boucle tant que pour Entier i
calculer la somme : Réel S, epsilon
Début

1 S ←0
S = ∑ 2 i ←1
i=1
i epsilon ← 0.0001
Tant que (1/i2) ≥ epsilon Faire
début
S←← S+( 1/i2 )
i ←i+1
Fin
Ftant
Ecrire(‘Somme = ‘,S)
Fin.
Khalid SBAI – Cours d’informatique
Université Ecole supérieure de Technologie
Moulay Ismaïl Département de Génie Electrique
18/10/2010
Boucle Tant que (suite)
Exemple 2
Programme somme de n premiers entiers
Algorithme permettant de variables
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+1
i←
S ← S +i
Fin
Ftant
Ecrire(S)
Fin
Khalid SBAI – Cours d’informatique
Université Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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
i ←1
S = ∑ 12 epsilon ← 0.0001
i =1
i répéter
début
← S+( 1/i2 )
S←
i ←i+1
FIN
jusqu’à ((1/i2) < epsilon)
Ecrire(‘Somme = ‘,S)
Fin.
Khalid SBAI – Cours d’informatique
Université Ecole supérieure de Technologie
Moulay Ismaïl Département de Génie Electrique
18/10/2010
Boucle Répéter jusqu'à (suite)
Exemple 2
Programme somme de n premiers entiers
Algorithme permettant variables
de calculer la somme des Entier i, S, n
Début
entiers de +1 à n
Ecrire(‘donner un entier positif :’)
Lire(n)
i ←0
S←0
Répéter
Début
← i+1
i←
S ← S +i
Fin
jusqu’à (i = n)
Ecrire(S)
Fin
Khalid SBAI – Cours d’informatique
Université Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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 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é Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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é Ecole supérieure de Technologie
Moulay Ismaïl 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

Khalid SBAI – Cours d’informatique


Université Ecole supérieure de Technologie
Moulay Ismaïl Département de Génie Electrique
18/10/2010
XI. NOTION D’ORGANIGRAMME
La Répétition Forme : Pour……faire
I=VI

F
I ≤ VF

V
Instruction_1

Instruction_2

Instruction_3

I=I+1

Khalid SBAI – Cours d’informatique


Université Ecole supérieure de Technologie
Moulay Ismaïl Département de Génie Electrique
18/10/2010
XI. NOTION D’ORGANIGRAMME
XI.3 Exemple

Khalid SBAI – Cours d’informatique


Université Ecole supérieure de Technologie
Moulay Ismaïl 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

Vous aimerez peut-être aussi