• Aucun résultat trouvé

Chapitre V : Les sous-programmes

N/A
N/A
Protected

Academic year: 2022

Partager "Chapitre V : Les sous-programmes"

Copied!
5
0
0

Texte intégral

(1)

Année Scolaire : 2010-2011 - 1 - LPS- 4 Maths 3 -

Chapitre V : Les sous-programmes

I- Introduction : 1- Principe:

- Tout problème peut être décomposé en un ensemble de sous-problèmes plus simples, distincts et dont certains sont répétitifs et utilisés à différents endroits d'un programme avec des données différentes.

- La solution de chaque sous-problème est un sous-programme ou module.

- On distingue les sous-programmes appelant et appelé.

La solution du problème est un programme principal qui fait appel aux différents modules en leur fournissant des objets appelés paramètres qui peuvent être:

o Des données (exemple : Tab, N du module Traitement) o Des données/ Résultats (exemple : Tab, N du module saisie)

o Des résultats (exemple : TabNeg, TabPos, NNeg, NPos du module Traitement) - Un module peut être une fonction ou une procédure.

- L’appel d’un module se fait via son nom suivi des paramètres effectifs qui vont se substituer aux paramètres formels du module.

2- Intérêts:

 Facilité de résolution et meilleure lisibilité du programme

 Réutilisation d’un module en cas de besoin

 Localisation des erreurs rapide

 Mise au point aisée et rapide et facilité de maintenance

 Centralisation de la résolution du problème autour d'un programme principal

II-Déclaration et accès aux objets:

- Tout objet déclaré au niveau d’un module (constante, variable, types, autres fonctions) est dit objet local.

- Tous les objets utilisés dans un module où ils ne sont pas déclarés, sont dits des objets globaux déclarés au niveau du programme principal.

- Un objet déclaré dans un sous-programme SP à un niveau i n’est accessible que par ce sous-programme ainsi que les sous-programmes englobés par ce SP.

- Si on utilise le même nom d’objet dans un sous-programme et dans le programme principal (homonyme), alors tout au long du sous-programme, l’objet local va cacher l’objet global.

Programme Principal

X variable de type Entier Y variable de type réel

Objets locaux du programmeprincipal Et objets globaux du

Sous-programme 1 et Sous-programme 1.1

Sous-programme 1

Y variable de type booléen V variable de type caractère W variable de type réel

Sous-programme 1.1

W constante=12

Z variable de type entier

Z Entier W

=12

Objets locaux du Sous-programme 1.1 Y

Booléen

V Caractère

W Réel

W Réel W Réel Objets locaux du Sous-programme 1 Et Objets globaux du

Sous-programme 1.1 Y

Réel

Y Réel

Y Réel X

Entier

Objets locaux du programmeprincipal Et objets globaux du

Sous-programme 1 et Sous-programme 1.1

(2)

Année Scolaire : 2010-2011 - 2 - LPS- 4 Maths 3 - III-Les paramètres et leurs modes de transmission:

1-

Les paramètres: il

existe deux types de paramètres:

a- Les paramètres formels :

Ce sont les paramètres qui figurent dans l’en-tête du sous-programme. Ces paramètres correspondent aux variables locales utilisées dans le corps du sous-programme.

b- Les paramètres effectifs :

Ce sont les paramètres utilisés dans l’instruction d’appel du sous-programme. Ils seront substitués aux paramètres formels lors de l’appel.

2- Les modes de transmission des paramètres:

C’est la substitution des paramètres effectifs aux paramètres formels. Il existe deux modes de passage.

a- Passage par valeur :

Les paramètres transmis par valeur font communiquer l’information dans un seul sens (de l’appelant à l’appelé).

Toute modification du contenu du paramètre dans le programme appelé est sans conséquence sur la valeur du paramètre effectif dans le programme appelant.

b- Passage par variable :

La communication de l’information se fait dans les deux sens. En effet, toute modification du contenu du paramètre formel entraîne automatiquement la modification du paramètre effectif.

NB : Dans l’entête du module appelé, il faut précéder les paramètres formels transmis par variable par le mot clé VAR.

Pour mieux comprendre le mode de passage, on peut se poser une question :

Est-ce que le paramètre formel va-t-il être modifié par le programme appelé?

Structure d’un programme Pascal :

Program Nom_programme;

Uses Wincrt;

Const Déclaration des constantes ; Type Déclaration des nouveaux types ;

Var Déclaration des variables globales et locales du programme principal ; Procedure Nom_procedure (Mode de passage + Liste des paramètres formels : Type) ; Déclaration des objets locaux

Déclaration des sous-programmes englobés par cette procédure ; Begin

Instructions de la procédure;

End ;

Function nom_fonction (Liste des paramètres formels : Type) : Type du résultat retourné Déclaration des objets locaux

Déclaration des sous-programmes englobés par cette fonction ; Begin

Instructions de la fonction;

End ; Begin

Instructions du programme principal ; End.

Passage par valeur.

Ce paramètre, après sa modification, serait-il utilisé par un autre sous programme ou par le programme principal?

Passage par variable.

Oui

Passage par valeur.

Non

Oui Non

(3)

Année Scolaire : 2010-2011 - 3 - LPS- 4 Maths 3 - IV-Les fonctions:

Une fonction est un sous-programme qui renvoie une seule valeur de type simple (entier, réel, caractère, chaîne de caractères, booléen). Ce type sera celui de la fonction.

Remarques:

 Dans les fonctions, les paramètres formels ont un mode de passage par valeur.

 Les paramètres effectifs et les paramètres formels doivent se correspondre de point de vue nombre, ordre et type.

 Le résultat calculé doit être affecté au nom de la fonction obligatoirement avant la fin de la fonction.

Syntaxe de la fonction :

Analyse Algorithme

DEF FN nom_fonction (Liste des paramètres formels :Type) : Type du résultat retourné Résultat= nom_fonction résultat

… Traitement

Fin nom_fonction

Tableau de déclaration des objets locaux de la fonction :

Objet Type/Nature Rôle

0) DEF FN nom_fonction (Liste des paramètres formels :Type) : Type du résultat retourné 1) …

… Traitement

n-1) nom_fonction résultat calculé n) Fin nom_fonction

Pascal

FUNCTION nom_fonction (Liste des paramètres formels :Type) : Type du résultat retourné VAR

Déclaration des objets locaux ; Begin

… Traitement ;

nom_fonction := résultat calculé ; End ;

Au niveau de l’appel En algorithme : var FN nom_fonction (Liste des paramètres effectifs) En Pascal : var := nom_fonction (Liste des paramètres effectifs);

(4)

Année Scolaire : 2010-2011 - 4 - LPS- 4 Maths 3 - V-Les procédures:

Une procédure est un sous-programme qui renvoie 0 ou plusieurs résultats de type simple ou composé.

Remarques:

 Dans les procédures, les paramètres formels doivent être précédés par leur mode de passage.

 Le mode de transmission des paramètres par variable ne concerne que les procédures.

 Les paramètres effectifs et les paramètres formels doivent se correspondre de point de vue nombre, ordre et type.

 La saisie et l’affichage sont toujours des procédures.

Syntaxe de la procédure :

Analyse Algorithme

DEF PROC nom_procédure (Liste des paramètres formels :Type)

Résultat= Traitement Traitement= … … …

Fin nom_ procédure

Tableau de déclaration des objets locaux de la procédure :

Objet Type/Nature Rôle

0) DEF PROC nom_ procédure (Mode de passage + Liste des paramètres formels :Type) 1) …

… Traitement

n) Fin nom_ procédure

Pascal

PROCEDURE nom_ procédure (Mode de passage + Liste des paramètres formels :Type) VAR

Déclaration des objets locaux ; Begin

… Traitement ;

End ;

Au niveau de l’appel En algorithme : PROC nom_procédure (Liste des paramètres effectifs)

En Pascal : nom_procédure (Liste des paramètres effectifs);

(5)

Année Scolaire : 2010-2011 - 4 - LPS- 4 Maths 3 -

Références

Documents relatifs

- valeur d'une variable - valeur d'une expression même nombre de paramètres (*). même ordre des paramètres (*) même type

SITUATION D’APPRENTISSAGE : ce sont les moyens matériels pour vous aider à atteindre votre objectif : (cibles, zones,. lattes,

Nous sommes tous prêts à nous battre, mais pas pour vous ou Riliam.. Pour le peuple que nous avons juré

La mise en place d’un conseil intérimaire de gestion du CCRA formé de quarante cinq (45) membres incluant les leaders des trois regrou- pements continentaux d’autorités locales

par valeur (existe aussi dans les langages C et Java 1 ) par adresse (existe aussi dans le langage C).. par référence (uniquement dans les langages C++ et Java 1 ).. 7+3)

(2) Préciser la nature de l'opération de transfert (exercice d'options attribuées aux salariés, de titres de créances donnant accès au capital…) (3) Préciser s'il s'agit

(2) Préciser la nature de l'opération de transfert (exercice d'options attribuées aux salariés, de titres de créances donnant accès au capital…) (3) Préciser s'il s'agit

(2) Préciser la nature de l'opération de transfert (exercice d'options attribuées aux salariés, de titres de créances donnant accès au capital…) (3) Préciser s'il s'agit