Vous êtes sur la page 1sur 58

Universit Abdelmalek

Anne scolaire 2014-2015

ALGORITHMIQUE ET PROGRAMMATION

Raliser par S.Alaoui

ALGORITHMIQUE

ET PROGRAMMATION

1. Notion dalgorithme et instructions de base

2. Structure de contrle de base


3. Langage de programmation matlab

NOTION DALGORITHME ET INSTRUCTIONS


DE BASE

I.

Notion dalgorithme

II. Notion de donnes

III. Les instructions de base


IV. Structure dun algorithme

I. NOTION DALGORITHME
1. Dfinition :
Un algorithme est une suite finie et prcise
dinstructions ou dactions qui doivent tre
excutes dans un ordre dtermin pour
rsoudre un problme.

2. Exemple :
Prparer une tasse de caf :
Faire bouillir de leau
Mettre le caf dans la tasse
Ajouter leau dans la tasse

I. NOTION DALGORITHME

Une description des diffrentes tapes


permettant de rsoudre un problme quelconque
Exemple: rsolution dune quation du 2nd degr

ax 2 bx c 0
1.
2.
3.
4.
5.

Connatre les valeurs de a, b et c


Calculer le discriminant b 4ac
Si D < 0 alors pas de solution
Si D = 0 alors solution double = -b/2a
Si D > 0 alors deux solutions
5

II. NOTION DE DONNES


1. Dfinition :

Les donnes sont des informations


ncessaires au droulement dun algorithme.
On distingue deux catgories de donnes :
Les variables et les constantes.
constantes

II. NOTION DE DONNES


1. Les variables :

Une variable est un objet dont le contenu


peut tre modifi par une action durant le
droulement dun algorithme.

Une variable est caractrise par son


nom, sa valeur et son type.
7

I. NOTION DALGORITHME :
1. LES VARIABLES :
Syntaxe :

Variable

Nom_variable : type ;

Exemple :
Variable
Variable
Variable
Variable

Note_lve : Rel ;
Coefficient : Entier ;
Lettre : Caractre ;
Nom : Chaine de caractre ;

Les variables servent nommer des emplacements


ou adresses de la mmoire
Permettent de manipuler des valeurs sans connatre
leurs emplacements exactes

001

010

011

Montant

Cot machine

Cot programmeur

MC

I. NOTION DALGORITHME

2. LES CONSTANTES :
Une constante est une donne fixe qui
ne varie pas durant lexcution dun
algorithme.

Une constante est caractrise par son


nom et sa valeur.
10

I. NOTION DALGORITHME

2. LES CONSTANTES :
Syntaxe :

Constante

Nom_ Constante = Valeur ;

Exemples :

Constante
Constante
Constante

Pi = 3.14 ;
A = 10 ;
Mois = Janvier;

11

I. NOTION DALGORITHME

3. TYPES DE DONNES :
Le

type dune variable permet

De savoir quel est lespace mmoire occup par


une variable
Quelles sont les oprations autorises sur la
variable

Dclaration

dune variable dans un

algorithme

Variable <nom_variable>: type


Exemple:
Variable Note: Rel
Variable coefficient: entier

12

I. NOTION DALGORITHME

3. TYPES DE DONNES :
Numrique
Type de
donnes

Exemples

Entier
(Sans
virgule)

Rel
(Avec
virgule)

Alphanumrique

caractre

Chaine
de
Caractre)

De -32768 De 2,9X10-39
A, @ ,2
32767
1,7X10+38

AHMED,
AVRIL

Logique
Ou
boolen

Vrai
Faux
13

III.LES INSTRUCTIONS DE BASE

1. La lecture

2. Lcriture
3. Laffectation

14

III.LES INSTRUCTIONS DE BASE


1. La lecture :
La lecture est une instruction qui permet de
lire les donnes tapes par le clavier.
Syntaxe :
Lire (variable) ;
Lire (variable1, variable2) ;
Exemples :
Lire (A) ;
Lire (Note1, Note2) ;

15

III.LES INSTRUCTIONS DE BASE


2. Lcriture :
Lcriture est une instruction qui permet
dafficher des donnes sur lcran et de
communiquer avec lutilisateur.
Syntaxe :

Ecrire (message) ;
Ecrire (message, variable);
Exemples :
Ecrire (Bonjour) ;
Ecrire (Note1, Note2) ;

16

III.LES INSTRUCTIONS DE BASE


3. Laffectation :
Laffectation est une opration qui consiste
attribuer une valeur une variable.
Elle est
reprsente par une flche oriente gauche.
Syntaxe :
A valeur ;
A Expression ;
Exemple :

A 2;
A A+1;
B M;

17

IV.STRUCTURE DUN ALGORITHME :

Len-tte

Nom dalgorithme
Donnes

La partie dclarative
Le bloc instructions.
Corps dalgorithme
18

IV.STRUCTURE DUN ALGORITHME :

} En-tte

Algorithme

Somme ;

Variable

A, B, S : Entier ; }

Partie dclarative
(des donnes)

Dbut
Ecrire ( Entrer deux nombres ) ;
Lire (A, B) ;
S A+ B ;
Ecrire ( La somme des deux nombres est : , S) ;
Fin

Bloc
instructions

19

STRUCTURE DE CONTRLE DE BASE

I.

Structure de contrle de base

II.

La structure squentielle :

III. La structure slective


1.

Alternative complte (Deux choix)

2.

Alternatives imbriques (Plusieurs choix)

3.

Choix multiple

20

STRUCTURE DE CONTRLE DE BASE


1.

La structure squentielle :
La structure squentielle est une structure dont les
instructions sont excutes lune aprs lautre de faon
ce que lordre des instructions est respect.

Exemple :
Un algorithme qui calcule la division de deux nombres
Algorithme Division ;
Variable A, B, D : rel ;
Dbut
Ecrire ('Donnez deux nombres : ') ;
Lire (A, B) ;
D A/B ;
Ecrire ('Le rsultat de la division de ', A, 'par ', B, ' est : ',D) ;
Fin.

21

1.

La structure slective
La structure slective est une structure dont les
instructions sont excutes selon les rponses des
conditions.

a)

Alternative Simple (Un choix)

Syntaxe :

Si

Condition
Alors
Instructions ;

Fin si
22

a)

Alternative complte (Deux choix)

Syntaxe :
Si

Condition
Alors
Instructions ;

Sinon
Instructions ;

Fin si

23

Alternatives imbriques (Plusieurs


choix)

a)

Syntaxe :

Si

Condition1
Alors
Si
Condition2
Alors
Instructions ;
Sinon
Instructions ;
Fin si
Sinon
Si
Condition3
Alors
Instructions ;
Sinon
Instructions ;
Fin si
Fin si
24

Exemple :

Un algorithme qui calcule la Moyenne de deux


notes dun lve et affiche le rsultat (Admis ou
Non admis) et la mention (Passable, Assez bien
ou Bien) de cet lve.

25

Algorithme
Variable

Bulletin ;
N1, N2, M : Rel ;

Dbut
Ecrire ( Entrer deux notes : ) ;
Lire (N1 , N2) ;
M (N1+ N2)/2 ;
Ecrire ( La moyenne de llve est : , M) ;
Si M >=10 alors
Ecrire( Admis);
Si M<12 alors
Ecrire(Mention : Passable);
Sinon
Si M<14 alors
Ecrire(Mention : Assez bien);
Sinon
Ecrire(Mention : bien);
Finsi
Finsi
Sinon
Ecrire(Non admis);
Finsi
Fin

26

Exemple :
Choix multiple :

Exemple :

Syntaxe :
Cas

Expression

Cas
Vaut

Val1: instruction1;
Val2: instruction2;
Val3: instruction3;
.
Autre : instructions;
FinCas

numro_lve

Vaut

1: Ecrire(Imane);
2: Ecrire(Anass);
3: Ecrire(Jalal);
4: Ecrire(Karima);
.
Autre : Ecrire(Les
numros
sont
compris entre 1 et 34);

FinCas

27

I.

Evaluation d'une expression logique

II.

Notation et Ordre de priorit des oprateurs logiques

III. Tableaux d'valuations

IV. Les structures REPETITIVES


1.

La boucle POUR

2.

La boucle Rpter Jusqu'

3.

La boucle TANT QUE


28

I.

EVALUATION D'UNE EXPRESSION LOGIQUE


Une condition est une expression de type logique.
Ils lui correspondent deux valeurs possibles

VRAI et FAUX qu'on note par V ou F.


A et B : variables logiques .
(A = faux) non A
(A = vrai)
A

Les oprateurs logiques sont :


1.
2.
3.

La ngation : "non"
L'intersection : "et"
L'union : "ou"

29

II. NOTATION ET ORDRE DE PRIORIT DES


OPRATEURS LOGIQUES

1. non :
2. et : ^
3. ou : v
Tableaux d'valuations
La ngation d'une condition

Non A

Vrai

Faux

Faux

Vrai

30

III.TABLEAUX D'VALUATIONS
L'intersection de deux
conditions

L'union de deux
conditions

31

IV. LES STRUCTURES REPETITIVES


1) LA BOUCLE POUR
Cette structure exprime la rptition d'un traitement un
nombre de fois.

Syntaxe :

POUR Val_c
DE Val_initial A Val_final [PAS: Val pas]
FAIRE
<Traitement>
FINFAIRE

32

APPLICATION
Ecrire l'algorithme qui permet de saisir les moyennes
des N tudiants de la classe Informatique et de calculer
la moyenne gnrale de la classe.
Rsolution
Sans les boucles, on est oblig de dclarer N variables, et
d'crire N actions LIRE.

LIRE(note)
S S + MOY
LIRE(MOY)
S S + MOY

..

33

ALGORITHME MOYENNE ;
VAR i, N : entier ;
MOY, MC : rel ;
DEBUT
ECRIRE("Donner le nombre
d'tudiants");
LIRE(N);
SI (N > 0) ALORS
S 0 {Initialisation de S}

POUR i DE 1 A N FAIRE
ECRIRE("Donner la moyenne
de l'tudiant n", i) ;
LIRE(MOY) ;
S S + MOY

FIN FAIRE
MC S / N
ECRIRE("La moyenne de la
classe est : ", MC) ;
SINON
ECRIRE("Erreur dans le
nombre d'tudiants") ;
FINSI
FIN

Remarque Juste Avant le FIN FAIRE, le


changement de la valeur de i se fait
automatiquement.
34

PROBLEME :
ECRIRE L'ALGORITHME QUI PERMET D'AFFICHER TOUS LES NOMBRES
PAIRS QUI EXISTENT ENTRE 1 ET 10.

1ire solution

2ime solution

3ime solution

POUR i de 2 10 POUR i de 2 10 POUR i de 1 5


pas 2
Faire
Faire
Faire
SI (i mod 2 = 0)
ECRIRE(2*i)
ALORS
ECRIRE(i)
FINFAIRE
ECRIRE(i)
FINFAIRE
FINSI
FINFAIRE

35

2)

LA BOUCLE RPTER JUSQU'

Syntaxe :
Rpter
<Traitement>
Jusqu' (condition d'arrt)

Cet ordre d'itration permet de rpter le


<Traitement> une ou plusieurs fois et de s'arrter sur
une condition. En effet, lorsque la condition est
vrifie, la boucle s'arrte, si non elle rexcute
le <Traitement>.

36

EXERCICE

Ecrire

un algorithme qui
saisit un nombre pair et
qui dtermine combien de
fois il est divisible par 2.
Exemple 8 est divisible 3
fois par 2 (2*2*2).
37

La fonction DIV
permet de donner le rsultat de la division
entire dun nombre par un autre.
exemple 7 DIV 2 = 3

La fonction MOD (se lit Modulo),


permet de donner le reste de la division
entire dun entier par un autre.
exemple 7 MOD 2 = 1

38

ALGORITHME PAIR-NBDIV2 ;
VAR N, N2 : entier ;
DEBUT
{Saisie d'un entier qui doit tre pair}

Rpter
ECRIRE("Donner un entier pair") ;
LIRE(N) ;
Jusqu' (N MOD 2 = 0)
{condition pour que N soit pair}
{Dtermination du nombre de division par 2

N2 0 ;
NB N ;
Rpter
NB NB div 2 ;
N2 N2 +1 ;
Jusqu' (NB MOD 2 <> 0) {On s'arrte lorsque NB n'est plus divisible par 2}
ECRIRE(N, "est divisible par 2", N2,"fois")
FIN

39

3)

LA BOUCLE TANT QUE

Syntaxe :
TANT QUE (condition d'excution)
FAIRE
<Traitement>
FIN FAIRE

Cet ordre d'itration permet de rpter le <Traitement> zro


ou plusieurs fois et de s'arrter lorsque la condition
d'excution n'est plus vrifie. En effet, lorsque la condition
d'excution est vrifie, le <Traitement> est excut, si non
elle s'arrte.
40

Problme
Calculer la moyenne de 30 lves et Effectuer leur classement

Rponse
pour i de 1 30
faire
Ecrire (" Donner la moyenne de l'tudiant N",i)
Lire (moyenne)
Fin faire

Conclusion :
On ne peut pas effectuer le classement
Pourquoi ? Parce qu'on ne garde pas les moyennes
prcdentes et la variable moyenne contient uniquement la
dernire valeur.
41

I.

Utilisation des tableaux

II.

Les vecteurs

III. Les matrices


IV. LES ALGORITHMES DE TRI
1.

Tri par slection

2.

Tri par slection et permutation


42

I. UTILISATION DES TABLEAUX

Intrt Gain de temps,


rtrcissement du volume de l'algorithme et
possibilit de rutilisation de toutes les
valeurs ultrieurement dans l'algorithme.
Il est plus convenable, alors, de dfinir un
espace mmoire quon appelle MOY qui sera
divis en 30 parties quitables, indices de 1
30.
43

MOY[i]
i indice dun lment du vecteur variable qui
indique le nom du vecteur
MOY[i] : reprsente llment du vecteur MOY
occupant le rang " i ".

Lindice peut tre :


Une constante MOY[5]
Une variable MOY[i]
Une expression MOY[i*2]
44

On dfinit un tableau de 30 cases une seule


dimension quon appelle VECTEUR

ALGORITHME MOYENNE
CONST Bi=1
Bs=30
VAR T : Tableau [bi..bs] de rel
i : entier
45

II. LES VECTEURS


Un vecteur est une partie de mmoire contenant
n zones variables rfrences par le mme nom
de variable pour accder un lment particulier
de ce vecteur.
On indice le nom de variable. Lindice peut tre
une constante, une variable ou une expression
arithmtique.

46

ALGORITHME Vecteur ;
CONST N = 30 ;
VAR MOY : Tableau[1..N] de rels
Dbut
Pour i de 1 N
Faire
Ecrire (" donner la moyenne de
ltudiant N " , i ) ;
Lire ( MOY [i]) ;
Fin Faire
SMOY 0
Pour i de 1 N
Faire
SMOY SMOY+MOY[i]
Fin Faire

SMOY SMOY / 30
Ecrire (" la moyenne du groupe est ",
SMOY )
Pour i de 1 N
Faire
Ecrire (" la diffrence de la moyenne
du groupe et celle de ltudiant ",i , "
est= ", SMOY-MOY[i])
Fin Faire
Fin

47

III.LES MATRICES
Les matrices sont les tableaux deux dimensions.
L'lment d'indice [i,j] est celui du croisement de la ligne i
avec la colonne j M[3,2] est -6

-5

-1

-6

-3

-2

10

48

IV. LES ALGORITHMES DE TRI


1)

Tri par slection

Utiliser un vecteur VT (vecteur tri) comme vecteur


rsultat. Celui ci contiendra les lments du vecteur
initial dans l'ordre croissant.

49

Le principe est de :
0- Chercher le plus grand lment dans le vecteur initial V
1- Slectionner le plus petit lment dans V
2- Le mettre dans son ordre dans le vecteur VT

3- Le remplacer par le plus grand lment dans le vecteur initial


(pour qu'il ne sera plus le minimum)
4- Si le nombre d'lments dans le vecteur rsultat n'est pas
identique celui dans le vecteur initial Retourner l'tape 1
Sinon on s'arrte.
50

Exemple
Soit le vecteur V contenant 4 lments.
ALGORITHME TRI_SELECTION ;
CONST Bi = 1 ,Bs = 10 ;
VAR V, VT : Tableau[Bi..Bs] de rel ;
N, i, j, indmin : entier ;
MIN, MAX : rel ;

DEBUT
{Chargement du vecteur V}
MAX V[1] ;
Pour i de 2 N
FAIRE
Si

MAX < V[i] Alors


MAX V[i] ;

FINSI
FINFAIRE

51

POUR i de 1 N-1 FAIRE


MIN V[1] ;
indmin 1 ;
Pour j de 2 N faire
Si MIN > V[j] ALORS
MIN V[j] ;
Indmin j ;

Fin si

Fin Faire
VT[i] MIN ;
V[indmin] MAX ;
Fin Faire
VT[N] MAX
FIN
Peut-on amliorer cet algorithme ?

52

1)

TRI PAR SLECTION ET PERMUTATION

Il s'agit ici d'viter la construction d'un second


vecteur et d'utiliser un seul vecteur initial qui sera
tri.
Supposons traits n-i (1 <= i < N) lments du
vecteur.

53

ALGORITHME SLECTION_PERMUTATION ;
CONST Bi = 1 ,Bs = 10 ;
VAR V : Tableau[Bi..Bs] d'entier
N, i, j : entier
DEBUT
{Chargement du vecteur V}

Pour i de N 2 Faire {Recherche de l'indice du maximum dans V[1..i]}


indmax 1 ;
Pour j de 2 i FAIRE
Si V[indmax] < V[j] Alors
indmax i ;
FIN SI
FIN FAIRE
{Mettre le maximum relatif trouv sa place}
Si indmax <> i Alors
Aux V[indmax] ;
V[indmax] V[i] ;
V[i] Aux ;
Fin Si
54
Fin Faire

LANGAGE DE PROGRAMMATION (MATLAB)

Programmation :
La programmation est l'ensemble des activits
qui permettent l'criture des programmes
informatiques.

55

Programme informatique :
Un programme est un ensemble dinstructions
dfinissant les oprations qui devront tre
excutes par lordinateur pour rsoudre un
problme.

56

Langage de programmation :
Un langage de programmation est un langage
comprhensible par la machine, qui permet
d'crire des programmes.
Exemples :
Pascal,
C,
Java,
matlab,
C++

57

Merci
58

Vous aimerez peut-être aussi