SlideShare une entreprise Scribd logo
Fonctions et procédures
1
ALGORITHMIQUE
Fonctions et procédures
2
 Certains problèmes conduisent à des programmes longs, difficiles à
écrire et à comprendre. On les découpe en des parties appelées sous-
programmes ou modules
 Les fonctions et les procédures sont des modules (groupe d'instructions)
indépendants désignés par un nom. Elles ont plusieurs intérêts :
 permettent de "factoriser" les programmes, càd de mettre en commun les
parties qui se répètent
 permettent une structuration et une meilleure lisibilité des programmes
 facilitent la maintenance du code (il suffit de modifier une seule fois)
 ces procédures et fonctions peuvent éventuellement être réutilisées dans
d'autres programmes
Fonctions
3
 Le rôle d'une fonction en programmation est similaire à celui d'une
fonction en mathématique : elle retourne un résultat à partir des
valeurs des paramètres
 Une fonction s'écrit en dehors du programme principal sous la forme :
Fonction nom_fonction (paramètres et leurs types) : type_fonction
Instructions constituant le corps de la fonction
retourne …
FinFonction
 Pour le choix d'un nom de fonction il faut respecter les mêmes règles que celles
pour les noms de variables
 type_fonction est le type du résultat retourné
 L'instruction retourne sert à retourner la valeur du résultat
Fonctions : exemples
4
 La fonction SommeCarre suivante calcule la somme des carrées de
deux réels x et y :
Fonction SommeCarre (x : réel, y: réel ) : réel
variable z : réel
z ←x^2+y^2
retourne (z)
FinFonction
 La fonction Pair suivante détermine si un nombre est pair :
Fonction Pair (n : entier ) : booléen
retourne (n%2=0)
FinFonction
Utilisation des fonctions
5
 L'utilisation d'une fonction se fera par simple écriture de son nom
dans le programme principale. Le résultat étant une valeur, devra
être affecté ou être utilisé dans une expression, une écriture, ...
 Exepmle : Algorithme exepmleAppelFonction
variables z : réel, b : booléen
Début
b ←Pair(3)
z ←5*SommeCarre(7,2)+1
écrire("SommeCarre(3,5)= ", SommeCarre(3,5))
Fin
 Lors de l'appel Pair(3) le paramètre formel n est remplacé par le
paramètre effectif 3
Procèdures
6
 Dans certains cas, on peut avoir besoin de répéter une tache dans plusieurs
endroits du programme, mais que dans cette tache on ne calcule pas de
résultats ou qu'on calcule plusieurs résultats à la fois
 Dans ces cas on ne peut pas utiliser une fonction, on utilise une procédure
 Une procédure est un sous-programme semblable à une fonction mais qui
ne retourne rien
 Une procédure s'écrit en dehors du programme principal sous la forme :
Procédure nom_procédure (paramètres et leurs types)
Instructions constituant le corps de la procédure
FinProcédure
 Remarque : une procédure peut ne pas avoir de paramètres
Appel d'une procédure
7
 L'appel d'une procédure, se fait dans le programme principale ou dans une
autre procédure par une instruction indiquant le nom de la procédure :
Procédure exemple_proc (…)
…
FinProcédure
Algorithme exepmleAppelProcédure
Début
exemple_proc (…)
…
Fin
 Remarque : contrairement à l'appel d'une fonction, on ne peut pas affecter la
procédure appelée ou l'utiliser dans une expression. L'appel d'une procédure
est une instruction autonome
Paramètres d'une procédure
8
 Les paramètres servent à échanger des données entre le programme
principale (ou la procédure appelante) et la procédure appelée
 Les paramètres placés dans la déclaration d'une procédure sont appelés
paramètres formels. Ces paramètres peuvent prendre toutes les valeurs
possibles mais ils sont abstraits (n'existent pas réellement)
 Les paramètres placés dans l'appel d'une procédure sont appelés
paramètres effectifs. ils contiennent les valeurs pour effectuer le traitement
 Le nombre de paramètres effectifs doit être égal au nombre de paramètres
formels. L'ordre et le type des paramètres doivent correspondre
Transmission des paramètres
9
Il existe deux modes de transmission de paramètres dans les langages de
programmation :
 La transmission par valeur : les valeurs des paramètres effectifs sont
affectées aux paramètres formels correspondants au moment de l'appel de la
procédure. Dans ce mode le paramètre effectif ne subit aucune modification
 La transmission par adresse (ou par référence) : les adresses des
paramètres effectifs sont transmises à la procédure appelante. Dans ce mode,
le paramètre effectif subit les mêmes modifications que le paramètre formel
lors de l'exécution de la procédure
 Remarque : le paramètre effectif doit être une variable (et non une valeur)
lorsqu'il s'agit d'une transmission par adresse
 En pseudo-code, on va préciser explicitement le mode de transmission dans
la déclaration de la procédure
Transmission des paramètres : exemples
10
Procédure incrementer1 (x : entier par valeur, y : entier par adresse)
x ← x+1
y ← y+1
FinProcédure
Algorithme Test_incrementer1
variables n, m : entier
Début
n ← 3
m ← 3
incrementer1(n, m) résultat :
écrire (" n= ", n, " et m= ", m) n=3 et m=4
Fin
Remarque : l'instruction x ← x+1 n'a pas de sens avec un passage par valeur
Transmission par valeur, par adresse : exemples
11
Procédure qui calcule la somme et le produit de deux entiers :
Procédure SommeProduit (x,y: entier par valeur, som, prod : entier par adresse)
som ← x+y
prod ← x*y
FinProcédure
Procédure qui échange le contenu de deux variabales :
Procédure Echange (x : réel par adresse, y : réel par adresse)
variables z : réel
z ← x
x ← y
y ← z
FinProcédure
Variables locales et globales (1)
12
 On peut manipuler 2 types de variables dans un module (procédure ou
fonction) : des variables locales et des variables globales. Elles se
distinguent par ce qu'on appelle leur portée (leur "champ de définition", leur
"durée de vie")
 Une variable locale n'est connue qu'à l'intérieur du module ou elle a été
définie. Elle est créée à l'appel du module et détruite à la fin de son exécution
 Une variable globale est connue par l'ensemble des modules et le
programme principale. Elle est définie durant toute l’application et peut être
utilisée et modifiée par les différents modules du programme
Variables locales et globales (2)
13
 La manière de distinguer la déclaration des variables locales et globales
diffère selon le langage
 En général, les variables déclarées à l'intérieur d'une fonction ou procédure
sont considérées comme variables locales
• En pseudo-code, on va adopter cette règle pour les variables locales et on
déclarera les variables globales dans le programme principale
• Conseil : Il faut utiliser autant que possible des variables locales plutôt que
des variables globales. Ceci permet d'économiser la mémoire et d'assurer
l'indépendance de la procédure ou de la fonction

Contenu connexe

Tendances

Chapitre3 2013 POO
Chapitre3 2013 POOChapitre3 2013 POO
Chapitre3 2013 POO
Seif Eddine Attia
 
FormationPython2019.pptx
FormationPython2019.pptxFormationPython2019.pptx
FormationPython2019.pptx
LamissGhoul1
 
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI Cours les Listes doublement chainées Prof. KHALIFA MANSOURI
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI
Mansouri Khalifa
 
Chap4 Récursivité en python
Chap4 Récursivité en pythonChap4 Récursivité en python
Chap4 Récursivité en python
Mariem ZAOUALI
 
Chapitre 4 récursivité
Chapitre 4 récursivitéChapitre 4 récursivité
Chapitre 4 récursivité
Sana Aroussi
 
Formation python 3
Formation python 3Formation python 3
Formation python 3
WajihBaghdadi1
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
slimyaich3
 
Cours listes
Cours listesCours listes
Cours listes
Brahim BESSAA
 
Atelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El HassaniAtelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El Hassani
Shellmates
 
Série sous programmes (bac scientifique)
Série sous programmes (bac scientifique)Série sous programmes (bac scientifique)
Série sous programmes (bac scientifique)
Hichem Kemali
 
Algorithmique programmation2018
Algorithmique programmation2018Algorithmique programmation2018
Algorithmique programmation2018
salah fenni
 
Chap1: Cours en C++
Chap1: Cours en C++Chap1: Cours en C++
Chap1: Cours en C++
Aziz Darouichi
 
resume algo 2023.pdf
resume algo 2023.pdfresume algo 2023.pdf
resume algo 2023.pdf
salah fenni
 
Chapitre 2 complexité
Chapitre 2 complexitéChapitre 2 complexité
Chapitre 2 complexité
Sana Aroussi
 
Algorithmique et Structures de Données II
Algorithmique et Structures de Données IIAlgorithmique et Structures de Données II
Algorithmique et Structures de Données II
Riadh Bouslimi
 
Devoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 siDevoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 si
Narûtö Bàl'Sèm
 
POO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et PolymorphismePOO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et Polymorphisme
Mouna Torjmen
 
Les algorithmes avancés
Les algorithmes avancésLes algorithmes avancés
Les algorithmes avancés
mohamed_SAYARI
 
Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références
Aziz Darouichi
 

Tendances (20)

Chapitre3 2013 POO
Chapitre3 2013 POOChapitre3 2013 POO
Chapitre3 2013 POO
 
FormationPython2019.pptx
FormationPython2019.pptxFormationPython2019.pptx
FormationPython2019.pptx
 
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI Cours les Listes doublement chainées Prof. KHALIFA MANSOURI
Cours les Listes doublement chainées Prof. KHALIFA MANSOURI
 
Chap4 Récursivité en python
Chap4 Récursivité en pythonChap4 Récursivité en python
Chap4 Récursivité en python
 
Chapitre 4 récursivité
Chapitre 4 récursivitéChapitre 4 récursivité
Chapitre 4 récursivité
 
Formation python 3
Formation python 3Formation python 3
Formation python 3
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
 
Cours listes
Cours listesCours listes
Cours listes
 
Atelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El HassaniAtelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El Hassani
 
Série sous programmes (bac scientifique)
Série sous programmes (bac scientifique)Série sous programmes (bac scientifique)
Série sous programmes (bac scientifique)
 
Algorithmique programmation2018
Algorithmique programmation2018Algorithmique programmation2018
Algorithmique programmation2018
 
Chap1: Cours en C++
Chap1: Cours en C++Chap1: Cours en C++
Chap1: Cours en C++
 
resume algo 2023.pdf
resume algo 2023.pdfresume algo 2023.pdf
resume algo 2023.pdf
 
Chapitre 2 complexité
Chapitre 2 complexitéChapitre 2 complexité
Chapitre 2 complexité
 
Algorithmique et Structures de Données II
Algorithmique et Structures de Données IIAlgorithmique et Structures de Données II
Algorithmique et Structures de Données II
 
Devoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 siDevoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 si
 
POO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et PolymorphismePOO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et Polymorphisme
 
Récursivité
RécursivitéRécursivité
Récursivité
 
Les algorithmes avancés
Les algorithmes avancésLes algorithmes avancés
Les algorithmes avancés
 
Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références
 

Similaire à ALGORITHMIQUE fonction et procedure.pptx

Chap3 programmation modulaire en python
Chap3 programmation modulaire en pythonChap3 programmation modulaire en python
Chap3 programmation modulaire en python
Mariem ZAOUALI
 
POO en C++: Les fonctions
POO en C++: Les fonctionsPOO en C++: Les fonctions
POO en C++: Les fonctions
Amina HAMEURLAINE
 
03_Prog_C_Fonctions.pdf
03_Prog_C_Fonctions.pdf03_Prog_C_Fonctions.pdf
03_Prog_C_Fonctions.pdf
Ahmed12314
 
les sous programmes.pptx
les sous programmes.pptxles sous programmes.pptx
les sous programmes.pptx
ZouidAmineMedGhaith
 
ch6 les sous programmes.pdf
ch6 les sous programmes.pdfch6 les sous programmes.pdf
ch6 les sous programmes.pdf
FadouaBouafifSamoud
 
05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...
Hamza SAID
 
Chapitre 04 : les fonctions
Chapitre 04 : les fonctionsChapitre 04 : les fonctions
Chapitre 04 : les fonctions
L’Université Hassan 1er Settat
 
Asd
AsdAsd
Ktab asd
Ktab asdKtab asd
Ktab asd
jemaa samir
 
Php4 Mysql
Php4 MysqlPhp4 Mysql
Php4 Mysql
HamdiBaklouti
 
Les fonctions.pptx
Les fonctions.pptxLes fonctions.pptx
Les fonctions.pptx
souadsadki2
 
ch3_les variables_dynamiques.pdf
ch3_les variables_dynamiques.pdfch3_les variables_dynamiques.pdf
ch3_les variables_dynamiques.pdf
FadouaBouafifSamoud
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
Sana Aroussi
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
Sana Aroussi
 
Cours_Java. Skzozibb nsif keizijfbjzozzml keiei tjeiz9rkr
Cours_Java. Skzozibb nsif keizijfbjzozzml keiei tjeiz9rkrCours_Java. Skzozibb nsif keizijfbjzozzml keiei tjeiz9rkr
Cours_Java. Skzozibb nsif keizijfbjzozzml keiei tjeiz9rkr
JulienKhalil3
 
Algo inf102 2007
Algo inf102 2007Algo inf102 2007
Algo inf102 2007
SergeCowouvi1
 
Algorithme chap 1
Algorithme chap 1Algorithme chap 1
Algorithme chap 1
NAWEL_DERBEL
 
"Guide Fondamental : Les Bases de l'Algorithme"
"Guide Fondamental : Les Bases de l'Algorithme""Guide Fondamental : Les Bases de l'Algorithme"
"Guide Fondamental : Les Bases de l'Algorithme"
Pointer @Info
 

Similaire à ALGORITHMIQUE fonction et procedure.pptx (20)

Chap3 programmation modulaire en python
Chap3 programmation modulaire en pythonChap3 programmation modulaire en python
Chap3 programmation modulaire en python
 
POO en C++: Les fonctions
POO en C++: Les fonctionsPOO en C++: Les fonctions
POO en C++: Les fonctions
 
03_Prog_C_Fonctions.pdf
03_Prog_C_Fonctions.pdf03_Prog_C_Fonctions.pdf
03_Prog_C_Fonctions.pdf
 
les sous programmes.pptx
les sous programmes.pptxles sous programmes.pptx
les sous programmes.pptx
 
ch6 les sous programmes.pdf
ch6 les sous programmes.pdfch6 les sous programmes.pdf
ch6 les sous programmes.pdf
 
05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...
 
Chapitre 04 : les fonctions
Chapitre 04 : les fonctionsChapitre 04 : les fonctions
Chapitre 04 : les fonctions
 
Asd
AsdAsd
Asd
 
Ktab asd
Ktab asdKtab asd
Ktab asd
 
Theme 7
Theme 7Theme 7
Theme 7
 
Python chapitre 4.pdf
Python chapitre 4.pdfPython chapitre 4.pdf
Python chapitre 4.pdf
 
Php4 Mysql
Php4 MysqlPhp4 Mysql
Php4 Mysql
 
Les fonctions.pptx
Les fonctions.pptxLes fonctions.pptx
Les fonctions.pptx
 
ch3_les variables_dynamiques.pdf
ch3_les variables_dynamiques.pdfch3_les variables_dynamiques.pdf
ch3_les variables_dynamiques.pdf
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Cours_Java. Skzozibb nsif keizijfbjzozzml keiei tjeiz9rkr
Cours_Java. Skzozibb nsif keizijfbjzozzml keiei tjeiz9rkrCours_Java. Skzozibb nsif keizijfbjzozzml keiei tjeiz9rkr
Cours_Java. Skzozibb nsif keizijfbjzozzml keiei tjeiz9rkr
 
Algo inf102 2007
Algo inf102 2007Algo inf102 2007
Algo inf102 2007
 
Algorithme chap 1
Algorithme chap 1Algorithme chap 1
Algorithme chap 1
 
"Guide Fondamental : Les Bases de l'Algorithme"
"Guide Fondamental : Les Bases de l'Algorithme""Guide Fondamental : Les Bases de l'Algorithme"
"Guide Fondamental : Les Bases de l'Algorithme"
 

Plus de Hathat10

Maintenance adaptative _maintenance.pptx
Maintenance   adaptative  _maintenance.pptxMaintenance   adaptative  _maintenance.pptx
Maintenance adaptative _maintenance.pptx
Hathat10
 
Droit_des_contrats_doroit des Contrata.ppt
Droit_des_contrats_doroit des Contrata.pptDroit_des_contrats_doroit des Contrata.ppt
Droit_des_contrats_doroit des Contrata.ppt
Hathat10
 
presentation auto ecole projet inial .pptx
presentation auto ecole projet inial .pptxpresentation auto ecole projet inial .pptx
presentation auto ecole projet inial .pptx
Hathat10
 
Structure interne d’un ordinateur.pptx
Structure interne d’un ordinateur.pptxStructure interne d’un ordinateur.pptx
Structure interne d’un ordinateur.pptx
Hathat10
 
clientserveur.pptx
clientserveur.pptxclientserveur.pptx
clientserveur.pptx
Hathat10
 
algorithme chapitre 1 et 2 (1).pptx
algorithme chapitre 1 et 2 (1).pptxalgorithme chapitre 1 et 2 (1).pptx
algorithme chapitre 1 et 2 (1).pptx
Hathat10
 
Cours PHP-CHAP3.pdf
Cours PHP-CHAP3.pdfCours PHP-CHAP3.pdf
Cours PHP-CHAP3.pdf
Hathat10
 
1.pdf
1.pdf1.pdf
1.pdf
Hathat10
 

Plus de Hathat10 (8)

Maintenance adaptative _maintenance.pptx
Maintenance   adaptative  _maintenance.pptxMaintenance   adaptative  _maintenance.pptx
Maintenance adaptative _maintenance.pptx
 
Droit_des_contrats_doroit des Contrata.ppt
Droit_des_contrats_doroit des Contrata.pptDroit_des_contrats_doroit des Contrata.ppt
Droit_des_contrats_doroit des Contrata.ppt
 
presentation auto ecole projet inial .pptx
presentation auto ecole projet inial .pptxpresentation auto ecole projet inial .pptx
presentation auto ecole projet inial .pptx
 
Structure interne d’un ordinateur.pptx
Structure interne d’un ordinateur.pptxStructure interne d’un ordinateur.pptx
Structure interne d’un ordinateur.pptx
 
clientserveur.pptx
clientserveur.pptxclientserveur.pptx
clientserveur.pptx
 
algorithme chapitre 1 et 2 (1).pptx
algorithme chapitre 1 et 2 (1).pptxalgorithme chapitre 1 et 2 (1).pptx
algorithme chapitre 1 et 2 (1).pptx
 
Cours PHP-CHAP3.pdf
Cours PHP-CHAP3.pdfCours PHP-CHAP3.pdf
Cours PHP-CHAP3.pdf
 
1.pdf
1.pdf1.pdf
1.pdf
 

Dernier

Les Vidéoprojecteurs : Guide d'achat et Comparatif
Les Vidéoprojecteurs : Guide d'achat et ComparatifLes Vidéoprojecteurs : Guide d'achat et Comparatif
Les Vidéoprojecteurs : Guide d'achat et Comparatif
Top-plans
 
Technologie hydrostatique, innovation pour la stérilisation des aliments : HI...
Technologie hydrostatique, innovation pour la stérilisation des aliments : HI...Technologie hydrostatique, innovation pour la stérilisation des aliments : HI...
Technologie hydrostatique, innovation pour la stérilisation des aliments : HI...
InnovaSter-Trade Ltd.
 
Rapport Projet ERP - Plateforme Odoo 16 (PFE Licence)
Rapport Projet ERP - Plateforme Odoo 16 (PFE Licence)Rapport Projet ERP - Plateforme Odoo 16 (PFE Licence)
Rapport Projet ERP - Plateforme Odoo 16 (PFE Licence)
Chadi Kammoun
 
M365 Community Days MTL 2024 - Découverte du Process Mining et du Task Mining...
M365 Community Days MTL 2024 - Découverte du Process Mining et du Task Mining...M365 Community Days MTL 2024 - Découverte du Process Mining et du Task Mining...
M365 Community Days MTL 2024 - Découverte du Process Mining et du Task Mining...
Nicolas Georgeault
 
INTELLIGENCE ARTIFICIELLE + INFORMATIQUE QUANTIQUE = LA PLUS GRANDE RÉVOLUTIO...
INTELLIGENCE ARTIFICIELLE + INFORMATIQUE QUANTIQUE = LA PLUS GRANDE RÉVOLUTIO...INTELLIGENCE ARTIFICIELLE + INFORMATIQUE QUANTIQUE = LA PLUS GRANDE RÉVOLUTIO...
INTELLIGENCE ARTIFICIELLE + INFORMATIQUE QUANTIQUE = LA PLUS GRANDE RÉVOLUTIO...
Faga1939
 
La Gestion des risques selon ISO 27005.pdf
La Gestion des risques selon ISO 27005.pdfLa Gestion des risques selon ISO 27005.pdf
La Gestion des risques selon ISO 27005.pdf
SoniazghalKallel
 

Dernier (6)

Les Vidéoprojecteurs : Guide d'achat et Comparatif
Les Vidéoprojecteurs : Guide d'achat et ComparatifLes Vidéoprojecteurs : Guide d'achat et Comparatif
Les Vidéoprojecteurs : Guide d'achat et Comparatif
 
Technologie hydrostatique, innovation pour la stérilisation des aliments : HI...
Technologie hydrostatique, innovation pour la stérilisation des aliments : HI...Technologie hydrostatique, innovation pour la stérilisation des aliments : HI...
Technologie hydrostatique, innovation pour la stérilisation des aliments : HI...
 
Rapport Projet ERP - Plateforme Odoo 16 (PFE Licence)
Rapport Projet ERP - Plateforme Odoo 16 (PFE Licence)Rapport Projet ERP - Plateforme Odoo 16 (PFE Licence)
Rapport Projet ERP - Plateforme Odoo 16 (PFE Licence)
 
M365 Community Days MTL 2024 - Découverte du Process Mining et du Task Mining...
M365 Community Days MTL 2024 - Découverte du Process Mining et du Task Mining...M365 Community Days MTL 2024 - Découverte du Process Mining et du Task Mining...
M365 Community Days MTL 2024 - Découverte du Process Mining et du Task Mining...
 
INTELLIGENCE ARTIFICIELLE + INFORMATIQUE QUANTIQUE = LA PLUS GRANDE RÉVOLUTIO...
INTELLIGENCE ARTIFICIELLE + INFORMATIQUE QUANTIQUE = LA PLUS GRANDE RÉVOLUTIO...INTELLIGENCE ARTIFICIELLE + INFORMATIQUE QUANTIQUE = LA PLUS GRANDE RÉVOLUTIO...
INTELLIGENCE ARTIFICIELLE + INFORMATIQUE QUANTIQUE = LA PLUS GRANDE RÉVOLUTIO...
 
La Gestion des risques selon ISO 27005.pdf
La Gestion des risques selon ISO 27005.pdfLa Gestion des risques selon ISO 27005.pdf
La Gestion des risques selon ISO 27005.pdf
 

ALGORITHMIQUE fonction et procedure.pptx

  • 2. Fonctions et procédures 2  Certains problèmes conduisent à des programmes longs, difficiles à écrire et à comprendre. On les découpe en des parties appelées sous- programmes ou modules  Les fonctions et les procédures sont des modules (groupe d'instructions) indépendants désignés par un nom. Elles ont plusieurs intérêts :  permettent de "factoriser" les programmes, càd de mettre en commun les parties qui se répètent  permettent une structuration et une meilleure lisibilité des programmes  facilitent la maintenance du code (il suffit de modifier une seule fois)  ces procédures et fonctions peuvent éventuellement être réutilisées dans d'autres programmes
  • 3. Fonctions 3  Le rôle d'une fonction en programmation est similaire à celui d'une fonction en mathématique : elle retourne un résultat à partir des valeurs des paramètres  Une fonction s'écrit en dehors du programme principal sous la forme : Fonction nom_fonction (paramètres et leurs types) : type_fonction Instructions constituant le corps de la fonction retourne … FinFonction  Pour le choix d'un nom de fonction il faut respecter les mêmes règles que celles pour les noms de variables  type_fonction est le type du résultat retourné  L'instruction retourne sert à retourner la valeur du résultat
  • 4. Fonctions : exemples 4  La fonction SommeCarre suivante calcule la somme des carrées de deux réels x et y : Fonction SommeCarre (x : réel, y: réel ) : réel variable z : réel z ←x^2+y^2 retourne (z) FinFonction  La fonction Pair suivante détermine si un nombre est pair : Fonction Pair (n : entier ) : booléen retourne (n%2=0) FinFonction
  • 5. Utilisation des fonctions 5  L'utilisation d'une fonction se fera par simple écriture de son nom dans le programme principale. Le résultat étant une valeur, devra être affecté ou être utilisé dans une expression, une écriture, ...  Exepmle : Algorithme exepmleAppelFonction variables z : réel, b : booléen Début b ←Pair(3) z ←5*SommeCarre(7,2)+1 écrire("SommeCarre(3,5)= ", SommeCarre(3,5)) Fin  Lors de l'appel Pair(3) le paramètre formel n est remplacé par le paramètre effectif 3
  • 6. Procèdures 6  Dans certains cas, on peut avoir besoin de répéter une tache dans plusieurs endroits du programme, mais que dans cette tache on ne calcule pas de résultats ou qu'on calcule plusieurs résultats à la fois  Dans ces cas on ne peut pas utiliser une fonction, on utilise une procédure  Une procédure est un sous-programme semblable à une fonction mais qui ne retourne rien  Une procédure s'écrit en dehors du programme principal sous la forme : Procédure nom_procédure (paramètres et leurs types) Instructions constituant le corps de la procédure FinProcédure  Remarque : une procédure peut ne pas avoir de paramètres
  • 7. Appel d'une procédure 7  L'appel d'une procédure, se fait dans le programme principale ou dans une autre procédure par une instruction indiquant le nom de la procédure : Procédure exemple_proc (…) … FinProcédure Algorithme exepmleAppelProcédure Début exemple_proc (…) … Fin  Remarque : contrairement à l'appel d'une fonction, on ne peut pas affecter la procédure appelée ou l'utiliser dans une expression. L'appel d'une procédure est une instruction autonome
  • 8. Paramètres d'une procédure 8  Les paramètres servent à échanger des données entre le programme principale (ou la procédure appelante) et la procédure appelée  Les paramètres placés dans la déclaration d'une procédure sont appelés paramètres formels. Ces paramètres peuvent prendre toutes les valeurs possibles mais ils sont abstraits (n'existent pas réellement)  Les paramètres placés dans l'appel d'une procédure sont appelés paramètres effectifs. ils contiennent les valeurs pour effectuer le traitement  Le nombre de paramètres effectifs doit être égal au nombre de paramètres formels. L'ordre et le type des paramètres doivent correspondre
  • 9. Transmission des paramètres 9 Il existe deux modes de transmission de paramètres dans les langages de programmation :  La transmission par valeur : les valeurs des paramètres effectifs sont affectées aux paramètres formels correspondants au moment de l'appel de la procédure. Dans ce mode le paramètre effectif ne subit aucune modification  La transmission par adresse (ou par référence) : les adresses des paramètres effectifs sont transmises à la procédure appelante. Dans ce mode, le paramètre effectif subit les mêmes modifications que le paramètre formel lors de l'exécution de la procédure  Remarque : le paramètre effectif doit être une variable (et non une valeur) lorsqu'il s'agit d'une transmission par adresse  En pseudo-code, on va préciser explicitement le mode de transmission dans la déclaration de la procédure
  • 10. Transmission des paramètres : exemples 10 Procédure incrementer1 (x : entier par valeur, y : entier par adresse) x ← x+1 y ← y+1 FinProcédure Algorithme Test_incrementer1 variables n, m : entier Début n ← 3 m ← 3 incrementer1(n, m) résultat : écrire (" n= ", n, " et m= ", m) n=3 et m=4 Fin Remarque : l'instruction x ← x+1 n'a pas de sens avec un passage par valeur
  • 11. Transmission par valeur, par adresse : exemples 11 Procédure qui calcule la somme et le produit de deux entiers : Procédure SommeProduit (x,y: entier par valeur, som, prod : entier par adresse) som ← x+y prod ← x*y FinProcédure Procédure qui échange le contenu de deux variabales : Procédure Echange (x : réel par adresse, y : réel par adresse) variables z : réel z ← x x ← y y ← z FinProcédure
  • 12. Variables locales et globales (1) 12  On peut manipuler 2 types de variables dans un module (procédure ou fonction) : des variables locales et des variables globales. Elles se distinguent par ce qu'on appelle leur portée (leur "champ de définition", leur "durée de vie")  Une variable locale n'est connue qu'à l'intérieur du module ou elle a été définie. Elle est créée à l'appel du module et détruite à la fin de son exécution  Une variable globale est connue par l'ensemble des modules et le programme principale. Elle est définie durant toute l’application et peut être utilisée et modifiée par les différents modules du programme
  • 13. Variables locales et globales (2) 13  La manière de distinguer la déclaration des variables locales et globales diffère selon le langage  En général, les variables déclarées à l'intérieur d'une fonction ou procédure sont considérées comme variables locales • En pseudo-code, on va adopter cette règle pour les variables locales et on déclarera les variables globales dans le programme principale • Conseil : Il faut utiliser autant que possible des variables locales plutôt que des variables globales. Ceci permet d'économiser la mémoire et d'assurer l'indépendance de la procédure ou de la fonction