Vous êtes sur la page 1sur 190

SMP3

Module : LCI2
lment : Informatique 1
Initiation la programmation
Introduction

Ch. Introduction

Introduction
Objectifs
Dfinir les concepts

Ordinateur
Programme
Langage de programmation
Information
Traitement de l'information

M.Machkour

SMP3

Introduction
Notion d'ordinateur
Machine lectronique ultra rapide
possdant :
Unit centrale de traitement(UCT, CPU,
Processeurs),
Mmoire pour stocker les programmes et les
donnes traiter (RAM),
Des units d'entes et de sorties (E/S) (ports)
pour communiquer avec l'extrieur.
M.Machkour

SMP3

Introduction
Schma simplifi d'un ordinateur
Calcul et contrle

UCT

Bus de
donnes
Vers lextrieur:
Clavier, cran

E/S

Donnes et instructions

MEMOIRE

Bus de
contrle

M.Machkour

SMP3

Introduction
Extrieur comprend
Clavier, scanner
Les supports de stockage(disque dur, disque
optique)
Imprimante
Souris

M.Machkour

SMP3

Introduction
Notion de programme
Un ordinateur est une machine programmable

besoin de programmeurs pour


programmer ou crire des programmes
Programme est une suite finie d'instructions

lmentaires excutables par ordinateur.

M.Machkour

SMP3

Introduction
Langage de programmation
L'ordinateur doit excuter des instructions d'un
programme.
=>Ces instructions doivent tre
comprhensibles ou acceptes par
l'ordinateur
=> Instructions crites dans un langage
compris par l'ordinateur
=> Ncessit d'un langage de programmation:
C, Pascal, VB, JAVA
M.Machkour

SMP3

Introduction
Notion d'information
Un ordinateur est une machine de
traitement d'information
Information
Une information est un renseignement qui
porte sur un objet (nom d'un tudiant, intitul
d'un module)
Une information est une critre qui rduit le
domaine o on cherche la rponse une
question (rduit l'incertitude)
M.Machkour

SMP3

Introduction
Exemple
Question : Chercher le plus grand mot d'une
langue donne. Soit "L" le nom de cette
langue.
Considrons les Informations suivantes
+Ce mot est un adverbe.
+Ce mot commence par la lettre X
-Ce mot dpasse 2 caractres.

M.Machkour

SMP3

10

Introduction
Les mots de la langue L

Adverbes
Adverbes commenant par X
M.Machkour

SMP3

11

Introduction
Traitement de l'information
La tche principale d'un ordinateur est le
traitement de l'information.
Ce traitement se compose de 4 fonctions :
Saisie des donnes (entres),
Mmorisation des donnes,
Oprations sur les donnes,
Restitution des rsultats.
M.Machkour

SMP3

12

SMP3
Module : LCI2
lment : Informatique 1
Initiation la programmation
Algorithmique

Ch. Les concepts de base

Algorithmique
Objectifs
Matriser les concepts ou les notions :

Algorithme
Instruction
Donne
Variable
constante

M.Machkour

SMP3

15

Pourquoi crire un algorithme


- Programme = Algorithme + Donnes.
- Programme = Traduction d'un algorithme
dans un langage de programmation.
- Algorithme = programme pour machine
abstraite.
- Algorithme = Programme indpendant de
machine.
M.Machkour

SMP3

16

Algorithmique
Notion d'instruction
Une instruction est un ordre qu'on demande
un ordinateur d'excuter.
Une instruction est, en gnral, compose de
- opration: +,*
- des arguments 2, 3, x, y, s ,v, rayon
Ces arguments sont appels : donnes.
M.Machkour

SMP3

17

Algorithmique
Exemples d'instructions
Calculer 2 + 3 est une instruction ,
+ est le nom de l'opration (oprateur),
2 et 3 sont les donnes (oprandes).
Lire une valeur au clavier : instruction de
lecture. On la reprsente par le mot Lire
crire une valeur l'cran : instruction
d'criture. On la reprsente par le mot crire.
M.Machkour

SMP3

18

Algorithmique

tapes de rsolution d'un problme


Ordinateur = machine programmable
Rdaction de programme

Rdaction d'algorithmes
Les tapes suivre pour rdiger un algorithme
M.Machkour

SMP3

19

Algorithmique

Les tapes de rsolution d'un problme en


programmation
i.

tablir la liste des donnes en entre ( entres), la


liste des donnes en sortie( sorties ou rsultats) et
les liens entre elles.
ii. Construire un chemin de rsolution qui permet
d'obtenir les donnes en sortie partir des donnes
en entre. C'est ce qu'on appelle un schma de
rsolution.
iii. Dcrire le schma de rsolution en termes
d'instructions lmentaires acceptes par
ordinateur. C'est l'algorithme.
M.Machkour

SMP3

20

Algorithmique

Exemple
Problme : Automatiser le calcul de surface d'un
disque.
Identification des donnes d'entres et de sorties
- Donne en entres : rayon, pi
- Donnes en sorties : surface
- Relations entre les donnes : surface= PI*rayon * rayon.
Chemin de rsolution
- Donner une valeur rayon (affectation ou une lecture)
- Donner une valeur PI
- Calculer PI*rayon*rayon
- Mettre la valeur de PI*rayon*rayon dans surface (stocker
ou affecter)
- Afficher la valeur de surface (Ecrire).

Traduire le chemin en algorithme(une structure


respecter)
M.Machkour

SMP3

21

Algorithmique
Notion d'algorithme
Un algorithme est une suite finie
d'instructions lmentaires excutables
par ordinateur.

M.Machkour

SMP3

22

Algorithmique
Exemple d'algorithme
Algorithme surfaceDisque;
Constantes
PI=3.14;

Variables
rayon, surface : rels ;

Dbut
Rayon 5;
Surface rayon*rayon*PI;
Ecrire("surface=",surface);

Fin.
M.Machkour

SMP3

23

Algorithmique
Notion de donne
Les donnes sont les objets manipuls par
les instructions d'un algorithme.
Exemples
Donnes
Instruction1 : calculer 2 + 3
Instruction2 : calculer rayon * rayon * PI
M.Machkour

SMP3

24

Algorithmique
Nature des donnes
Les donnes peuvent tre
Donnes variables ou simplement variables
Exemples :
- rayon (calculer la surface de (+) disque)
- surface
Donnes constantes ou simplement constantes
Exemple PI, ou la valeur 3.14
PI est dite constante symbolique,
3.14 est dite constante littrale.

Autres exemples de constantes


La constante de coulomb C sa valeur est 8.98 * 109
La charge E=1.6*10-19
M.Machkour

SMP3

25

Algorithmique
Remarque
Une constante symbolique peut tre
manipule directement par son nom ou
par sa valeur littrale.
Exemple
rayon*rayon*PI
ou
rayon*rayon*3.14
M.Machkour

SMP3

26

Algorithmique
Dclaration des donnes
Les variables et les constantes symboliques
utilises dans un algorithme doivent tre
dclares.
Pourquoi?
Rservation de l'espace mmoire.
La dclaration d'une donne comprend
- le nom,
- le type et
- la nature de la donne.
M.Machkour

SMP3

27

Algorithmique
Le nom
- Le nom permet de distinguer la donne parmi les
autres donnes de l'algorithme.
- Ce nom doit tre un identificateur.
Dfinition d'identificateur
Identificateur : un nom qui commence par une lettre ou
le caractre soulign suivi de lettres ou de chiffres ou le
caractre soulign.

M.Machkour

SMP3

28

Algorithmique
Remarque
On prfre que l'identificateur soit significatif (si c'est
possible).

M.Machkour

SMP3

29

Algorithmique
Exemples d'identificateurs
R ou rayon
S ou surface
PI,
P, V, T, Adresse, Ville.
P12
P1Abc_V

M.Machkour

SMP3

30

Algorithmique
Contre-exemples
1nom,
nom tudiant,
nom!
A chaque nom est associe une adresse unique dans la
mmoire de lordinateur.

M.Machkour

SMP3

31

Algorithmique
Lien entre nom de donnes et mmoire
A chaque nom de donne dclare est
associe une adresse physique d'une case
mmoire de lordinateur.
Cette case mmoire contient la valeur de la
donne
rayon
Adresse1 10

Valeur de la donne rayon


M.Machkour

SMP3

32

Algorithmique
Le type
Le type dsigne l'ensemble ou l'intervalle des
valeurs que peut prendre la donne. On
s'intresse aux types simples qui sont :

Entiers(1,-1),
Rels(2.3),
Caractres(a, !),
Chane de caractres (suite de caractres entre
guillemets: " bonjour" ).

M.Machkour

SMP3

33

Algorithmique
La nature
La nature d'une donne indique si la
donne est constante ou variable.
La donne constante ne change pas de
valeur dans l'algorithme.
La donne variable peut changer de valeur
dans l'algorithme.

M.Machkour

SMP3

34

Algorithmique
Syntaxe de dclaration d'une variable
Les variables se dclarent dans une zone dite
Variables.
La rgle de dclaration d'une variable est la
suivante :
nom_variable : type;

M.Machkour

SMP3

35

Algorithmique
Exemple

Variables
rayon : rel;
surface : rel ;
n : entier;

Ou bien

Zone variable

Dclaration des variables

Variables
rayon, surface : rel;
n :entier;

M.Machkour

SMP3

36

Algorithmique
Syntaxe de dclaration d'une constante
Les constantes se dclarent dans une rubrique
nomme Constantes.
La syntaxe utilise est la suivante:
nom_constante_symb = valeur_constante_litt;

M.Machkour

SMP3

37

Exemple
Constantes
PI = 3.14 ;

M.Machkour

SMP3

38

Exemple
Constantes
PI = 3.14 ;
C = 8.98 e 9;
E =1.6e-19;

M.Machkour

SMP3

39

Algorithmique
Rgle respecter
Les variables se dclarent aprs les
constantes.
Exemple
Constantes
PI=3.14 ;
Variables
Rayon, surface : rels;
M.Machkour

SMP3

40

Algorithmique
Remarques
- Les constantes littrales de type caractres sont
entre apostrophes.
Constantes
GENRE1='F';
GENRE2='M';

- Les constantes littrales de type chane de caractres


sont entre guillemets.
Exemples
Constantes
SALUT="salam";
M.Machkour

SMP3

41

Algorithmique
Notion expression
Une expression est une combinaison logique

d'identificateurs,
de valeurs ,
d'oprateurs (+,*,/,-,%...) et
dautres symboles tels que (), .

Exemples

M.Machkour

Contre-exemples

1
2+3
rayon * rayon *pi
(pi*rayon)*2

2*+3
(2+5*2

SMP3

42

Algorithmique
Instructions lmentaires
Instruction d'affectation
sert affecter la valeur d'une expression une
variable. On la note par le symbole
Pour affecter la valeur d'une expression une variable
on crit :

expression;

Nom_variable

M.Machkour

SMP3

43

Algorithmique
Exemple1 (expression constante)
rayon
5;
Aprs cette instruction la valeur de rayon est 5.
La case mmoire associe la variable rayon
contient donc la valeur 5.

M.Machkour

SMP3

44

Algorithmique
Exemple2(expression variable)
rayon
5;
r
rayon;
Aprs ces instructions la valeur de r est 5.

M.Machkour

SMP3

45

Algorithmique
Exemple 3 (expression compose)
rayon
5;
Surface
pi*rayon*rayon;
Aprs cette instruction la valeur de surface est
78.5.

M.Machkour

SMP3

46

Algorithmique

Instruction de lecture : Lire


Permet de lire des valeurs partir du clavier et les
affecte aux variables.
La rgle de cette instruction est :

Lire (var1, var2, );

M.Machkour

SMP3

47

Algorithmique

Exemple 1
Lire(rayon);
A l'excution de cette instruction, quand on saisit la
valeur 8 au clavier, elle sera la valeur de la variable
rayon.

M.Machkour

SMP3

48

Algorithmique

Exemple 2
Lire(nom, age);
nom et age sont des variables.

M.Machkour

SMP3

49

Algorithmique
Instruction d'criture : Ecrire
permet d'afficher les valeurs des constantes,
des variables ou des expressions (aprs les
avoir values) l'cran.

Sa rgle est la suivante :


Ecrire (liste_expressions);

M.Machkour

SMP3

50

Algorithmique
Exemples
- Ecrire (5);
- Ecrire (rayon); affiche la valeur de rayon :5
- Ecrire (surface); affiche l'cran la valeur de
surface :78.5
- Ecrire (pi*rayon*rayon); affiche aussi 78.5
- Ecrire("surface"); affiche le mot surface.
- Ecrire ('s'); affiche la lettre s.

M.Machkour

SMP3

51

Algorithmique
Structure gnrale d'un algorithme
Algorithme Nom_algorithme;
Constantes
Liste_de_constantes;
Variables
Liste_de_varaibles;
Dbut
Liste_instructions;
Fin.
M.Machkour
SMP3

52

Algorithmique
Exemples d'algorithmes
Calcul de la surface d'un disque
Calculer de la somme des n premiers entiers
1+2+3+n
Permutation des valeurs de deux variables.

M.Machkour

SMP3

53

Algorithmique

Exemple 1 surface d'un disque


i. Identification des donnes d'entres et de
sorties

Donne en entres : rayon, pi


Donnes en sorties : surface
Relations entre les donnes : surface= pi*rayon * rayon.

ii. Chemin de rsolution

Donner une valeur rayon (affectation ou une lecture)


Calculer pi*rayon*rayon
Mettre pi*rayon*rayon dans surface (affectation)
Afficher la valeur de surface (Ecrire).

iii. Traduire le chemin en algorithme


M.Machkour

SMP3

54

Algorithmique
Algorithme surfaceDisque;
Constantes
PI=3.14;

Variables
rayon, surface : rels ;

Dbut
rayon 5; // ou bien lire(rayon) ;
//Il ne faut pas crire rayon=5;
surface rayon*rayon*PI;
Ecrire("surface=",surface);

Fin.
M.Machkour

SMP3

55

Exemple 2
Calcul de la somme
1+2+3n avec n un entier saisir au clavier.
i. Identification des donnes d'entres et de sorties
Donne en entres : n
Donnes en sorties : somme
Relations entre les donnes : somme= n*(n+1)/2

ii. Chemin de rsolution

Donner une valeur n ( lire(n))


Calculer n*(n+1)/2
Mettre n*(n+1)/2 dans somme(affectation)
Afficher la valeur de somme (Ecrire).

iii. Traduire le chemin en algorithme


M.Machkour

SMP3

56

Algorithme sommeN ;
Constantes
Variables
n, somme: entiers ;
Dbut
Lire(n) ;
somme n*(n+1)/2 ;
Ecrire (somme); ou bien Ecrire("la sommes est:" ,
somme) ;
Fin.
M.Machkour

SMP3

57

Exemple 3
Permuter les valeurs de deux variables x et y.
Par exemple
Au dbut x contient 12 et y contient 13

x 12

y 13

Aprs permutation la valeur de x est 13 et celle de y est 12.

x 13
M.Machkour

y 12
SMP3

58

Exemple 3 (suite)
Solutions pour la permutation
Si on fait x y ; et y x ;on aura

xy
x 12

yx
y 13

et

y 13

x 13

x et y ont mme valeur celui de y (13).


M.Machkour

SMP3

59

Exemple 3 (suite)
La raison?
La valeur de x n'a pas t conserve. Elle a
t crase par la valeur de y(13).
Solution ?
Ajouter une autre variable z pour
conserver provisoirement la valeur de x.

M.Machkour

SMP3

60

Exemple 3(suite)
Solution
z x; z
x 12

z 12

xy;

x 12

y 13

x 13

yz;

y 13

z 12

y 12

M.Machkour

SMP3

61

Exemple 3 (suite)
i. Identification des donnes d'entres et de
sorties

Donne en entres : x et y
Donnes en sorties : x et y changes

ii. Chemin de rsolution

Donner une valeur x;


Donner une valeur y;
changer les valeurs de x et y;
Afficher x et y.

iii. Traduire le chemin en algorithme


M.Machkour

SMP3

62

Exemple 3 (suite)
Algorithme permutation;
Variables
x,y,z: entiers ;
Dbut
Lire(x) ;
ou x 12;
Lire(y) ;
ou y13;
z x ;
xy ;
y z ;
Ecrire ("la valeur de x aprs permutation : " , x ) ;
Ecrire ("la valeur de y aprs permutation : " , y) ;
Fin.
M.Machkour

SMP3

63

Une autre solution


Pour permuter les valeurs de deux
variables : mthode de diffrences
x(12) et y(13)
xx-y; x(12-13)
yx+y; y(-1+13), x-y +y
xy-x; x(12-(-1)), x+y -x
M.Machkour

SMP3

64

Exercice
crire un algorithme qui lit un rel est affiche son
carr.
Algorithme carr ;
Variables x,y: rels;
Dbut
Lire(x);
yx*x;
Ecrire ("le carr de ", x , " est : " , y);
Fin.
M.Machkour

SMP3

65

Bloc d'instruction
Un bloc d'instructions est une suite d'instructions dlimites par les
mots dbut et fin
Exemple
Dbut
Lire(rayon);
surface=rayon*rayon*PI;
Ecrire (surface);

Bloc d'instructions

Fin.

Note.
En langage C
Le mot dbut est reprsent par {
Le mot fin par }.

M.Machkour

SMP3

66

Environnement d'un algorithme


L'environnement d'un algorithme est
l'ensemble des donnes dclares dans
les rubriques constantes et variables
Exemples
L'environnement de l'algorithme
surfaceDisque est constitu de la constante
PI et les variables rayon et surface.
L'environnement de permutation est x,y et z.
M.Machkour

SMP3

67

Exemples
L'environnement de l'algorithme
surfaceDisque est constitu de
la constante PI et les variables rayon et
surface.
L'environnement de permutation est : x,y et z.

M.Machkour

SMP3

68

Ch. Les structures de contrle

Les structures de contrles


Une structure de contrle sert contrler
l'excution d'une instruction ou d'un bloc
d'instructions.
Deux types de structures de contrles:
Structure conditionnelle si l'excution de
l'instruction ou du bloc dpend d'une condition
Structure rptitive (itrative ou boucle) si
l'excution de l'instruction ou du bloc peut tre
rpte plusieurs fois(base aussi sur une
condition).
M.Machkour

SMP3

70

Exemples
Si x est positif alors
Contrle ou condition
Calculer la racine carre.
Si a est diffrent de 0 alors
Calculer b/a
Pour tout i de 1 jusqu 100 faire
Affecter s la somme s+i.

Instruction
M.Machkour

SMP3

71

Notion de condition
Une condition est une expression dont la valeur
est soit vraie, soit fausse (expression
boolenne ou de type boolen).

M.Machkour

SMP3

72

Exemples
- 2>3
- 2<3
- 2=3
Remarques
- Le type boolen={vraie (v), fausse(f)}
- On peut aussi dclarer des variables
de type boolen.

M.Machkour

SMP3

73

Exemples de dclaration avec le type


boolen
Variables
test boolen;.

test 2>3;
test2<3;

M.Machkour

SMP3

74

Condition et oprateurs
Les conditions sont exprimes par des
oprateurs de comparaison et des
oprateurs boolens :
-

Les oprateurs de comparaison sont


=, <, <=, >, >= et
- Les oprateurs boolens s'utilisent avec des
oprandes boolens
Et(And), ou (or) et non(not)
M.Machkour

SMP3

75

Dfinition de l'oprateur ET
Soit A et B deux expressions boolennes
L'expression A ET B est vraie ssi
A est vraie et B est vraie.
Exemples
(2>3) ET (2=2) fausse
(2<3) ET (2=2) vraie
(2>3) ET (2<2) fausse
M.Machkour

SMP3

76

Dfinition de l'oprateur OU
Soit A et B deux expressions boolennes
L'expression A ou B est fausse ssi
A est fausse et B est fausse.
Exemples
- (2>3) OU (2=2) vraie
- (2<3) OU (2=2) vraie
- (2>3) OU (2<2) fausse
M.Machkour

SMP3

77

Dfinition de l'oprateur non


A est une expression boolenne.
Si A est vraie, non(A) est fausse
Si A est fausse, non(A) est vraie
Exemples
- e1=(1<2) ET (2=2) e1=?
- e2=non(non(1<2) ou (2=3)) e2=?
M.Machkour

SMP3

78

Lois de De Morgan
Si A et B deux expressions boolennes
alors
non(A ET B)=non(A) OU non(B)
non(A OU B)=non(A) ET non(B)

M.Machkour

SMP3

79

Structures conditionnelles
Forme 1

Si (condition) alors
instr1; | bloc_instr

finsi

M.Machkour

SMP3

80

Exemple
Chercher la surface d'un disque de rayon
saisi au clavier. Il faut s'assurer tout
d'abord que le rayon soit positif.

M.Machkour

SMP3

81

Algorithme surfaceDisque;
Constantes
PI=3.14;

Variables
rayon, surface:rels ;

Dbut
Lire(rayon);
Si (rayon>0 ) alors
debut
Surface rayon*rayon*PI;
Ecrire("surface=",surface);
fin
finsi

Fin.

M.Machkour

SMP3

82

Structures conditionnelles
Forme 2

Si (condition) alors
instr1; | bloc_instr1

Sinon
Instr2; | bloc_instr2
.

finsi

M.Machkour

SMP3

83

Exemple
Chercher la surface d'un disque de rayon
saisi au clavier. Il faut s'assurer tout
d'abord que le rayon soit positif. Si le
rayon saisi est ngatif, afficher le message
rayon non valide.

M.Machkour

SMP3

84

solution
Algorithme surfaceDisque;
Constantes
PI=3.14;
Variables
rayon, surface:rels ;
Dbut
Lire(rayon);
Si (rayon>0 ) alors
dbut
surface rayon*rayon*PI;
Ecrire("surface=",surface);
fin
Sinon
Ecrire(" rayon non valide");
finsi
Fin.

M.Machkour

SMP3

85

Exercices
1/Chercher le minimum de deux entiers
saisis au clavier.
2/Chercher le minimum de trois entiers
saisis au clavier.
3/Donner la solution de ax+b=0. a et b
sont deux rels saisir.
M.Machkour

SMP3

86

Ex1 Solution1
Algorithme minimum1;
Variables
a, b, min :entiers;
Dbut
Lire(a,b);
Si (a<b) alors
mina;
Sinon
min b;
Finsi
Ecrire ("le min est:",min);

Ex1 Solution2
Algorithme minimum2;
Variables
a, b, min :entiers;
Dbut
Lire(a,b);
min a;
Si(min > b) alors
min b;
Finsi
Ecrire ("le min est:",min);

Fin.

Fin.

M.Machkour

SMP3

87

Ex1 Solution3
Algorithme minimum3;
Variables
a, b, min :entiers;
Dbut
Lire(a,b);
Si(a<b) alors
Ecrire ("le min est:",a);
Sinon
Ecrire ("le min est:",b);
Finsi

Fin.
M.Machkour

SMP3

88

Ex2 Solution
Algorithme minimum;
Variables
a, b, c, min :entiers;
Dbut
Lire(a, b, c );
min a;
Si (min > b) alors
min b;
Finsi
Si (min > c) alors
min c;
Finsi
Ecrire ("le min est:",min);
Fin.
M.Machkour

SMP3

89

Ex 3 solution
Algorithme equation;
Variables a,b,x :rels;
Dbut
Lire(a,b);
Si (a0) alors
dbut
X-b/a;
Ecrire("la sol est :", x);
Fin

Sinon
Ecrire ("il y a 0 ou plusieurs solutions");

Finsi
Fin.
M.Machkour

SMP3

90

Ex 3 solution plus complte


Algorithme equation1;
Variables a, b, x :rels;
Structure conditionnelle l'intrieur
Dbut
d'une autre structures
Lire(a,b);
conditionnelles imbriques
Si (a0) alors
dbut
X=-b/a;
Ecrire("la sol est :", x);
fin
Sinon
si (b=0) alors
Ecrire ("Il y a plusieurs solutions.");
sinon
Ecrire ("Il n y a pas de solutions.");
Finsi
Finsi
Fin.

M.Machkour

SMP3

91

Exercices supplmentaires
1/Ecrire un algorithme qui lit la moyenne d'un tudiant
et affiche s'il est admis ou non.
2/Ecrire un algorithme qui lit la moyenne d'un tudiant
et affiche la mention associe.
3/Ecrire un algorithme qui lit trois notes d'un tudiant,
calcule sa moyenne et l'affiche avec la mention
associe.
4/Ecrire un algorithme qui lit un entier et affiche s'il est
pair ou impair.
5/Ecrire un algorithme qui lit trois nombres et affiche
s'ils sont ordonns ou non.
M.Machkour

SMP3

92

Ex 2 supp
Algorithme mention;
Variables
moy : rels;
mention : chane de caractres;
Dbut
Lire(moy);
si (moy<12) alors
mention="passable";
sinon
Si (moy<14) alors
mention="A.B";
Sinon
Si (moy<16 ) alors
mention="B";
sinon
mention="T.B";
Finsi
Finsi
Finsi
Ecrire ("la mention est :", mention);
Fin.
M.Machkour

SMP3

93

Structures conditionnelles : choix multiple


Forme 3
Selon (expression)
dbut
Cas val1 : liste_instructions1;
Cas val2 : liste_instructions2;

sinon : Liste_instructions;
Fin
M.Machkour

SMP3

94

Fonctionnement de selon
Si expression=val1 alors on excute
liste_instructions1. Sinon, on passe comparer
expression avec vali.
Si expression=vali alors seront excutes
liste_instructionsi.
Si expression est diffrent de toutes les valeurs vali,
on excute les instructions de sinon si elle est
prsente. Sinon on passe l'instruction suivante de
l'algorithme.
M.Machkour

SMP3

95

Exemple
Ecrire un algorithme qui lit un oprateur op
(+,-,/,*) et deux entiers a et b puis affiche
le nom et le rsultat de l'opration a op b.
Entres op, a, b;
Sorties la valeur de a op b et le nom de
l'opration.
M.Machkour

SMP3

96

Algorithme operateur;
Variables
op caractre;
a,b, r : entiers;

Dbut
Lire(op);
Lire(a,b);
Selon (op)
dbut
Cas '+' : r a+b; ecrire ("la somme de a et b est:", r);
Cas '-' : r a-b; ecrire("la diffrence entre a et b est:", r);
Cas '*' : r a*b;ecrire("la multiplication de a par b est:", r);
Cas '/' : r a/b; ecrire ("la division de a par b est:", r);
Sinon : ecrire (op , " : oprateur non valide");

Fin

Fin.
M.Machkour

SMP3

97

Les structures itratives


Trois faons pour exprimer les itrations ou les
rptitions de la mme instruction (ou bloc)
Tantque (condition) faire
Faire tantque(condition)
Pour

M.Machkour

SMP3

98

La structure Tantque(condition)
Tantque (condition) faire
Instr1;
Instr2;

Liste d'instructions rpter

Fin tantque

M.Machkour

SMP3

99

Fonctionnement La structure Tantque(condition)


Si la condition est vraie, on excute les instrs et on passe
vrifie la condition de nouveau. Si elle est encore vraie,
on r-excute les instrs et ainsi de suite. Ce processus se
rpte jusqu' ce que la condition soit fausse.
Si la condition est fausse l'entre de la boucle, les
instructions ne seront jamais excutes.

M.Machkour

SMP3

100

Exemple
crire un algorithme qui affiche les valeurs de 1 10.

M.Machkour

SMP3

101

Rponse
Algorithme criture;
Var i : entier;
Dbut
i 1;
Tantque (i<=10) faire
crire(i);
i i+1;

//compteur

fin tantque
fin.
M.Machkour

SMP3

102

Exemple
crire un algorithme qui lit 10 entiers.

M.Machkour

SMP3

103

Rponse
Algorithme lecture;
Var i,n : entier;
Dbut
i 1;
Tantque (i<=10) faire
lire(n);
i i+1;

//compteur

fin tantque
fin.
M.Machkour

SMP3

104

Exemple
crire un algorithme qui lit 10 entiers et les affiche.

M.Machkour

SMP3

105

Rponse
Algorithme lecture_criture;
Var i ,n: entier;
Dbut
i 1;
Tantque (i<=10) faire
lire(n);
crire(n);
i i+1;

//compteur

fin tantque

fin.
M.Machkour

SMP3

106

Exemple
crire un algorithme qui lit m entiers et les affiche. m est un entier
lire au clavier.

M.Machkour

SMP3

107

Rponse
Algorithme lecture_criture;
Var i ,n,m: entier;
Dbut
lire(m);
//Le nombre de valeurs lire.
i 1;
Tantque (i<=m) faire
lire(n);
crire(n);
i i+1;

//lecture des valeurs.


//criture des valeurs.
//compteur

fin tantque
fin.

M.Machkour

SMP3

108

Exercices
1) crire un algorithme qui calcule la somme 1+2+3++n. n lire
au clavier.
2) crire un algorithme qui affiche les diviseurs d'un nombre lu au
clavier. Utiliser l'oprateur mod.

M.Machkour

SMP3

109

Exercice 1
Algorithme Somme;
Var s,n, i : entier;
Dbut
s 0;
i 1;
lire(n);
Tantque (i<=n) faire
s s+i;
i i+1;
fin tantque
crire(s);
fin.
M.Machkour

SMP3

110

Exercice 2
Algorithme Diviseurs;
Variables
n, i:entiers;
Dbut
Lire(n);
i1;
Tantque (i<=n ) faire
Si (n mod i)=0 alors
Ecrire( i);
Finsi
ii+1;
Fin tantque
Fin .
M.Machkour

SMP3

111

Exercice
crire un algorithme qui calcule et affiche la somme des
diviseurs d'un nombre lu au clavier. Utiliser l'oprateur
mod.

M.Machkour

SMP3

112

Rponse
Algorithme SomDiviseurs;
Variables
n, i,som :entiers;
Dbut
Lire(n);
i1;
som0;
Tantque (i<=n) faire
Si (n%i)=0 alors
somsom+i;
Finsi
ii+1;
Fin tantque
Ecrire ("la somme des divseurs est :", som);
Fin .
M.Machkour

SMP3

113

La structure Tantque(condition) une autre


variante
Tantque (condition) faire
Instr; |bloc_instr

M.Machkour

SMP3

114

Remarque
En gnral, les instrs doivent contenir une instruction
qui assure la sortie de la boucle: rendre la condition
fausse aprs un certain nombre fini d'itrations.

M.Machkour

SMP3

115

La structure faire Tantque(condition)


Faire
Instr1;
Instr2;

Tantque (condition);

M.Machkour

SMP3

116

Fonctionnement de la structure
faire tantque(condition)
On excute les instructions dlimites par Faire et
Tantque , puis on vrifie la condition.
Si la condition est vraie, on rexcute les instrs et on
passe vrifie la condition de nouveau. Si elle est
encore vraie, on excute les instrs et ainsi de suite.
Ce processus se rpte tant que la condition est
vraie.
Une fois la condition est fausse on quitte la structure.

M.Machkour

SMP3

117

La structure faire tantque(condition)


Remarques
En gnral, les instrs doivent contenir une
instruction qui assure la sortie de la boucle:
rendre la condition fausse aprs un certain
nombre fini d'itrations ou autre .
Les instructions contrles par cette structure
sont excutes au moins une fois.

M.Machkour

SMP3

118

La structure faire tantque(condition)


Exemple
Algorithme Somme;
Var s,n, i : entier;
Dbut
s 0;
i 1;
lire(n);
Faire
s s+i;
i i+1;

Tantque (i<=n) ;
ecrire(s);

fin.
M.Machkour

SMP3

119

La structure faire Tantque(condition) Une autre


variante
Faire
Instr; |bloc_instr
Tantque(condition);

M.Machkour

SMP3

120

La structure pour
Pour variable_compteur dbut fin faire
Intsr1;
Instr2;
Ce bloc sera excut fin-dbut+1 fois
..
Finpour

M.Machkour

SMP3

121

La structure pour
Fonctionnement de la structure
i)On affecte var_compteur la valeur de dbut, puis
on excute les instructions.
ii)Ensuite, on incrmente var_compteur et on vrifie
si sa valeur est <= de celle de fin.
iii)Si var_compteur<=fin, on excute les instructions
et on passe ii)
On quitte cette boucle lorsque var_compteur devient
>fin.
M.Machkour

SMP3

122

La structure pour
Remarque
var_compteur, dbut et fin doivent avoir le
mme type ou des types compatibles.
Exemple
Calculer la somme s=1+2+3..+n. n lire
au clavier
M.Machkour

SMP3

123

La structure pour
Exemple
Algorithme Somme;
Variable s,n,i : entier;
Dbut
Lire(n);
s 0;
pour i1 n faire
s s+i;
finpour
Ecrire(s);
fin.
M.Machkour

Cas de n=3
-

i=1, i n = 3 ? => ss+i => s0+1 => s=1

i devient i+1, donc 1+1=2

i=2 n=3 ? ss+i => s1+2=>s=3

i devient i+1, donc 2+1=3

i=3 n=3 ? => Ss+i => s3+3=>s=6

i devient i+1, donc 3+1=4

i=4>n=3, on quitte l boucle.

SMP3

124

Exercice
Chercher la somme des diviseurs d'un entier saisi au clavier.

Rponse
Algorithme SomDiv;
Variable s,n,i : entier;
Dbut
s 0;
Lire(n);
pour i1 n faire
Si (n%i)=0 alors

s s+i;
Finsi
finpour
Ecrire(s);
fin.
M.Machkour

SMP3

125

Exercice
Ecrire un algorithme qui calcule le factoriel d'un entier
saisi au clavier.
Algorithme factoriel;
Variable fact,n,i : entier;
Dbut
Lire(n);
fact 1;
pour i1 n faire
factfact*i;
finpour
Ecrire(fact);
Fin.
M.Machkour

SMP3

126

Exercice
crire un algorithme qui lit un entier et affiche s'il
est pair ou non.
Algorithme parit;
Variable n:entier;
Dbut
Lire(n);
Si (n%2)=0 alors
Ecrire(pair)
Sinon
Ecrire (impair);
Finsi

Fin.
M.Machkour

SMP3

127

La structure pour : une autre variante


Pour variable_compteur dbut fin faire
Intsr; | bloc_instrs

M.Machkour

SMP3

128

Organigramme
Dfinition
-Organigramme =Reprsentation
graphique d'un algorithme.
-Chaque instruction et chaque structure de
contrle possde une reprsentation
graphique.
M.Machkour

SMP3

129

Organigramme
Symbole de l'instruction "affectation"
surface PI*rayon*rayon

M.Machkour

SMP3

130

Organigramme
Symbole de l'instruction "lecture"
Lire(rayon)

M.Machkour

SMP3

131

Organigramme
Symbole de l'instruction "criture"
Ecrire(rayon)

M.Machkour

SMP3

132

Organigramme
Symbole de "dbut"
Dbut

M.Machkour

SMP3

133

Organigramme
Symbole de "fin"
Fin

M.Machkour

SMP3

134

Organigramme
Symbole de "squence"

M.Machkour

SMP3

135

Organigramme
Reste de l'algorithme (avant ou aprs l'instruction en cours)

M.Machkour

SMP3

136

Organigramme
Exemple 1

Dbut

Lire(rayon)

surface rayon*rayon*PI

crire(surface)

Fin
M.Machkour

SMP3

137

Organigramme
Si (condition) alors
instr;
Finsi
condition

Vraie

Fausse
instr

M.Machkour

SMP3

138

Organigramme
Si (condition) alors
instr1;
Sinon
condition
Fausse
vraie
instr2;
instr1
instr2
Finsi

M.Machkour

SMP3

139

Organigramme
Exemple 2

Dbut
Lire(R)

R > 0
F

S PI*R*R
crire(S)

Fin
M.Machkour

SMP3

140

Organigramme
Exemple 3

Dbut

Recherche de minimum
Lire(X,Y)
F

X < Y

min X

min Y

crire(min)

Fin
M.Machkour

SMP3

141

Organigramme
Tantque (condition) faire
instr;
Fin tantque

instr

M.Machkour

SMP3

condition
F

142

Dbut
Lire(n)

Organigramme
Exemple 4

s 0
i 1

Calcul de s=1+2+3+n
V
s s+i

i<=n
F

i i+1
Ecrire(s)

Fin
M.Machkour

SMP3

143

Organigramme
Faire
instr;
Tantque (condition)

instr

condition
F

M.Machkour

SMP3

144

Dbut
Lire(n)

Organigramme
Exemple 5

i 1
s 0
s s+i

Calcul de S=1+2+3+n

i i+1
V

i<=n
F

Ecrire(s)

M.Machkour

SMP3

Fin

145

Organigramme
pour i dbut fin faire
instr;
Finpour

i dbut

V
instr

i<=fin
F

i i+1

M.Machkour

SMP3

146

Dbut
Lire(n)

Organigramme

s 0

Exemple 6

i 1

Calcul de S=1+2+3+n
V
s s+i

i<=n
F

i i+1
Ecrire(s)

Fin
M.Machkour

SMP3

147

Exercice
Donner l'organigramme de l'algorithme suivant:
Algorithme sommeN ;
Variables
n, somme: entiers ;
Dbut
Lire(n) ;
somme n*(n+1)/2 ;
Ecrire (somme); ou bien Ecrire("la sommes est:" ,
somme) ;
Fin.

M.Machkour

SMP3

148

Rponse
Dbut

Lire(n)

s n * (n+1)/2

crire(s)

Fin
M.Machkour

SMP3

149

Exemple
Donner l'organigramme de l'algorithme suivant:
Algorithme permutation;
Variables
x,y,z: entiers ;
Dbut
Lire(x) ;
ou x 12;
Lire(y) ;
ou y13;
z x ;
xy ;
y z ;
Ecrire ("la valeur de x aprs permutation : " , x ) ;
Ecrire ("la valeur de y aprs permutation : " , y) ;
Fin.
M.Machkour

SMP3

150

Rponse ?

M.Machkour

SMP3

151

Donner les organigrammes


des algo suivants :
Algorithme minimum1;
Variables
a, b, min :entiers;
Dbut
Lire(a,b);
Si (a<b) alors
mina;
Sinon
min b;
Finsi
Ecrire ("le min est:",min);

Algorithme minimum2;
Variables
a, b, min :entiers;
Dbut
Lire(a,b);
min a;
Si(min > b) alors
min b;
Finsi
Ecrire ("le min est:",min);

Fin.

Fin.

M.Machkour

SMP3

152

Donner l'organigrammes de l'algo suivant :


Algorithme SomDiviseurs;
Variables
n, i,som :entiers;
Dbut
Lire(n);
i1;
som0;
Tantque (i<=n) faire
Si (n%i)=0 alors
somsom+i;
Finsi
ii+1;
Fin tantque
Ecrire ("la somme des divseurs est :", som);
Fin .
M.Machkour

SMP3

153

Donner l'organigrammes de l'algo suivant :


Algorithme Somme;
Var s,n, i : entier;
Dbut
s 0;
i 1;
lire(n);
Faire
s s+i;
i i+1;

Tantque (i<=n) ;
ecrire(s);

fin.
M.Machkour

SMP3

154

Exercice
Donner l'organigrammes de l'algo suivant :
Algorithme factoriel;
Variable fact,n,i : entier;
Dbut
Lire(n);
fact 1;
pour i1 n faire
factfact*i;
finpour
Ecrire(fact);
Fin.

M.Machkour

SMP3

155

Exercice
Donner l'algorithme associ au schma
suivant:
Dbut

Lire(a,b)

c a+b

crire(c)

Fin
M.Machkour

SMP3

156

Ch. Les tableaux

Introduction
Reprsentation de vecteurs

v=(vi)1in
Utilisation de beaucoup de variables
Les notes d'une classe

notes=(notesi)1in

M.Machkour

SMP3

158

Dfinition
Tableau est une collection d'objets ou
d'lments de mme type.
Les lments d'un tableau partage le mme
nom : nom du tableau

M.Machkour

SMP3

159

Reprsentation logique d'un tableau


Nom du tableau

Val1

val2

val3

val4

valn

Remarque
Chaque case reprsente une variable.

M.Machkour

SMP3

160

Exemple de tableau d'entiers nomm t


(avec 6 lments)
t

M.Machkour

14

15

SMP3

12

16

161

Exemple de tableau de rels nomm


notes
notes

M.Machkour

12.1

14.3

SMP3

15.25

12.5

16

162

Exemple de tableau de chanes nomm


noms(avec 4 lments)
noms

M.Machkour

Khalid

Ali

SMP3

Mohammed

Said

163

Exemple de tableau de caractres nomm


lettres
lettres

M.Machkour

SMP3

164

Exercice

11

13

10

nom du tableau?
taille?
type?
M.Machkour

SMP3

165

Indice d'un lment du tableau


Les lments d'un tableau sont identifis par
un numro ou une position appel indice de
l'lment (numro de la case).
Si un lment se trouve la case n son indice
est n.
La position d'un lment dans le tableau est
comprise entre 1 et le nombre d'lments du
tableau.
M.Machkour

SMP3

166

Cration d'un tableau


Nom du tableau
Type des lments de ce tableau
Nombre d'lments de ce tableau

M.Machkour

SMP3

167

Syntaxe de cration d'un tableau


nomTableau[nbre_lments] : type;

M.Machkour

SMP3

168

Exemple
Tableau de 4 rel nomms notes
Notes[4] : rel;

M.Machkour

SMP3

169

Exemple
Tableau de 10 chanes de caractres
nomms noms
noms[10]: chane;

M.Machkour

SMP3

170

Exemple
Tableau de 6 entiers nomm x
x[6]: entiers;

M.Machkour

SMP3

171

Slection ou accs aux lments d'un


tableau
nom_tableau[indice_lment]

M.Machkour

SMP3

172

Exemples
Pour la dclaration x[5]: entiers;
on peut parler de
x[1]
x[2]

x[5]
M.Machkour

SMP3

173

Exemple

11

1
2
m[1] a la valeur 1.

m[5] a la valeur 10.


M.Machkour

13

SMP3

10

174

Oprations sur les tableaux:


Les lments d'un tableau se comportent
comme des variables:
Affectation
Lecture
criture
Expressions
Etc.
M.Machkour

SMP3

175

Manipulation des lments d'un tableau


Pour montrer la manipulation des
lments d'un tableau, nous considrons
la dclaration suivante:
x[6]: entiers;

M.Machkour

SMP3

176

Lecture des lments d'un tableau


Utilisation d'une boucle pour ou autre
pour i 1 6 faire
lire(x[i]);
fin pour

M.Machkour

SMP3

177

criture des lments d'un tableau


Utilisation d'une boucle pour ou autre
pour i 1 6 faire
crire(x[i]);
fin pour

M.Machkour

SMP3

178

Initialisation des lments d'un tableau


Utilisation d'une boucle
pour i 1 6 faire
x[i] 1;
fin pour

M.Machkour

SMP3

179

Recherche du maximum d'un tableau de


nombres
max x[1];
pour i 2 6 faire
si max<x[i] alors
max x[i];
finsi
fin pour
M.Machkour

SMP3

180

Recherche du minimum d'un tableau de


nombres
min x[1];
pour i 2 6 faire
si min > x[i] alors
min x[i];
finsi
fin pour
M.Machkour

SMP3

181

Moyenne des lments d'un tableau


som 0;
pour i 1 6 faire
somsom+x[i];
fin pour
moysom/6;

M.Machkour

SMP3

182

Utilisation d'une constante pour nombre


d'lment du tableau
Constante
NB=6;
variables
x[NB]: entiers;

Pour i1 NB faire

Fin pour
M.Machkour

SMP3

183

Lire le nombre d'lments d'un tableau variables


Constante
NB=6;
variables
x[NB]: entiers;

Dbut
lire(n);
//n doit tre <= NB
Pour i1 n faire
opration(x[i]);
Fin pour

M.Machkour

SMP3

184

Une autre notation pour les tableaux


Dclaration
nomTableau (taille) : type;
Exemple
x(100) : entiers;

M.Machkour

SMP3

185

Une autre notation pour les tableaux


(suite)
Accs aux lments
nomTableau (indice)
Exemples
Lire(x(2));
crire(x(3));

M.Machkour

SMP3

186

Exercice
crire un algorithme qui lit les lments
d'un tableau de rels et les affiche.

M.Machkour

SMP3

187

Rponse
Algorithme tableau;
Constant
NB=15;
Variables
tab[NB]:rels;
i, n :entier;
Dbut
Ecrire("Donner le nombre d'lments du tableau: SVP <
=15");
lire(n);
pour i1 n faire
lire(tab[i]);
fin pour
pour i1 n faire
Ecrire(tab[i]);
fin pour
Fin.
M.Machkour

SMP3

188

Tri des lments d'un tableau : tri de slection


On considre les dclarations suivantes
constante NB=6;
variables x[NB] , aux : entiers;
L'algorithme de tri de slection est donn par:

Pour i 1 NB-1 faire


pour j i+1 NB faire
si (x[i]>x[j]) alors
auxx[i];
x[i]x[j];
x[j]aux;
fin si
fin pour
fin pour
M.Machkour

SMP3

189

Fin.

M.Machkour

SMP3

190