Vous êtes sur la page 1sur 3

1.

Pensée computationnelles et programmation Les sous programmes


Les sous programmes

I- Analyse modulaire
Pour résoudre un problème complexe, on peut procéder à une décomposition de ce dernier en sous
problèmes. Ces derniers sont à leur tour décomposés selon les besoin. La décomposition s'arrêt aux sous
problème relativement simple. On associe à chaque sous problème un module (sous programme) assurant
sa résolution.
a- Notion de sous programme :

 Un sous programme est un ensemble d'instruction, analogique à un programme.


 Un sous programme peut être une procédure ou une fonction
 Un sous programme peut être exécuté plusieurs fois grâce à des appels
b- - Les fonctions

 Définition d’une fonction


Une fonction retourne un seul résultat de type simple (entier, réel, booléen, caractère, chaine)
En algorithmique une fonction est déclarée en utilisant la syntaxe suivante :

Pour définir une fonction en langage Python, on peut utiliser la syntaxe suivante :

Paramètres formels :
Définition de la fonction Les objets nécessaires pour
def nom_fonction (parameters): que la fonction puisse faire
sa tâche (son travail).
Instructions_1
L’entête de la fonction Instructions_2

Instructions_3
Le corps de la fonction
return valeurs
Les valeurs retournées
Remarques : par la fonction
1- Pour exécuter une fonction, il faut l’appeler.
2- Toutes les instructions qui suivent l’instruction return constitue un code mort c'est-à-dire non
exécutable par la fonction.
3- Une fonction peut ne pas avoir de paramètres au moment de la définition, dans ce cas il ne faut pas
oublier les deux parenthèses ().
4- Une fonction peut renvoyer une ou plusieurs valeurs de types différents dans la même instruction
return.

Page 1/3
Pensée computationnelles et programmation Les sous programmes
 Visibilité d’une variable
Une variable définie à l’intérieure d’une fonction ne sera pas visible depuis l’extérieur. On dit
que la variable est locale à la fonction.
c- Les Procédures

 Définition
Une procédure est un sous-programme qui peut retourner zéro ou plusieurs résultats
En algorithmique une procédure est déclarée en utilisant la syntaxe suivante :
 Définition d’une Procédure

Procédure nom_procédure( Pf1:type1, Pf2:type2, Pf3:type3,…, Pfn:typen)


Début
Traitement
Fin

 Appel d’une Procédure

nom_procédure ( Pe1, Pe2, Pe3,…, Pen)

d- Déclarations et accès aux objets

 Les objets locaux :


Un objet local est un objet déclaré et connu seulement à l'intérieure d'un sous-programme
 Les objets globaux :
Un objet global est un objet déclaré dans la partie déclarative du programme principal.il peut être
utilisé par le programme principal ou par les différents autres sous-programmes.
 Accès aux objets :
La porté de l'objet défini les possibilités d'accès à ce dernier à partir de différents endroits du
programme.
Exemple, un objet déclaré dans un sous-programme n'est pas accessibles à partir du programme
principal. Par contre, un objet global est accessible à partir d'un sous-programme.
e- Les paramètres et leur mode de passage :

 Les paramètres formels et les paramètres effectifs :


Les paramètres formels figurent dans l'entête de la définition d'un sous programme (fonction ou
procédure).
Les paramètres effectifs figurent dans l'appel d'un sous programme (fonction ou procédure).
Les paramètres effectifs et les paramètres formels doivent s'accord de point vue nombre et ordre
Leurs types doivent être identiques ou compatibles, selon le mode de passage des paramètres
 Passage de paramètre par valeur et par variable :
La substitution des paramètres effectifs aux paramètres formels s'appel passage de paramètre, il
s'agit en fin de transfert de données entre le programme principal(PP) et le sous-programme ou l'inverse.
Nous utiliserons deux modes de passage de paramètres :

Page 2/3
Pensée computationnelles et programmation Les sous programmes
1. Le passage de paramètre par valeur
2. Le passage des paramètres par variable
Si le paramètre formel n'est pas précédé par @ alors il s'agit d'un passage de paramètres effectifs
par valeur
Si le paramètre formel est pas précédé par @ alors il s'agit d'un passage de paramètres effectifs
par variable (référence / adresse)
Exemple 1 : (définition d’une fonction)
Donner le code d’une fonction nommée double qui prend en paramètre un entier x pour renvoyer
le double de sa valeur.
def double(x) :
return(x*2)
Ne peut confondre la
Exemple 2 : (appel d’une fonction) fonction print et l’instruction
return
print(double(2)) #la valeur 4 sera affichée

Exemple 3 : (fonction non paramétrée)


def test():
return(2*5, 'computer') #la fonction retourne deux valeurs 10 et computer
f- Visibilité d’une variable
Une variable définie à l’intérieure d’une fonction ne sera pas visible depuis l’extérieur. On dit que
la variable est locale à la fonction.
Exemple 1 : (variable locale)

Le print(x) génère une erreur car x est une variable locale à la fonction et elle n’est pas visible à
l’extérieure de la fonction f.
Si une variable est déjà définie à l’extérieure d’une fonction, si on modifie sa valeur durant
l’exécution de la fonction, sa valeur d’origine ne sera pas modifiée c'est-à-dire, tout se passe comme si la
variable était masquée momentanément.
Exemple 2 : (variable extérieure à la fonction)
Soit le code suivant : Print (x)
return y*x
x=6
m=2 print(x)
def fonction(y): print(fonction(2))
x=7 print(x)
print(x) quel est le résultat affiché par le programme
return y*x
précédent

Page 3/3

Vous aimerez peut-être aussi