Sunteți pe pagina 1din 30

08/10/2017

Rvision
ALGORITHME ET STRUCTURE DE DONNES

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 1

Introduction la programmation
Programme
Est un texte consistu dun ensemble de directives, appeles instructions qui
spcifient :
Les oprations lmentaires excuter
La faon dont elles senchainent

Variable
En programmation, une variable est un identificateur qui sert reprer un
emplacement donn de la mmoire centrale. Cette notion nous permet de
manipuler des valeurs sans nous proccuper de lemplacement quelles
occupent effectivement en mmoire.

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 2


08/10/2017

Remarque
La lisibilit des programmes dpend troitement du choix des noms des variables qui
doivent tre simple et significatifs.
Comme tout identificateur, le nom dune variable est form dune ou de plusieurs lettres ;
les chiffres sont galement autoriss, condition de ne par les mettre au dbut du nom.
Lettre

Lettre

Lettre

Exemple :
NomVariable ; Nom6variable ; nom_variable
08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 3

Constant
Les constant sont des donnes dont la valeur reste fixe durant lexcution du
programme.
Exemple
Pi= 3.14 g= 9.80

Type
A chaque variable utilise dans le programme, il faut associer un type qui permet de
dfinir :
Ensemble des valeurs qui peut prendre la variable.
Ensemble des oprations quon peut appliquer sur la variable
La syntaxe de laction de dclaration est la suivant :
Variable1, Variable 2, : Type
Les diffrents types : entier, rel, caractre, chane de caractres, boolen

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 4


08/10/2017

1. Type Entier
Une variable est dite entire si elle prend ses valeurs dans Z (ensemble des entiers
relatifs) et quelle peut supporter les oprations suivant :

Opration Notation
Addition +
Soustraction -
Multiplication *
Division entire div
Modulo (reste de division) mod

Exemple : 13 div 5 = 2
13 mod 5 =3

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 5

2. Type rel ou dcimal


Il existe types de rels reprsentant chacun un ensemble particulier de valeurs prises dans
IR (ensemble des nombres rels).
Il existe deux formes de reprsentation des rels :
La forme usuelle avec le point comme symbole dcimal.
Exemple : 12.7 +25.18 -3.246
La notation scientifique selon le forme aEb, ou
- a est la mantisse, qui scrit sous une forme usuelle
- b est lexposant reprsentant un entier relatif.
Exemple : 347 = 3.47E2 =0.347E+3 = 3470E-1=.
Les oprations dfinies sur les rels sont :
Opration Notation
Addition +
Soustraction -
Multiplication *
Division (rel) /

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 6


08/10/2017

3. Type de caractre
un caractre peut appartenir au domaine des chiffres de 0 9 des lettres
minuscules et majuscules et des caractres spciaux ( * / { # .)
Un caractre sera toujours not entre des guillemets. Un caractre espace (blanc)
sera not
Les oprateurs dfinis sur les donnes de type caractre sont :
LA comparaison entre les caractres se fait selon leur code ASCII.

Exemple
< 0 < 1 < A < B < a < b < {
Opration Notation
Egale =
Diffrent #
Infrieur <
Infrieur ou gale <=
Suprieur >
Suprieur ou gal >=

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 7

4. Type logique ou boolen


Une variable logique ne peut prendre que les valeurs Vrai ou Faux .Elle intervient
dans lvaluation dune condition.
Les principales oprations dfinies sur les variables de type logique sont :
la ngation (NON),
lintersection (ET)
et lunion (OU).
Lapplication de ces oprateurs se fait conformment la table de vrit suivant :

Tableau de vrit des oprateurs logiques

A B NON(A) A ET B A OU B
Vrai Vrai Faux Vrai Vrai
Vrai Faux Faux Faux Vrai
Faux Vrai Vrai Faux Vrai
Faux Faux vrai Faux Faux

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 8


08/10/2017

Remarque
En plus de ces types prdfinis, le programmeur a la possibilit de dfinir
lui-mme de nouveaux types en fonction de ses besoins.

Exemple :
Types Le programme nacceptera que des notes
Tnote = 0..20 valides. De mme, la variable s de type
Saison = (A, H, P,E) saison ne pourra prendre que les valeurs
Variables A, H, P,E.
Note : Tnote
S : Saison

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 9

Les expressions
Ce sont des combinaisons entre des variables et des constantes laide doprateurs.
Elles expriment un calcul (expressions arithmtiques) ou une relation (expressions
logique).
1. Les expressions arithmtiques
Lordre selon lequel se droule chaque opration de calcul est important. Afin
dviter les ambiguts dans lcriture, on se sert des parenthses et des relations de
priorit entre les oprateurs arithmtiques :
Ordre de priorit des oprateurs arithmetiques

Priorit Oprateurs
1 - Signe ngatif
2 () parenthse
3 ^ puissance
4 * et / Multiplication et division
5 + et - Addition et soustraction
En cas de conflit entre deux oprateurs de mme priorit, on commence par celui situ
le plus gauche.
08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 10
08/10/2017

2. Les expressions logiques


Ce sont combinaisons entre des variables et des constantes laide doprateurs
relationnels (=,<,<=,> ,>=,#) et/ou des combinaisons entre des variables et des constantes
logiques laide doprateurs pour rsoudre les problmes de conflits.

Priorit Oprateur Priorit oprateur


1 >
1 NON 2 <=
2 ET 3 <
3 OU 4 >=
Oprateurs logiques 5 =
6 #
Oprateurs relationnels

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 11

Exercices
Exercice 1 :
Quel est lordre de priorit des diffrents oprateurs de lexpression suivante :

((3 * a) - x ^ 2 ) - ((( c - d ) / ( a / b )) / d)

Evaluer lexpression suivante :

5 + 2 * 64+( 8 + 2 ^ 3) / ( 2 -4 + 5 * 2 )

Ecrire la formule suivante sous forme dune expression arithmtique

Exercice 2 :
Sachant que a=4, b=5, c=-1, d=0 valuer les expressions logique suivant :

(a-b) ET < (c >= d)

NON (a<b) OU < (c # d)

NON ((a#b^2) OU < (a*c < d))

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 12


08/10/2017

Les instructions simples


Linstruction daffectation

Le rle de cette instruction consiste placer une valeur dans une variable. Sa
syntaxe gnrale est la forme :

Variable Expression

Exemple :
A6 : mettre la valeur 6 dans la case mmoire identifie par A.
B (A + 4 ) Mod 3 ) : Range B la valeur 1.

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 13

Remarque
La valeur ou le rsultat de lexpression droite du signe daffectation
doit tre de mme type compatible avec celui de la variable gauche.

Exemple
A5
B3
CA+B
A2
CB-A

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 14


08/10/2017

Linstruction dcriture : Communication Programme Utilisateur

Pour quun programme prsente un intrt, il devra pouvoir nous


communiquer un certain nombre dinformations (rsultats) pour lintermdiaire dun
priphrique de sortie comme lcran ou limprimante.

Ecrire (expression1, expression2,)

Exemple
X4
Ville Tunis
Ecrire(x) 4
Ecrire(x*x) 16
Ecrire (Ville) Ville
Ecrire (Ville =,Ville) Ville= Tunis

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 15

Linstruction de lecture : Communication Utilisateur Programme


Dans certain cas, nous pourrons tre amens transmettre des informations (donnes)
notre programme par lintermdiaire dun priphrique dentre comme le clavier.
Cela sera ralis par linstruction de lecture.

Lire(variable2, variable3,)

Exemple

Lire (A) Lire une valeur partir du priphrique dentre, qui est le clavier
par dfaut, et la ranger dans la variable identifie par A

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 16


08/10/2017

Structure gnrale dun algorithme


Algorithme Nom_algorithme
Constantes
C1 = Valeur1

Types
Type1 = dfinition du type

Variables
V1 : Type 1

Dbut
Instruction 1

Fin

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 17

Remarque

1. Les nouveaux types doivent tre dclars Types


2. Toute variable utilise dans lalgorithme doit tre pralablement
dclare.
3. Les instructions places entre Dbut et fin forment le corps
principal de lalgorithme.
4. Seules les parties Entte et corps de lalgorithme sont
obligatoires.
5. Lindentation qui consiste insrer des tabulations avant les objets
dclars et les instructions offre une meilleure lisibilit de
lalgorithme et le retard, par consquent, plus facile comprendre et
corriger.

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 18


08/10/2017

Exercices
Excercice1 Algorithme Incorrect
Donner toutes les raisons pour lesquelles lalgorithme suivant est incorrect : x,y : Entier
z : Rel
Dbut
z x + 2
y z
x*2 3 + z
y 5y + 3
Fin
Exercice 2
Ecrire un algorithme qui lit deux entiers au clavier et qui affiche ensuite leur somme e leur produit.
Exercice 3
Ecrire un algorithme qui calcule et affiche la rsistance dun composant lectrique en utilisant la loi
dOhm.
U=Rx1 Avec U : Tension en V
R : Rsistance en
I : Intensit en A

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 19

Les structures conditionnelles


Deux structures de traitement conditionnel savoir :
La structure de slection simple dans laquelle on a choisir entre deux traitements au plus
La structure de slection multiple dans laquelle on a la possibilit de choisir un traitement
parmi plusieurs.

1. Structure de slection simple


a) Forme simple
Cette primitive a pour effet dexcuter la squence dinstruction si et seulement si la condition
est vrifier.

Si <Condition> Alors
<Squence dinstructions>
FinSi

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 20


08/10/2017

Lexcution de cette instruction se droule selon lorganigramme suivant :

Schma d'excution d'une instruction conditionnelle simple

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 21

Exemple
Ecrire un algorithme qui calcule le salaire dun employ partir du nombre dheures travaills, du taux
horaire et du nombre dannes de service. Les employs ayant une anciennet de plus de 10 ans bnficient
dune allocation supplmentaire de 45 D.
Analyse du problme
1. Donnes du problme
Nh : nombre dheures travailles
Th : taux horaire (en dollar)
Anc : anciennet (en Anne)
2. Rsultat recherch
Salaire : salaire net de lemploy (en dollar)
3. Comment faire ?
Salaire nh * th
Si (anc > 10 ) Alors
Salaire salaire +45
Finsi

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 22


08/10/2017

Solution

Algorithme Calc_Salaire
Variables
Nh,th,anc, salaire : Rel
Dbut
Ecrire (Nombre dheures travailles : ) Lire (nh)
Ecrire (Taux horaire :) Lire (th)
Ecrire (Anciennet :) Lire (anc)
Salaire nh * th
Si (anc > 10 ) Alors
Salaire salaire + 45
FinSi
Ecrire (Salaire de lemploy = , salaire)
Fin

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 23

1. Structure de slection simple


b) Forme alternative
Cette primitive a pour effet dexcuter la premire squence dinstruction si la condition est
vrifie ou bien la deuxime squence dinstructions dans le cas contraire.
Si <Condition> Alors
<Squence dinstructions 1>
Sinon
<Squence dinstructions 2>
FinSi

Lexcution de cette instruction de droule selon lorganigramme suivant :

Schma d'excution d'une instruction conditionnelle alternative

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 24


08/10/2017

Exemple
Ecrire un algorithme qui calcule et affiche la valeur absolue dun entier quelconque lu au clavier.

Solution Algorithme Val_Abs


Variables
X,va : Entier
Dbut
Ecrire (Entrer un entier : ) Lire (x)
Si (X>=0) Alors
Va x
Sinon
Va -x
FinSi
Ecrire (|,X,|=, va)
Fin

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 25

2. Structure de slection multiple


Syntaxe gnrale
Selon <slecteur> Faire
Liste de valeurs 1 : <Squence dinstructions 1 >
Liste de valeurs 2 : <Squence dinstructions2 >

Liste de valeurs n : <Squence dinstructions n >
Sinon
<Autre squence dinstruction>
FinSelon

La squence dinstructions numro i sera excute si la valeur du slecteur appartient la ime liste de valeurs.
Le slecteur est une variable ou une expression de type scalaire (le rsultat est un entier ou un caractre).

Exercice :
Ecrire un algorithme qui permet de lire un numro compris entre 1 et 12 et dafficher le nom du mois correspondant.
Si le numro entr est dehors de cet intervalle, un message derreur doit tre affich.

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 26


08/10/2017

Solution

Algorithme mois
Variables
N : Entier
Dbut
Ecrire (Entrer le numro du mois : ) Lire (n)
Selon n Faire
1 : Ecrire (Janvier )
2 : Ecrire (Fvrier )

12 : Ecrire (d)
Sinon
Ecrire (numro de mois erron )
FinSelon
Fin

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 27

Avec la structure de slection simple Si Sinon


Algorithme mois
Variables
N :Entier
Dbut
Ecrire (Entrer le numro du mois : ) Lire (n)
Si (n = 2 ) Alors
Ecrire (Janvier)
Sinon
Si (n=2) alors
Ecrire (fvrier)
Sinon
Si (n= 3) Alors
Ecrire (Mars)
Sinon
Si (n= 4 ) Alors

Fin

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 28


08/10/2017

Exercices
Exercice 1
Ecrire un algorithme permettant de rsoudre dans IR une quation du seconde degr de la
forme ax+bx + c = 0.
Exercice 2
Ecrire un algorithme permettant de simuler une calculatrice 4 oprations (+,-,*, et /). Utiliser la
structure selon pour le choix de lopration effectuer.
Exercice 3
Ecrire un algorithme qui lit un caractre au clavier puis afficher sil sagit dune lettre minuscule,
dune lettre majuscule, dun chiffre ou dun caractre spcial.

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 29

Les structures de contrles rptitives


Activits

crire un algorithme qui permet dafficher 3 fois le texte Je suis un


ingnieur
Modifier cet algorithme pour afficher 1000 fois le mme texte.
crire un algorithme qui permet de calculer et dafficher la moyenne gnrale
dun tudiant (chaque tudiant possde deux notes ayant les coefficients
respectives c1=1 et c2=1.5 ).
Modifier cet algorithme afin de calculer et dafficher la moyenne gnrale de
40 lves.
Cest quoi le problme ???

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 30


08/10/2017

Rponse
Trop dobjets
Pour cela on a besoin de : dclarer
40 cases mmoires pour saisir note1,
40 cases mmoires pour saisir note2,
40 cases mmoires pour la moyenne gnrale. Gaspillage de
mmoire
Les mmes actions se rptent 40 fois:
Saisie de note1,
Saisie de note2,
Calcul de la moyenne,
Affichage de la moyenne.

SOLUTION : Utilisation dune structure rptitive (itrative) qui


permet de rpter ce traitement plusieurs fois

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 31

Les structures rptitives, appeles aussi les boucles, permettent de rpter


plusieurs fois l'excution dun bloc dinstructions. Chaque excution, appele
aussi itration, est conditionne par un test.

On distingue trois types de structures savoir:


Pourfaire
Tantquefaire
RpterJusqu

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 32


08/10/2017

La structure Pour faire


La syntaxe de la structure Pour faire est la suivante :

Pour Compteur de ValDbut ValFin [pas de ValPas] faire


action
Fin pour

Compteur: Une variable qui sert compter le nombre des itrations.


ValDbut: Cest la valeur initiale du Compteur.
ValFin: Cest la valeur finale du Compteur.
ValPas: Une constante qui prcise la valeur ajouter ou retrancher du Compteur lors de chaque
itration. Par dfaut, la valeur du Pas est gale 1.

Il ne faut jamais modifier la valeur du Compteur l'intrieur de la boucle Pour faire

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 33

Le compteur (variable de contrle) prend la valeur initiale au moment daccs la


boucle puis, chaque parcours, il passe automatiquement la valeur suivante dans
son domaine jusqu atteindre la valeur finale

Schma dexcution dune boucle Pour

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 34


08/10/2017

Remarques
On ne peut utiliser la boucle Pour que si on connat au pralable
combien de fois le traitement sera excut.
Le nombre de Le traitement est gal : Vf-Vi+1.
Le compteur de la boucle Pour est incrment ou dcrment
automatiquement.

Exercice
crire un algorithme qui permet de calculer la factorielle de 5

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 35

Solution
Algorithme factorielle_5_Solution_1 Algorithmefactorielle_5_Solution_2
Varaibles Varaibles
Fact, cpt : entier Fact, cpt : entier
Dbut Dbut
Fact 1 Fact1
Pour cpt de 2 5 faire Pour cpt de 5 2 Pas De -1 faire
fact fact*cpt fact fact*cpt
Fin pour Fin pour
crire (la factorielle de 5 est, fact) crire (la factorielle de 5 est, fact)
Fin Fin

Dans ce cas, le compteur cpt sera dcrment


aprs chaque itration
08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 36
08/10/2017

La structure Tant que faire


Le nombre ditrations de cette boucle nest pas connu d'avance. Le traitement de la
boucle ne sarrte que si la condition nest plus vrifie(ou satisfaite).
La syntaxe de la boucle Tantquefaire est la suivante:

Tant que (condition) faire


Traitement
Fin tantque

La condition de la boucle peut tre compose et laction rpter peut tre une
instruction unique ou un ensemble dinstructions.

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 37

Le fonctionnement de la boucle Tantque faire est le suivant:

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 38


08/10/2017

Le principe est simple: le programme arrive sur la ligne du TantQue. Il


examine alors la valeur du boolen (qui, peut tre une variable boolenne
ou, plus frquemment, une condition).

Si cette valeur est VRAI, le programme excute les instructions qui suivent,
jusqu ce quil rencontre la ligne Fin tant que. Il retourne ensuite sur la
ligne du TantQue, procde au mme examen, et ainsi de suite. La boucle ne
sarrte que lorsque la variable boolenne prend la valeur FAUX.

Il doit exister une ou plusieurs instructions l'intrieur de la boucle qui


permettent de modifier le rsultat de l'valuation de la condition afin de
pouvoir arrter l'excution de la boucle.

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 39

Une boucle Tant Que peut sexcuter 0, 1 ou n fois.

Avant dentrer dans la boucle TantQue, vous devez vous assurer que la
condition a t initialise. Si linitialisation na pas t faite, le traitement
itratif risque de ne pas tre excut.

Il doit exister une ou plusieurs instructions l'intrieur de la boucle qui


permettent de modifier le rsultat de l'valuation de la condition afin de
pouvoir arrter l'excution de la boucle.

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 40


08/10/2017

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 41

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 42


08/10/2017

La structure Rpter jusqu


La structure Rpterjusqu est utilise lorsquon a besoin d'avancer
lexcution des instructions de la boucle par rapport sa condition. Lexemple
type de lutilisation de cette boucle est le contrle de saisie de la valeur d'une
variable.
La syntaxe de la structure Rpterjusqu est la suivante:
Rpter Traitement
Jusqu
(Condition)

La condition de la boucle peut tre compose et l'action rpter peut tre une
instruction unique ou un ensemble d'instructions.

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 43

Le fonctionnement de la structure Rpterjusqu est le suivant:

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 44


08/10/2017

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 45

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 46


08/10/2017

La structure RpterJusqu est utilise dans le cas o:


o On a une rptition dune suite dinstructions, un nombre de fois inconnu
lavance dont larrt est gr par une condition.
o On est sur que le traitement itratif sexcutera au moins une fois.

La condition darrt est considre comme une condition de sortie car, une
fois elle est vrifie, on quitte la boucle sinon on itre encore jusqu ce
quelle passe a ltat vrai.

La condition darrt peut tre simple ou compose. Elle est dite compose si
plusieurs conditions sont a vrifier simultanment.

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 47

Contrairement une boucle pour, dans une boucle rpter,


linitialisation et lavancement du compteur doivent tre grs
manuellement par le programmeur.

Dans une boucle rpter, il faut toujours sassurer que la condition


de sortie sera vrifie aprs un nombre fini de parcours. Sinon, cest
une boucle infinie.

Les caractristiques de la boucle RpterJusqu en font une


structure adapte pour le contrle de la saisie des donnes. On rpte
la saisie jusqu ce que les contraintes spcifies dans lnonc du
problme soient respectes.

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 48


08/10/2017

Exercice
crire un algorithme qui permet de lire la note dalgorithmique (N_Algo) et la note des
mathmatiques(N_Math) et de calculer la moyenne gnrale (M_generale).
Les lectures doivent tre contrles.
AlgorithmeMoyenne
Variables
N_Algo, N_Math, M_generale: Rel
Dbut
Rpeter
ecrire("donner la note dalgorithmique")
lire (N_Algo)
Jusqu((N_Algo>=0) ET (N_Algo<=20))
Rpeter
ecrire("donner la note des mathmatiques")
lire (N_Math)
Jusqu((N_Math>=0) ET (N_Math<=20))
Fin

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 49

Diffrences entre les 3 types de boucles


Laboucle PourFinPour est destine au cas particulier o lon
connat par avance le nombre de rptition.
La boucle RpterJusqu est semblable la boucle
Tantque...FinTantque, la diffrence qu'elle teste la valeur de
lexpression boolenne aprs l'excution de la boucle et non avant.
La boucle RpterJusqu est toujours excute au moins une
fois, par contre si la condition boolenne est initialement FAUX, la
boucle Tantque...FinTantque ne sexcute jamais.

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 50


08/10/2017

SOUS-PRIOGRAMMES
INTRODUCTION
o La conception d'un algorithme procde en gnral par des affinements
successifs.
o On dcompose le problme rsoudre en sous-problmes jusqu' obtenir des
problmes faciles rsoudre.
oPour chacun des sous-problmes, on crit un module appel sous-programme.
o La rsolution du problme sera compose d'un algorithme principal et d'un
certain nombre de sous-problmes.
oL'algorithme principal a pour but d'organiser l'enchanement des sous-
programmes.

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 51

o L'intrt de l'analyse modulaire est:

- Rpartir les difficults entre les diffrents sous problmes


- Faciliter la rsolution d'un problme complexe
- Amliorer la qualit d'criture du programme principal
- Minimiser l'criture du code source dans la mesure o on utilise la
technique de la rutilisation.

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 52


08/10/2017

DEFINITION ET SYNTAXE
1. DEFINITION

Un sous-programme est une unit fonctionnelle forme d'un bloc d'instructions et ventuellement
paramtr, que l'on dclare afin de pouvoir l'appeler par son nom en affectant des valeurs ses
paramtres (s'ils existent).

Les donnes fournies au sous-programme et les rsultats produits par ce dernier sont appels des
arguments ou des paramtres.

Un sous-programme peut tre une procdure ou une fonction.

Une procdure est un sous-programme ayant un nombre de paramtres, contenant un certain


nombre d'instructions et admettant zro ou plusieurs rsultats.

Une fonction est un sous-programme ayant un nombre de paramtres, contenant un certain nombre
d'instructions et admettant au maximum un rsultat unique affect son nom.

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 53

2. SYNTAXE
La syntaxe de dfinition d'une fonction est:

FONCTION <Nom_Fonction> (<Paramtres_Avec_Types_Et_Genres>) :<Type_Valeur_Retour>


Dbut Fonction
<Dclaration des variables>
<Instructions>
Retourner <Resultat>
Fin Fonction

La syntaxe de dfinition d'une procdure est:

PROCEDURE <Nom_Procdure> (<Paramtres_Avec_Types_Et_Genres>)


Dbut procdure
<Dclaration des variables>
<Instructions>
Fin procdure

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 54


08/10/2017

GENRES DES PARAMETRES

Il existe trois genres de paramtres:

Un paramtre donn:
un paramtre qui contient une valeur avant l'excution du sous-programme.
En cours d'excution, la valeur ne change pas et reste inchange jusqu' la fin de l'excution.
On le symbolise par DON.

Un paramtre rsultat:
il s'agit d'un paramtre qui ne contient pas de valeur avant l'excution du sous-programme.
En cours d'excution, une valeur est affecte ce paramtre afin d'tre garde pour la fin
d'excution.
On le symbolise par RES.

Un paramtre donn/rsultat:
il s'agit d'un paramtre qui contient une valeur avant l'excution du sous-programme.
Cette valeur change en cours d'excution.
Le paramtre aura une valeur la fin qui n'est pas gale celle de dbut d'excution.
On le symbolise par DONRES.
08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 55

APPEL DE SOUS-PROGRAMME

L'appel d'une fonction se fait comme suit:


<Var> <Nom_Fonction>(<Parametres_Effectifs>)

ou crire

<Nom_Fonction>(<Parametres_Effectifs>)

L'appel d'une procdure se fait comme suit:

<Nom_Procedure>(<Parametres_Effectifs>)

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 56


08/10/2017

Remarque

L'algorithme principal qui appelle les sous-programmes.

Un sous-programme peut appeler un autre sous-programme. Par la suite, le sous-


programme qui appelle est l'appelant et celui qui a subit l'appel est l'appel.

Lors de l'appel d'un sous-programme, deux formes de paramtres entrent en jeu :


les paramtres formels: Les paramtres spcifis dans la dfinition de la fonction
les paramtres effectifs. Les paramtres qui seront transmis la fonction lors de lappel

Les paramtres formels et les paramtres effectifs doivent correspondre en nombre, en type
et en ordre. Les noms peuvent se diffrer.

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 57

Exemple1
Ecrire une fonction qui permet de calculer le carr d'un entier a donn

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 58


08/10/2017

Exemple2
Ecrire une procdure qui permet de lire 2 entiers a et b

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 59

Exemple 5
Appelez les sous-programmes vues auparavant pour crire un algorithme TEST permettant de:
- lire deux entiers x et y - calculer la somme de x et y - Calculer le carr de x et le carr de y

08/10/2017 EMNA KRAIEM BEN AFIA -------------- L2 INFOS 60

S-ar putea să vă placă și