[Link].
Essef Prof : Mme Naima El Mabrouk Bayoudh
Décomposition Modulaire
def saisir ():
Activité : n=int(input("Donnez un nombre positif"))
Taper et expliquer les programmes suivants : while n < 0:
n=int(input("donnez une autre valeur :"))
def saisir (): return n
n=int(input("Donnez un nombre positif"))
while n < 0: def sommediv(x):
n=int(input("donnez une autre valeur :")) s=1
return n for i in range(2,x//2+1):
if x % i ==0 :
def fact(x): s=s+i
f=1 return s
for i in range(2,x+1):
f=f*i a=saisir()
return f b=saisir()
a=saisir()
b=saisir() if (sommediv(a)==b)and (sommediv(b)==a):
print(a,'!= ',fact(a)) print(a,' et ', b , 'sont amis')
print(b,'!= ',fact(b)) else:
print(a,' et ', b , 'ne sont pas amis')
I. Introduction
Un programme devient compliqué dés que le nombre de traitements augmente ou on trouve des traitements
répétés dans des différents endroits du programme.
Lorsque le problème devient compliqué ou long il est préférable de le décomposer en des sous problèmes
ou ………………….. qui peuvent être à leur tour être décomposés en des sous modules jusqu’à avoir des
modules simples à résoudre.
Un module peut être une …………………ou une ………………………. Cette division s’appelle
……………………………… : On trouve un problème principal et les différents modules.
L’analyse modulaire (division en modules) présente plusieurs avantages :
- Eviter ………………………… des parties des programmes.
- ………………………… la résolution ;
- …………………………. les modules
- ………………….. les fautes et les ……………………. facilement.
II. Fonction
Définition
Une fonction est ……………………………………………………………………..…………………..
………………………………………………………………………………………………………………..
Syntaxe d’une fonction
En Algorithme
Fonction Nom_fonction (pf1: type1, pf2: type2, … , pfn : typen) : Type_résultat
DEBUT
Traitement
Retourner Résultat Dresser le TDO Locaux à la
FIN fonction
Décomposition Modulaire : cours et Série Page 1 / 2
[Link] Prof : Mme Naima El Mabrouk Bayoudh
• L’appel d’une focntion :
Objet Nom_fonction (pe1, pe2, …, pen)
……………………………………………….
……………………………………………….
Le programme appelant peut appeler la fonction autant de fois que nécessaire.
III. Procédure
Définition
Si on a un module qui retourne ………….. résultats ou un résultat de type ……………, ce module ne peut
pas être de type ………….. donc on utilise un module de type …………….
Une procédure est un module plus ………………., peut donner ……………………..
résultats même de type …………….
Syntaxe
Procédure Nom_procédure (pf1: type1, pf2: type2, … , pfn: typen)
DEBUT
Traitement
FIN Dresser le TDO Locaux à la
procédure
L’appel d’une procédure :
Nom_procédure (pe1, pe2, … , pen)
N.B. Dans l'entête de la procédure, on doit faire précéder les paramètres formels transmis par référence (par
adresse) par le symbole @
Iv. Mode de passage des paramètres
Le remplacement des paramètres effectifs aux paramètres formels est appelé ………………………………. :
transfert des données entre le programme appelant et le programme appelé :
Passage par valeur : A l'appel, l'appelant transmet une ou plusieurs valeurs à l'appelé, l'appelé ne modifie
pas ses valeurs au moment du [Link]ès l’appel les paramètres effectifs ne changent pas de valeurs.
Passage par référence : (seulement pour les procédures : précédé par @) A l'appel, l'appelant transmet une
ou plusieurs valeurs à l'appelé, de même l'appelé rend un ou plusieurs résultats à l'appelant au moment du
retour.
Après l’appel les paramètres effectifs peuvent changer de valeurs.
A retenir
Un paramètre …………………. est un paramètre utilisé dans la définition d’un module
Un paramètre ……………………. est un paramètre utilisé dans l’appel d’un module
Les deux paramètres formels et effectifs doivent s’accorder au niveau ……………., type et …….
L’appel d’un module se fait par le ……….. de la module suivi par les paramètres ………. entre
parenthèses et qui remplacent les paramètres ………….. au moment de l’appel du module.
Les objets locaux sont tous les objets (constantes, types, variables et sous-programme) qui sont
déclarés dans un sous-programme.
Les objets globaux sont les objets qui peuvent être utilisés dans un module et non déclarés dans
celui-ci.
Toute modification du paramètre formel ……………. entraîne automatiquement la modification de
la valeur du paramètre effectif.
Décomposition Modulaire : cours Page2 / 2