Vous êtes sur la page 1sur 77

Introduction à l’algorithmique

1ère année ST1


2019/2020, Semestre 2

SMAHI Zakaria
smahi@mail.com
Maitre de Conférence
Dépt de Génie Physique
Faculté de Physique
USTOMB SMAHI Zakaria (2020) 1
Introduction à l’algorithmique
1. Définition d’un Algorithme

Un algorithme est une suite finie de règles


à appliquer dans un ordre déterminé à un
nombre fini de données pour arriver, en un
nombre fini d‘étapes, à un certain résultat, et
cela indépendamment des données.

SMAHI Zakaria (2020) 2


1.1. Son origine:
 Le mot algorithme provient du nom d'un
célèbre mathématicien musulman de la
première moitié du IXe siècle: Muhammad ibn
Musa al Khawarizmi (Khiva (Xiva en ouzbek
est une ville d'Ouzbekistan), son ancien nom,
Khwarezm ou Khorezm).

SMAHI Zakaria (2020) 3


1.2. Son Rôle:
Le rôle de l'algorithme est fondamental. En effet,
sans algorithme, il n'y aurait pas de programme
(qui n'est jamais que sa traduction dans un langage
compréhensible par l'ordinateur).

De plus, les algorithmes sont fondamentaux en


un autre sens: ils sont indépendants à la fois de
l'ordinateur et des langages de programmation
dans lesquels ils sont énoncés et traduits.

SMAHI Zakaria (2020) 4


 « Ecrire un algorithme », c’est :
 Analyser et comprendre le problème : étudier les données fournies et les résultats
attendus
 Résoudre le problème, c’est trouver les structures de données adaptées ainsi que
l’enchaînement des actions à réaliser pour passer des données aux résultats

 Comment exécuter un algorithme sur un ordinateur ?

 Il faut traduire cet algorithme à l’aide d’un langage de programmation connu par
l’ordinateur.

SMAHI Zakaria (2020) 5


En Résumé :
 Un Algorithme consiste à retranscrire un processus logique à
l’aide d’un langage naturel.

 Un Algorithme est la description d’un traitement qui consiste à


transformer des données, appelées « entrées » , afin de
produire d’autres données appelées « sorties ».
 Les entrées et les sorties représentent les variables manipulées
par l’algorithme.

 Processus de Principe : Entrées -> Traitement -> Sorties

SMAHI Zakaria (2020) 6


2.Représentation d’un algorithme
Historiquement, trois façons pour représenter un algorithme:

2.1. Le langage Naturel (Exp : Français).


Exemple : comment formuler l’algorithme qui
calcule la surface d’un disque ?
Réponse : Pour calculer la surface d’un disque,
on prend d’abord connaissance de son rayon. La
surface est égale au produit de la constante π par
le carré du rayon.

SMAHI Zakaria (2020) 7


2. Représentation d’un algorithme

2. 2. L’Organigramme: Représentation graphique


avec des symboles (carrés, losanges, etc.)

 Avantage : offre une vue d’ensemble de l’algorithme

 Inconvénient : représentation quasiment abandonnée


aujourd’hui

SMAHI Zakaria (2020) 8


Représentation graphique d’un Organigramme

Symboles Signification

L’ellipse : indique le début de l’algorithme

Le parallélogramme : représente une opération de Lecture


ou Ecriture
Le rectangle : représente le contenu de chaque étape de
traitement, il définit l’opération à exécuter.
La flèche : sert à indiquer l’ordre d’exécution des
différentes taches.
L’Hexagone : sert à indiquer l’initialisation de certains
paramètres.
Le losange : il représente l’existence d’un choix logique :
la proposition logique est indiquée à l’intérieur du losange.

Le cercle : indique la poursuite d’une étape précédente.

Le triangle renversé : symbolise la fin de l’algorithme.


SMAHI Zakaria (2020) 9
Exemple : Calcul de surface d’un disque

Pi=3.141592

Entrée: Clavier
Rayon

Sur  Pi* Rayon² 

Sur Sortie: Ecran

SMAHI Zakaria (2020) 10


2. 3. Le pseudo-code ou Langage de Description d’Algorithme (LDA):

C’est une représentation textuelle avec une série de


conventions ressemblant à un langage de programmation
(sans les problèmes de syntaxe)

 plus pratique pour écrire un algorithme


 représentation largement utilisée

SMAHI Zakaria (2020) 11


Exemple précédent devient:
Algorithme surf_Disq ;
CONST Pi = 3.141592 : Réel ;
VAR Sur, Rayon: Réel ;
DEBUT
LIRE(Rayon) ;
Sur Pi* Rayon**2 ;
Ecrire(Sur) ;
FIN

SMAHI Zakaria (2020) 12


3. Structure générale d’un Algorithme :
En générale, l’algorithme comprend les étapes suivantes :

3.1. En tête : Algo Nom de l’algorithme;


3. 2. Déclaration : (Constante, Variable, Structure)
3. 2.1. Type de variable
Une variable correspond à un type de variable. Les
principaux types sont :

Byte (codé sur 1 octet: de 0 à 255)


Caractère (codé sur 1 octet: de 0 à 255)
Chaîne de caractères (toute suite de caractères )
Entier (codé sur 2 octets: de -32768 à 32767)
Réel (codé sur 4 octets: de 0 à 255)
Booléen (vraie ou fausse 0 ou 1, codé sur 1 octet

SMAHI Zakaria (2020) 13


3. 2.2. Déclaration d’une variable

 Rappel: toute variable utilisée dans un programme doit avoir


fait l’objet d’une déclaration préalable
 En pseudo-code, on va adopter la forme suivante pour la
déclaration de variables
Var liste d'identificateurs : type;
 Exemple:
Var i, j,k : Entier;
x, y : Réel;
OK: Booléen;
ch1, ch2 : Chaîne;

SMAHI Zakaria (2020) 14


3.3. Corps de l’Algo:

Début
Lecture de données;
Initialisation des paramètres;
Transformation des données en résultats;
Ecriture des résultats;
Fin.

SMAHI Zakaria (2020) 15


4. Les instructions Algorithmiques 
4.1. L’instruction d’affectation
 Affecter une variable consiste à lui donner une valeur. Cette valeur
peut être soit une constante, soit une valeur d’une autre variable,
soit le résultat d’un calcul.
 L’affectation est représentée par une flèche orientée à gauche 

Exemple :
Exemple
Si A,B sont deux variables de type Byte (valeur comprise entre 0 et
255), alors on peut écrire :
B  15, A  B+ 4, A  A + 1
1/ Le terme de droite (15) est affecté au terme de gauche (variable A)
2/ " " (valeur de la variable B + 4) affecté au terme
gauche (variable A)
3/ " "" (valeur de A (avant instruction) + 1) affecté (variable
A. Dans ce dernier cas la nouvelle valeur de A remplace l'ancienne.

Si une variable est numérique A  0


Si une variable est chaîne de caractères A  "0", ou A  " Lettres "
SMAHI Zakaria (2020) 16
4.1. L’instruction d’affectation
Quelques remarques :
Beaucoup de langages de programmation (C, Fortran, pascal, …)
utilisent le signe égal = pour l’affectation ←. Attention aux confusions:
 l'affectation n'est pas commutative : A=B est différente de B=A
 l'affectation est différente d'une équation mathématique :

 A=A+1 a un sens en langages de programmation


 A+1=2 n'est pas possible en langages de programmation et n'est
pas équivalente à A=1

SMAHI Zakaria (2020) 17


4.2. L’entrée d’information
 La primitive d’entrée ou saisir (entrée clavier) et lire
(lecture en provenant du disque dur).
Le but de ces primitives est de permettre à l’ordinateur
d’affecter une variable extérieure à une autre variable.
Le nom de cette variable symbolise une adresse en
mémoire centrale. A cette adresse se trouve la valeur, à
un moment donné de la variable.

 La primitive de sortie : écrire, afficher, imprimer. Le but


est de permettre à l’ordinateur de sortir la valeur d’une
variable vers les périphériques extérieurs (écran,
imprimante, etc…) SMAHI Zakaria (2020) 18
4.2.1. Instructions d'entrées-sorties:
(Lecture et Ecriture)

Les instructions de lecture et d'écriture permettent à la machine de


communiquer avec l'utilisateur

4.2.1.1. Entrées (Lecture)


La lecture permet d'entrer des données à partir du clavier
 Synthaxe: Lire (A)
la machine met la valeur entrée au clavier dans la zone mémoire
nommée A

 Remarque: Le programme s'arrête lorsqu'il rencontre une


instruction Lire et ne se poursuit qu'après la frappe d’une valeur
au clavier et de la touche Entrée

SMAHI Zakaria (2020) 19


4.2.1. Instructions d'entrées-sorties
(Lecture et Ecriture)
4.2.2. Sorties (Ecriture)

L'écriture permet d'afficher des résultats à l'écran (ou de les écrire


dans un fichier)

 Synthaxe: Ecrire (A)


la machine affiche le contenu de la zone mémoire A

 Conseil: Avant de lire une variable, il est fortement conseillé


d’écrire des messages à l’écran, afin de prévenir l’utilisateur de
ce qu’il doit frapper 

SMAHI Zakaria (2020) 20


4.2.2. Méthode de construction d’un algorithme simple

Exemple :

Écrire un algorithme qui consiste à calculer l’air


S d’un cercle selon la formule S = Pi * R2
Rappel : Pi = 3.14159 et R le rayon du cercle

SMAHI Zakaria (2020) 21


4.2.2. Méthode de construction d’un algorithme
simple
Méthodologie à suivre :
 Constantes : Pi = 3.14159
 Variables : Rayon, Surface
 Types : Rayon, Surface : réel
 Expressions et affectation : Surface <- Pi * (Rayon)2
 Opérations d’entrée-sortie : Lire (Rayon),
Écrire (Surface)

SMAHI Zakaria (2020) 22


4.2.2. Méthode de construction d’un algorithme
simple
Algo Calcul_Aire;
Const Pi = 3,14159 : Réels;
Var Rayon, Surface : Réels;
Début
Lire (Rayon);
Surface <- Pi * (Rayon)^2;
Ecrire (Surface);
Fin.

SMAHI Zakaria (2020) 23


4.3.Instruction de branchement (SAUT):

Cette instruction permet de sauter à un


endroit précis de l’algorithme repéré par une
étiquette.
Syntaxe générale :
ALLER A <étiquette> 

SMAHI Zakaria (2020) 24


4.3.Instruction de branchement (SAUT):

Exemple:
Algo Exemple;
Var x : Entier;
Début
Lire (x);
Aller à 1;
x <- x + 1;
1: x <- x +2;
Ecrire(x);
Fin.
SMAHI Zakaria (2020) 25
4.4.Les structures Conditionnelles
et les Boucles

4.4.1. Instruction de CHOIX


Rôle : permet d’exécuter une séquence
d’instructions plutôt qu’une autre selon les
conséquences.
On distingue quatre formes de structures de
choix (alternative):

SMAHI Zakaria (2020) 26


4.4.1.1.Instruction de choix :Première forme 

Syntaxe :
SI <Condition> ALORS
<Séquence d’instructions> ;
FIN SI
La <Condition> est évaluée. Sa valeur peut être:
Vrai  la séquence est exécutée
Faux  l’instruction est ignorée et on passe à
l’instruction qui suit le FINSI

SMAHI Zakaria (2020) 27


4.4.1.2.Instruction de choix :Deuxième forme 

Syntaxe :
SI <Condition> ALORS
<Séquence d’instructions (1)> 
SINON
<Séquence d’instructions (2)>;
FIN SI

La <Condition> est évaluée. Sa valeur peut être:


Vrai  la séquence (1) est exécutée
Faux  la séquence (2) est exécutée

SMAHI Zakaria (2020) 28


4.4.1.3.Instruction de choix :Troisième forme 

Syntaxe :
SI <condition-1> ALORS
Séquence d’instructions (1) ;
SINON SI <condition-2> ALORS
Séquence d’instructions (2) ;
SINON SI <condition-3>.
…..
….
FIN SI
….
….
FIN SI
FIN SI

SMAHI Zakaria (2020) 29


4.4.1.4.Instruction de choix :Quatrième forme 
Syntaxe :
SI <condition-1> ALORS
SI <condition-2> ALORS

SI <condition-n> ALORS
Séquence d’instructions(n) ;
SINON
Séquence d’instructions (n+1) ;
FIN SI

FIN SI
FIN SI
SMAHI Zakaria (2020) 30
4.4.Les structures Conditionnelles
et les Boucles

Dans ces types de structures, la vérification de la valeur


booléenne des expressions se fera en utilisant des
opérateurs relationnels et logiques tels que :

> ; < ; >= ; <> ; <= sont des opérateurs relationnels =


comparaison
Et, ou sont des opérateurs Logiques

SMAHI Zakaria (2020) 31


4.4.2. Sélection sur choix multiples 

Syntaxe :
Selon que <identificateur>
<liste de valeurs n°1> : <instruction(1)> ;
<liste de valeurs n°2> : <instruction(2)> ;

<liste de valeurs n°n> : <instruction(n)> ;
Sinon: <instruction (autre)> ;
Fin Selon

SMAHI Zakaria (2020) 32


4.4.2. Sélection sur choix multiples 

Exemple:
Selon que Mois
1,3,5,7,8,10,12: Ecrire("  Nombre de jour est ", 31) ;
4,6,9,11: Ecrire("  Nombre de jour est ", 30) ;
2: Ecrire("  Nombre de jour est ", 28) 
Sinon: Ecrire("  Nombre de jour est ", 0) ;
Fin Selon

SMAHI Zakaria (2020) 33


4.5. INSTRUCTION ITERATIVES 
Différentes structures permettent de réaliser cette forme de traitement  :

 Pour
 Tant que
 Répéter, Jusqu'à

SMAHI Zakaria (2020) 34


4.5.1. La Structure itérative POUR
On sait a l’avance combien de fois on veut itérer.
Syntaxe :
POUR I de V_I à V_F Pas P FAIRE
Séquence d’instructions ;
FIN POUR
 
Ou Bien ;

POUR I allant de V_I à V_Fn Pas P FAIRE


Séquence d’instructions ;
FIN POUR

I : variable de contrôle de la boucle


V_I : valeur initiale de I
V_F : valeur finale de I
P : Pas de I.
Remarque : Il faut donc connaître la valeur de début de I ainsi que
sa valeur d’arrivée.
SMAHI Zakaria (2020) 35
4.5.1. La Structure itérative POUR
Exemple :
Ecrire un algorithme qui calcule la somme de la série arithmétique de
raison un, suivante :
S = 0 + 1 + 2 +….N.

Algo Som;
Var i,S,N: Entiers;
Début
Lire (N);
Pour i allant de 0 à N Faire
S <- S + i;
FinPour
Ecrire (S);
Fin.

SMAHI Zakaria (2020) 36


4.5.2. La Structure itérative TANT QUE

Tant que la Condition est vraie alors il faut exécuter l’action

Syntaxe :

TANT QUE <condition> FAIRE

Séquence d’instructions ;

FIN TANT QUE

SMAHI Zakaria (2020) 37


4.5.2. La Structure itérative TANT QUE
Exemple précédent:

Algo Som;
Var i,S,N: Entiers;
Début
Lire (N);
S <- 0;
i <- 0;
Tant Que (i <= N) Faire
S <- S +i;
i <- i + 1;
FinTantque
Ecrire (S);
Fin.

SMAHI Zakaria (2020) 38


4.5.3. La Structure itérative Répéter

Répéter l’action jusqu’à ce que la condition devient fausse

Syntaxe :

REPETER

Séquence d’instruction ;

JUSQU'A <Condition> ;

SMAHI Zakaria (2020) 39


4.5.3. La Structure itérative Répéter
Exemple précédent:

Algo Som;
Var i,S,N: Entiers;
Début
Lire (N);
S <- 0;
I <- 0;
REPETER
S <- S +i;
I <- i + 1;
JUSQU'A (i > N) ;
Ecrire (S);
Fin.

SMAHI Zakaria (2020) 40


5. Expressions et opérateurs
 Une expression peut être une valeur, une variable ou une opération
constituée de variables reliées par des opérateurs exemples: 1, A, A*2,
A+ 3*A-B, A**2/3…
 L'évaluation de l'expression fournit une valeur unique qui est le résultat de
l'opération
 Les opérateurs dépendent du type de l'opération, ils peuvent être :
 des opérateurs arithmétiques: +, -, *, /, % (modulo), ^ ou **(puissance)
 des opérateurs logiques: NON, OU, ET
 des opérateurs relationnels: =, , <, >, <=, >=
 des opérateurs sur les chaînes: & (concaténation)

 Une expression est évaluée de gauche à droite mais en tenant compte des
priorités

SMAHI Zakaria (2020) 41


5.1. Priorité des opérateurs
 Pour les opérateurs arithmétiques donnés ci-dessus, l'ordre de
priorité est le suivant (du plus prioritaire au moins prioritaire) :

 ^ ou ** : (élévation à la puissance)
 * , / (multiplication, division)
 % ou Mod (modulo)
 + , - (addition, soustraction)
exemple: 2+5*6 vaut 32

 En cas de besoin (ou de doute), on utilise les parenthèses pour


indiquer les opérations à effectuer en priorité
exemple: (2 + 5) * 6 vaut 42

SMAHI Zakaria (2020) 42


5.2.Tables de vérité

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

C1 C2 C1 XOR C2 C1 NON C1
VRAI VRAI FAUX VRAI FAUX
VRAI FAUX VRAI FAUX VRAI
FAUX VRAI VRAI
FAUX FAUX FAUX

SMAHI Zakaria (2020) 43


6. Programmation en Langage PASCAL

6.1. Introduction
Tout programme fourni à l'ordinateur n'est que le résultat de la
traduction d'un algorithme dans un langage de programmation
(langage évolué).

Plusieurs langages de programmation existent : Java,C/C++, Basic,


Fortran, Pascal, etc.

Un langage de programmation définit donc un ensemble de règles


syntaxiques (comment écrire correctement le programme) et
sémantiques (le sens affecté à chaque instruction ou structure de
programme).

Le langage de programmation Pascal a été inventé par Niklaus


Wirth dans les années 1970. C’est un langage de programmation dit
impératif (ordre).
SMAHI Zakaria (2020) 44
6.2. Structure d’un programme en Pascal
Un programme Pascal respecte toujours la
structure suivante :
program nomprog ; {Nom du programme }
{Déclaration des variables, des constantes }
{ Il peut y en avoir autant qu'on veut }
{ Début du corps du programme }
begin
instruction1 ;
instruction2 ;
… { Il peut y en avoir autant qu'on veut }
end. { Fin du programme }

SMAHI Zakaria (2020) 45


6.2.1. Déclaration du programme
C’est l’entête du programme. Sa syntaxe est :
PROGRAM nom;
6.2.2. Déclaration des objets
Tous les objets utilisés dans le programme doivent être
déclarés : constantes puis variables. Sa syntaxe est :
CONST a = 2;
vrai =T RUE;
VAR i,k,n : integers {i,k,n sont de types entier}
x,a,b : real {x,a,b de type réel}
test : boolean {variable de type booléenne : }
{ sa valeur est true ou false}
liste : array [1..10] of integer {variable de type tableau}
SMAHI Zakaria (2020) 46
6.3. Principaux types de données simples

• type Entier : Integer. (-32768 et +32767).


• type Réel : Real ( 4 octets)
• type Byte : (1 octet: à 255)
• type Char : (1 octet, les caractères du claviers)
• type String : ( Chaine de caractères)
• type Booléen : Boolean ( vrai ou faux).
• type tableau : Array Il faut alors préciser le type des
éléments du tableau qu’il doit prendre en compte

SMAHI Zakaria (2020) 47


6.4. Variables
Une variable a en informatique le même sens qu'en
mathématique. Elle a les caractéristiques suivantes :

Un identificateur (autrement dit un nom). On peut donner


le nom que l'on veut.
Un identificateur doit commencer par une lettre de
l'alphabet, suivie ou non de signes alphanumériques.
Par exemples:
x, total, x1, x135t, AaBb sont des noms de variable
possibles,
mais 2x, xh?st, kl** ne le sont pas.
Attention : pour différencier le nom des variables de type
caractère des caractères eux-mêmes, on met chaque
caractère entre 2 apostrophes.
Ex : 'x' est un caractère, x est une variable.
SMAHI Zakaria (2020) 48
6.5. L'instruction d'affectation
L'instruction d'affectation a pour but d'affecter (de
donner) une valeur à une variable.
Sa syntaxe est la suivante :
nomvar := expression mathématique;
{nomvar est le nom d'une variable ou
l’identificateur}.

SMAHI Zakaria (2020) 49


6.6. Les instructions d'Entrées-Sorties
6.6.1. instruction d’ECRITURE  :
Syntaxe générale :
WRITE(<Liste des identificateurs de données>) ;
Ou
WRITELN(<Liste des identificateurs de données>) ;

Exemple :
x := 5 ; { On affecte 5 à la variable x, supposée de type integer }
write ( 'Bonjour chers amis…') ;
write ( 12, 5*(x-2), ‘11') ;
A Ecran on aura : Bonjour chers amis… 12 15 11

SMAHI Zakaria (2020) 50


6.6. Les instructions d'Entrées-Sorties
6.6.1. instruction d’ECRITURE  :

writeln agit exactement comme write, mais ajoute un retour


à la ligne après le dernier affichage.

Exemple :
x := 5 ; { On affecte 5 à la variable x, supposée de type integer }
writeln ( 'Bonjour chers amis…') ;
writeln ( 12, 5*(x-2), ‘11') ;
A Ecran on aura : Bonjour chers amis…
12 15 11

SMAHI Zakaria (2020) 51


6.6. Les instructions d'Entrées-Sorties
6.6.2. instruction de LECTURE  :
Pour que l'utilisateur attribue une valeur à une variable
pendant l'exécution du programme, il faut utiliser l'instruction
read ou readln.
Sa syntaxe est la suivante :

READ(<Liste des identificateurs de données>) ;


Ou
READLN(<Liste des identificateurs de données>) ;

SMAHI Zakaria (2020) 52


Exemple d’un petit programme en Pascal :

program moyenne ; { Calcul de la moyenne de 2 nombres. }


var x, y : integer ;
moy : real ;
begin
writeln ('Entrez la valeur du premier nombre :') ; readln ( x ) ;
writeln ('Entrez la valeur du deuxième nombre :'); readln ( y ) ;
moy := (x + y) / 2 ;
writeln ('La moyenne des 2 nombres est : ', moy ) ;
end.

SMAHI Zakaria (2020) 53


Affichage à l’Ecran de l’Exemple précédent:

Entrez la valeur du premier nombre :


5
Entrez la valeur du deuxième nombre :
10
La moyenne des 2 nombres est : 7,5

SMAHI Zakaria (2020) 54


6.7. L’instruction de BRANCHEMENT

Syntaxe générale :
GOTO <LABEL> ;

On déclare les étiquettes par le mot clé LABEL.

SMAHI Zakaria (2020) 55


6.7. Instruction de branchement (GOTO):
Algo Exemple; Program Exemple;
Var x : Entier; Var x : Integer;
Etiquette 1; Label 1;
Début Begin
En Pascal
Lire (x); Read (x);
Aller à 1; Goto 1;
x <- x + 1; x := x + 1;
1: x <- x +2; 1: x := x +2;
Ecrire(x); Writeln(x);
Fin. End.
SMAHI Zakaria (2020) 56
6.8. L'instruction conditionnelle

6.8.1. Première forme :


Syntaxe générale :
IF (Condition) THEN
Begin
Séquence d’instructions ;
End ;

SMAHI Zakaria (2020) 57


6.8. L'instruction conditionnelle
6.8.2. Deuxième forme :
Syntaxe générale :
IF (condition) THEN
Begin
Séquence d’instructions (1)
End 
ELSE
Begin
Séquence d’instructions (2)
End ;
SMAHI Zakaria (2020) 58
6.8. L'instruction conditionnelle
6.8.3. Troisième forme :
Syntaxe générale :
IF (condition-1) THEN
Begin
Séquence d’instructions (1)
End
ELSE IF (condition-2) THEN
Begin
Séquence d’instructions (2)
End
ELSE IF (condition-3)..
…..
…. SMAHI Zakaria (2020) 59
6.8. L'instruction conditionnelle
6.8.4. Quatrième forme :
Syntaxe générale :
IF (condition-1) THEN
IF (condition-2) THEN

IF (condition-n) THEN
Begin
Séquence d’instructions(n)
End
ELSE
Begin
Séquence d’instructions (n+1)
End
ELSE

SMAHI Zakaria (2020) 60
Exemple :
Programme qui calcule et affiche la racine carrée d'un nombre.
program racine;
var x,y : real;
begin
writeln ('Entrez un nombre quelconque'); readln(x);
if (x >= 0) then begin
y := sqrt (x);
writeln('La racine réelle est : ',y);
end
else begin
y := sqrt (-x);
writeln('La racine complexe est : ',y,'i');
end;
end.

SMAHI Zakaria (2020) 61


6.9. La sélection sur choix multiples
Syntaxe générale :
case expression of
case: instruction;
...
case: instruction
else
instruction;
end
Chaque case comporte une ou plusieurs valeurs
constantes séparées par des virgules.
La partie else est facultative.

SMAHI Zakaria (2020) 62


Exemple :
Ecrire un Programme qui détermine l’état du climat en
fonction de la température de l’air.

Le climat est froid si la température est inférieur ou égale


à 10°C,
et modéré si la température est inférieur ou égale à 20°C
et supérieur à 10°C,
et chaud si la température est supérieur à 20°C.

SMAHI Zakaria (2020) 63


Solution 1
Program Climat ;
Var Temp : Integer ;
BEGIN
READ(Temp) ;
IF (Temp <=10) THEN
WRITE (‘Le Climat est Froid’) ;
IF (Temp <=20 and Temp >10) THEN
WRITE (‘Le Climat est Modéré’) ;
IF (Temp >20) THEN
WRITE (‘Le Climat est Chaud’) ;
END.

SMAHI Zakaria (2020) 64


Solution 2
Program Climat ;
Var Temp : Integer ;
BEGIN
READ (Temp) ;
IF (Temp <= 10) THEN
WRITE (‘Le Climat est Froid’) ;
ELSE IF (Temp <= 20) THEN
WRITE (‘Le Climat est Modéré’) 
ELSE
WRITE (‘Le Climat est Chaud’) ;
END.

SMAHI Zakaria (2020) 65


Solution 3
Program Climat ;
Var Temp : Integer ;
BEGIN
READ (Temp);
IF (Temp > 10) THEN
IF (Temp > 20) THEN
WRITE (‘Le Climat est Chaud’) 
ELSE
WRITE (‘Le Climat est Modéré’) 
ELSE
WRITE (‘Le Climat est Froid’) ;
END.

SMAHI Zakaria (2020) 66


Solution 4
Program Climat ;
Var Temp : Integer ;
BEGIN
READ (Temp);
Case Temp Of
1..10 : WRITE (‘Le Climat est Froid’) ;
11..20 : WRITE (‘Le Climat est Modéré’) 
ELSE
WRITE (‘Le Climat est Chaud’) ;
END.

SMAHI Zakaria (2020) 67


6.10. LES INSTRUCTIONS ITÉRATIVES
6.10.1. L'instruction for
Première syntaxe générale:

FOR i = V_i TO V_F DO


Begin
Séquence d’instructions;
End ;
i : variable de contrôle de la boucle
V_i : valeur initiale de i
V_F : valeur finale de f

SMAHI Zakaria (2020) 68


6.10. LES INSTRUCTIONS ITÉRATIVES
6.10.1. L'instruction for
Deuxième syntaxe générale :
FOR I = V_F DOWNTO V_I DO
Begin
Séquence d’instructions
End ;
i : variable de contrôle de la boucle
V_i : valeur initiale de i
V_F : valeur finale de f

Dans cette variante avec " DOWNTO ", le principe


d'itération est le même, mais la variable de boucle prend
tour à tour des valeurs décroissantes
SMAHI Zakaria (2020) 69
Exemple:
Faire un programme qui calcule la moyenne
de N nombres.

SMAHI Zakaria (2020) 70


Solution1:
PROGRAM moyenne;
VAR N, i : Integer;
Note, Total, Moy : Real;
BEGIN
writeln('Nombre notes à entrer ?'); readln(N);
Total := 0;
For i := 1 to N do begin
writeln(i,'ième Note ? ');
readln(Note);
Total := Total + Note
end;
Moy := Total / N;
writeln('La moyenne est : ',Moy)
71
END. SMAHI Zakaria (2020)
Solution2:
PROGRAM moyenne;
VAR N, i : Integer;
Note, Total, Moy : Real;
BEGIN
writeln('Nombre notes à entrer ?'); readln(N);
Total := 0;
For i := N Downto 1 do begin
writeln(i,'ième Note ? ');
readln(Note);
Total := Total + Note
end;
Moy := Total / N;
writeln('La moyenne est : ',Moy)
72
END. SMAHI Zakaria (2020)
6.10.2. les Boucles conditionnelles
6.10.2.1 la Boucle While
Cette structure s’utilise lorsque l’on veut
répéter une suite d’instructions tant qu’une
certaine relation est vraie.
La syntaxe est la suivante :

WHILE (condition) DO
Begin
Séquence d’instructions ;
End ;
SMAHI Zakaria (2020) 73
L’exemple précédent devient:
PROGRAM moyenne;
VAR N, i : Integer;
Note, Total, Moy : Real;
BEGIN
writeln('Nombre notes à entrer ?'); readln(N);
Total := 0; i := 1;
While (i < = N ) do
begin
writeln(i,'ième Note ? ');
readln(Note);
Total := Total + Note ;
i := i + 1;
end;
Moy := Total / N;
writeln('La moyenne est : ',Moy)
END. SMAHI Zakaria (2020) 74
6.10.2. les Boucles conditionnelles

6.10.2.2 la Boucle Repeat


Cette structure s’utilise lorsque l’on veut
répéter une suite d’instructions jusqu’`a ce
qu’une relation soit vraie.
La syntaxe est la suivante :

REPEAT
Séquence d’instructions ;
UNTIL (condition);
SMAHI Zakaria (2020) 75
L’exemple précédent devient avec REPEAT:
PROGRAM moyenne;
VAR N, i : Integer;
Note, Total, Moy : Real;
BEGIN
writeln('Nombre notes à entrer ?'); readln(N);
Total := 0; i := 1;
Repeat
writeln(i,'ième Note ? ');
readln(Note);
Total := Total + Note ;
i := i + 1;
Until (i > N );
Moy := Total / N;
writeln('La moyenne est : ',Moy)
END.
SMAHI Zakaria (2020) 76
FIN du cours

SMAHI Zakaria (2020) 77

Vous aimerez peut-être aussi