SlideShare une entreprise Scribd logo
1  sur  14
SOUS-PROGRAMMES
PARTIE 4 :
DIVERS & BONNES PRATIQUES
Réalisé par : OUZEGGANE Redouane
Département de Technologie
Faculté de Technologie – Université A.Mira, Bejaia
Année Universitaire 2015/2016
- Eviter d'accéder aux variables globales
- Eviter de réaliser deux traitements dans le même SP
- Comment utiliser le type tableau comme paramètre ?
- Comment transformer une procédure à une fonction ?
- Comment transformer une fonction à une procédure ?
ACCÈS AUX VARIABLES GLOBALES
1ère Année Technologie Année Universitaire : 2015/2016
01/11
Programme
principal
N : integer;
x , p: : real;
Données
Instructions
Read(N,X)
Puissance;
Write(P)
Procedure
Puissance
i : integer;
Données
Instructions
P := 1;
For i:=1 to N do
P := P*x;
1- La procédure Puissance dépends des variables N et P
2- On ne peut pas utiliser cette procédure dans une autre programme !
ACCÈS AUX VARIABLES GLOBALES
1ère Année Technologie Année Universitaire : 2015/2016
01/11
Programme
principal
N : integer;
x , p: : real;
Données
Instructions
Read(N, X)
Puissance;
Write(P)
Procédure
Puissance
x n
P = xn
Paramètre d’entrée
(passage par valeur)
Paramètre de sortie
(passage par variable)
ACCÈS AUX VARIABLES GLOBALES
1ère Année Technologie Année Universitaire : 2015/2016
01/11
Paramètre d’entrée
Paramètre de sortie
Un Sous-programme Communique avec l’environnement externe uniquement en
utilisant les paramètres (Paramètres entrées / Paramètre de sortie)
Paramètres effectifs
DEUX TRAITEMENTS DANS LE MÊME S.P.
1ère Année Technologie Année Universitaire : 2015/2016
01/11
Soit une procédure qui permet de calculer n! ainsi que la puissance xn :
Un sous programme doit avoir une seule
« RESPONSABILITÉ »
DEUX TRAITEMENTS DANS LE MÊME S.P.
1ère Année Technologie Année Universitaire : 2015/2016
01/11
On doit écrire deux procédures, par exemple :
TYPE TABLEAU DANS LES S.P.
1ère Année Technologie Année Universitaire : 2015/2016
01/11
ERREUR
TYPE TABLEAU DANS LES S.P.
1ère Année Technologie Année Universitaire : 2015/2016
01/11
1ère Solution
2ème Solution
TRANSFORMER UNE PROCÉDURE À UNE FONCTION
1ère Année Technologie Année Universitaire : 2015/2016
01/11
function facoriel(n:logint) : longint;
var
i:longint; f:longint;
Begin {Début de la fonction factoriel}
f := 1;
for i := 1 to n do
f := f*i;
factoriel := f; {Affecter le résultat à la fonction}
End; {Fin de la fonction factoriel}
Pour Tout appel à la procédure factoriel :
factoriel (m, fm);
Devient un appel à la fonction factoriel :
fm := factoriel (m);
Transformer une Procédure à une Fonction
1. remplacer le mot clé procedure par le mot clé function ;
2. supprimer le paramètre formel avec transmission par variable ;
3. le type du paramètre formel supprimé devient le type de la fonction ;
4. créer une variable locale dans le fonction (le même que le paramètre
formel supprimé) ;
5. ajouter, à la fin du corps de la fonction, l’instruction suivante :
<nom_fonction> := <parametre_formel_supprimé>;
6. Pour tout appel à la procédure de la forme suivante :
<Nom_Procedure>(p1, p2, …pn, PFR); devient:
PFR := <Nom_Fonction>(p1, p2, …pn);
TRANSFORMER UNE PROCÉDURE À UNE FONCTION
1ère Année Technologie Année Universitaire : 2015/2016
01/11
TRANSFORMER UNE FONCTION À UNE PROCÉDURE
1ère Année Technologie Année Universitaire : 2015/2016
01/11
procedure puissance(x:real; n:integer; var z :real);
var
i:longint; p:real;
Begin {Début de la procédure puissance}
p := 1;
for i := 1 to n do
p := p*i;
puissance := p; {Affecter le résultat à la fonction}
End; {Fin de la procédure puissance}
z := p;
TRANSFORMER UNE FONCTION À UNE PROCÉDURE
1ère Année Technologie Année Universitaire : 2015/2016
01/11
procedure puissance(x:real; n:integer; var p :real);
var
i:longint; p:real;
Begin {Début de la procédure puissance}
p := 1;
for i := 1 to n do
p := p*i;
puissance := p; {Affecter le résultat à la fonction}
End; {Fin de la procédure puissance}
Pour Tout appel à la fonction puissance :
p := puissance(5.25, 2+1);
Devient un appel à la procédure puissance:
puissance(5.25, 2+1, p);
Transformer une Fonction à une Procédure
1. remplacer le mot clé function par le mot clé procedure ;
2. supprimer le type de la fonction et ajouter un paramètre formel par variable, du
même type que la fonction, à la nouvelle procédure ;
3. si le paramètre formel (par variable) ajouté est un nouvel identificateur, on
replace la dernière instruction de la fonction par :
<paramètre_formel_ajouté> := <résultat_calculé>;
4. si le paramètre formel (par variable) ajouté a le même identificateur de la
variable local résultat, supprimer, la dernière instruction de la fonction
(Affectation du résultat à la fonction)
5. Pour tout appel à la fonction de la forme suivante :
<id_var_res> := <Nom_Fonction>(p1, p2, …pn); devient:
<Nom_Procedure>(p1, p2, …pn, <id_var_res>);
TRANSFORMER UNE FONCTION À UNE PROCÉDURE
1ère Année Technologie Année Universitaire : 2015/2016
12/13
RÉSUMÉ
1ère Année Technologie Année Universitaire : 2015/2016
13/13
Un Sous-programme Communique avec l’environnement externe uniquement
en utilisant les paramètres (Paramètres entrées / Paramètre de sortie)
1
Un Sous-programme doit réaliser un seul traitement et calculer un seul
résultat (Possède une seule RESPONSABILITÉ)
2
Pour utiliser le type Tableau (Vecteur / Matrice) comme paramètre, soit on
déclare un nouveau type, ou nous utilisons Array Of <type>
3
Pour transformer une procédure à une fonction (ou vise-versa), un ensemble
d’étapes doivent être appliquées
4

Contenu connexe

Plus de OlyvierNzighou1

Programmation-en-C-ESIITECH-2023-2024-bis.pptx
Programmation-en-C-ESIITECH-2023-2024-bis.pptxProgrammation-en-C-ESIITECH-2023-2024-bis.pptx
Programmation-en-C-ESIITECH-2023-2024-bis.pptxOlyvierNzighou1
 
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptxAlgorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptxOlyvierNzighou1
 
Programmation en Python CPGE sup management
Programmation en Python CPGE sup managementProgrammation en Python CPGE sup management
Programmation en Python CPGE sup managementOlyvierNzighou1
 
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique...
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique...Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique...
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique...OlyvierNzighou1
 
Support de cours et de formation en langage python pour les débutants.
Support de cours et de formation en langage python pour les débutants.Support de cours et de formation en langage python pour les débutants.
Support de cours et de formation en langage python pour les débutants.OlyvierNzighou1
 
Support GESPRO-2023-2024.pptx
Support GESPRO-2023-2024.pptxSupport GESPRO-2023-2024.pptx
Support GESPRO-2023-2024.pptxOlyvierNzighou1
 
1- Exercices de révision sur les listes.pptx
1- Exercices de révision sur les listes.pptx1- Exercices de révision sur les listes.pptx
1- Exercices de révision sur les listes.pptxOlyvierNzighou1
 
Cybercriminalité et traitement des incidents.pptx
Cybercriminalité et traitement des incidents.pptxCybercriminalité et traitement des incidents.pptx
Cybercriminalité et traitement des incidents.pptxOlyvierNzighou1
 
Présentation_IBOGA_Commission_des_Lois_AN.pptx
Présentation_IBOGA_Commission_des_Lois_AN.pptxPrésentation_IBOGA_Commission_des_Lois_AN.pptx
Présentation_IBOGA_Commission_des_Lois_AN.pptxOlyvierNzighou1
 
Gestion_de_projetOK.pptx
Gestion_de_projetOK.pptxGestion_de_projetOK.pptx
Gestion_de_projetOK.pptxOlyvierNzighou1
 

Plus de OlyvierNzighou1 (13)

Programmation-en-C-ESIITECH-2023-2024-bis.pptx
Programmation-en-C-ESIITECH-2023-2024-bis.pptxProgrammation-en-C-ESIITECH-2023-2024-bis.pptx
Programmation-en-C-ESIITECH-2023-2024-bis.pptx
 
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptxAlgorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
Algorithmique et programmation-ESIITECH-2023-2024-Revu2-Ok.pptx
 
Programmation en Python CPGE sup management
Programmation en Python CPGE sup managementProgrammation en Python CPGE sup management
Programmation en Python CPGE sup management
 
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique...
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique...Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique...
Algorithmique et programmation-ESIITECH-2023-2024 [Enregistrement automatique...
 
Support de cours et de formation en langage python pour les débutants.
Support de cours et de formation en langage python pour les débutants.Support de cours et de formation en langage python pour les débutants.
Support de cours et de formation en langage python pour les débutants.
 
Support GESPRO-2023-2024.pptx
Support GESPRO-2023-2024.pptxSupport GESPRO-2023-2024.pptx
Support GESPRO-2023-2024.pptx
 
1- Exercices de révision sur les listes.pptx
1- Exercices de révision sur les listes.pptx1- Exercices de révision sur les listes.pptx
1- Exercices de révision sur les listes.pptx
 
Codage_Information.pptx
Codage_Information.pptxCodage_Information.pptx
Codage_Information.pptx
 
Algebre_Boole-1.pptx
Algebre_Boole-1.pptxAlgebre_Boole-1.pptx
Algebre_Boole-1.pptx
 
Cybercriminalité et traitement des incidents.pptx
Cybercriminalité et traitement des incidents.pptxCybercriminalité et traitement des incidents.pptx
Cybercriminalité et traitement des incidents.pptx
 
Présentation_IBOGA_Commission_des_Lois_AN.pptx
Présentation_IBOGA_Commission_des_Lois_AN.pptxPrésentation_IBOGA_Commission_des_Lois_AN.pptx
Présentation_IBOGA_Commission_des_Lois_AN.pptx
 
AG-15-12-2023.ppt
AG-15-12-2023.pptAG-15-12-2023.ppt
AG-15-12-2023.ppt
 
Gestion_de_projetOK.pptx
Gestion_de_projetOK.pptxGestion_de_projetOK.pptx
Gestion_de_projetOK.pptx
 

Dernier

Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfAmgdoulHatim
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film françaisTxaruka
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetJeanYvesMoine
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxShinyaHilalYamanaka
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxrajaakiass01
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfachrafbrahimi1
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxRayane619450
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLElebaobabbleu
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxikospam0
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxabdououanighd
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...Universidad Complutense de Madrid
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaireTxaruka
 
La mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsLa mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsJaouadMhirach
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Technologia Formation
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.Txaruka
 
Chapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon CoursChapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon Coursebenezerngoran
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKNassimaMdh
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxhamzagame
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...Nguyen Thanh Tu Collection
 

Dernier (20)

Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptx
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptx
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptx
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLE
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
La mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsLa mondialisation avantages et inconvénients
La mondialisation avantages et inconvénients
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
Chapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon CoursChapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon Cours
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 

0015- Sous-programmes (Partie 4 - Divers Bonnes Pratiques).ppt

  • 1. SOUS-PROGRAMMES PARTIE 4 : DIVERS & BONNES PRATIQUES Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université A.Mira, Bejaia Année Universitaire 2015/2016 - Eviter d'accéder aux variables globales - Eviter de réaliser deux traitements dans le même SP - Comment utiliser le type tableau comme paramètre ? - Comment transformer une procédure à une fonction ? - Comment transformer une fonction à une procédure ?
  • 2. ACCÈS AUX VARIABLES GLOBALES 1ère Année Technologie Année Universitaire : 2015/2016 01/11 Programme principal N : integer; x , p: : real; Données Instructions Read(N,X) Puissance; Write(P) Procedure Puissance i : integer; Données Instructions P := 1; For i:=1 to N do P := P*x; 1- La procédure Puissance dépends des variables N et P 2- On ne peut pas utiliser cette procédure dans une autre programme !
  • 3. ACCÈS AUX VARIABLES GLOBALES 1ère Année Technologie Année Universitaire : 2015/2016 01/11 Programme principal N : integer; x , p: : real; Données Instructions Read(N, X) Puissance; Write(P) Procédure Puissance x n P = xn Paramètre d’entrée (passage par valeur) Paramètre de sortie (passage par variable)
  • 4. ACCÈS AUX VARIABLES GLOBALES 1ère Année Technologie Année Universitaire : 2015/2016 01/11 Paramètre d’entrée Paramètre de sortie Un Sous-programme Communique avec l’environnement externe uniquement en utilisant les paramètres (Paramètres entrées / Paramètre de sortie) Paramètres effectifs
  • 5. DEUX TRAITEMENTS DANS LE MÊME S.P. 1ère Année Technologie Année Universitaire : 2015/2016 01/11 Soit une procédure qui permet de calculer n! ainsi que la puissance xn : Un sous programme doit avoir une seule « RESPONSABILITÉ »
  • 6. DEUX TRAITEMENTS DANS LE MÊME S.P. 1ère Année Technologie Année Universitaire : 2015/2016 01/11 On doit écrire deux procédures, par exemple :
  • 7. TYPE TABLEAU DANS LES S.P. 1ère Année Technologie Année Universitaire : 2015/2016 01/11 ERREUR
  • 8. TYPE TABLEAU DANS LES S.P. 1ère Année Technologie Année Universitaire : 2015/2016 01/11 1ère Solution 2ème Solution
  • 9. TRANSFORMER UNE PROCÉDURE À UNE FONCTION 1ère Année Technologie Année Universitaire : 2015/2016 01/11 function facoriel(n:logint) : longint; var i:longint; f:longint; Begin {Début de la fonction factoriel} f := 1; for i := 1 to n do f := f*i; factoriel := f; {Affecter le résultat à la fonction} End; {Fin de la fonction factoriel} Pour Tout appel à la procédure factoriel : factoriel (m, fm); Devient un appel à la fonction factoriel : fm := factoriel (m);
  • 10. Transformer une Procédure à une Fonction 1. remplacer le mot clé procedure par le mot clé function ; 2. supprimer le paramètre formel avec transmission par variable ; 3. le type du paramètre formel supprimé devient le type de la fonction ; 4. créer une variable locale dans le fonction (le même que le paramètre formel supprimé) ; 5. ajouter, à la fin du corps de la fonction, l’instruction suivante : <nom_fonction> := <parametre_formel_supprimé>; 6. Pour tout appel à la procédure de la forme suivante : <Nom_Procedure>(p1, p2, …pn, PFR); devient: PFR := <Nom_Fonction>(p1, p2, …pn); TRANSFORMER UNE PROCÉDURE À UNE FONCTION 1ère Année Technologie Année Universitaire : 2015/2016 01/11
  • 11. TRANSFORMER UNE FONCTION À UNE PROCÉDURE 1ère Année Technologie Année Universitaire : 2015/2016 01/11 procedure puissance(x:real; n:integer; var z :real); var i:longint; p:real; Begin {Début de la procédure puissance} p := 1; for i := 1 to n do p := p*i; puissance := p; {Affecter le résultat à la fonction} End; {Fin de la procédure puissance} z := p;
  • 12. TRANSFORMER UNE FONCTION À UNE PROCÉDURE 1ère Année Technologie Année Universitaire : 2015/2016 01/11 procedure puissance(x:real; n:integer; var p :real); var i:longint; p:real; Begin {Début de la procédure puissance} p := 1; for i := 1 to n do p := p*i; puissance := p; {Affecter le résultat à la fonction} End; {Fin de la procédure puissance} Pour Tout appel à la fonction puissance : p := puissance(5.25, 2+1); Devient un appel à la procédure puissance: puissance(5.25, 2+1, p);
  • 13. Transformer une Fonction à une Procédure 1. remplacer le mot clé function par le mot clé procedure ; 2. supprimer le type de la fonction et ajouter un paramètre formel par variable, du même type que la fonction, à la nouvelle procédure ; 3. si le paramètre formel (par variable) ajouté est un nouvel identificateur, on replace la dernière instruction de la fonction par : <paramètre_formel_ajouté> := <résultat_calculé>; 4. si le paramètre formel (par variable) ajouté a le même identificateur de la variable local résultat, supprimer, la dernière instruction de la fonction (Affectation du résultat à la fonction) 5. Pour tout appel à la fonction de la forme suivante : <id_var_res> := <Nom_Fonction>(p1, p2, …pn); devient: <Nom_Procedure>(p1, p2, …pn, <id_var_res>); TRANSFORMER UNE FONCTION À UNE PROCÉDURE 1ère Année Technologie Année Universitaire : 2015/2016 12/13
  • 14. RÉSUMÉ 1ère Année Technologie Année Universitaire : 2015/2016 13/13 Un Sous-programme Communique avec l’environnement externe uniquement en utilisant les paramètres (Paramètres entrées / Paramètre de sortie) 1 Un Sous-programme doit réaliser un seul traitement et calculer un seul résultat (Possède une seule RESPONSABILITÉ) 2 Pour utiliser le type Tableau (Vecteur / Matrice) comme paramètre, soit on déclare un nouveau type, ou nous utilisons Array Of <type> 3 Pour transformer une procédure à une fonction (ou vise-versa), un ensemble d’étapes doivent être appliquées 4