SlideShare une entreprise Scribd logo
1  sur  23
Theme 7 Fonctions originales 2011-03-03
Rappel sur les fonctions (1/2) Entrées Sortie
Rappel sur les fonctions(2/2) Structure d’une fonction Nom + paramètres +instructions Avantages des fonctions Développer du code réutilisable Écriture de fonctions effectuant un certain traitement dans un programme. Possibilité d’effectuer le même traitement plusieurs fois dans un même programme. Poissibilité de réutiliser les fonctions dans d’autres programmes (enregistrées dans un fichier spécial (module)).
Distinction entre fonction et procédure Fonction Peut avoir 0 à n paramètres Séquence d’instructions Retourne un résultat Procédure Peut avoir 0 à n paramètres Séquence d’instructions Ne retourne aucun résultat
Exemple fonction Fonction de calcul de factorielle Paramètres (entrées) de la fonction Nombre x dont on veut calculer la factorielle. Valeur de retour Nombre correspondant au résultat du calcul de la factorielle de x Corps de la fonction Ensemble d’instructions et d’appels de fonctions pour effectuer le traitement (=le calcul de factorielle)
Exemple de procédure (1/2) Procédure d’initialisation d’une liste de taille 10 avec des ‘z’ avec affichage de la liste Paramètres de la procédure aucun Valeur de retour aucune Corps de la fonction Ensemble d’instructions et d’appels de fonctions pour remplir les éléments de la liste avec ‘z’
Exemple de procédure (2/2) Procédure d’initialisation d’une liste de taille 10 avec une chaine entrée en paramètre avec affichage de la liste après le remplissage Paramètres de la procédure: Chaine de caractère Valeur de retour aucune Corps de la fonction Ensemble d’instructions et d’appels de fonctions pour remplir les éléments de la liste avec la chaine entrée en paramètre y compris deux instructions d’affichage après la modification.
définition d’une fonction Syntaxe python Exemple defnomFonction(prm1,prm2,…,prmn) Instruction 1 Instruction2 … return valeurRetour deffactorielle(x):     if (x==0):         return 1 else:         produit = 1         for i in range (1,x+1):             produit = produit*i         return produit
Définition d’une procédure Syntaxe python Exemple defnomFonction(param1,param2,…,paramn) Instruction 1 Instruction2 … defInitListe(paramChaine):        liste=[]        for i in range(10): liste.append(paramChaine) print liste InitListe("Allo!")  defInitListe():    list=[ ]       for i in range(10): list.append("z") printlist
Appel d’une fonction Déclaration de la fonction deffactorielle(x): ……         return produit b=    factorielle(3) print " La factorielle de 3 est",b a=input("Entrez x") print " La factorielle de",a, "est",factorielle(a) Appel de la fonction
Appel d’une procédure defInitListe(x): …… InitListe("Allo!") Déclaration de la fonction Appel de la fonction
Variables locales VS Variables globales Selon le lieu de déclaration Variables locales à la fonction Définies à l’intérieur de la fonction Accessibles à l’intérieur de la fonction Variables globales Définies à l’extérieur de la fonction Leur contenu est visible à l’intérieur de la fonction  La fonction utilise une copie de son contenu (ne peut pas le modifier à l’extérieur de sa portée)
Arguments par défaut Assigner des arguments par défaut pour les paramètres -> possibilité d’appeler la fonction avec une partie des arguments attendus. Exemple def politesse(nom, vedette ='Monsieur'):     print("Veuillez agréer ,", vedette, nom, ", mes salutations cordiales.« )  politesse('Dupont') politesse('Durand', 'Mademoiselle')
Arguments avec étiquettes def oiseau(voltage=100, etat='allume', action='danser la java'): ... print('Ce perroquet ne pourra pas', action) ... print('si vous le branchez sur', voltage, 'volts !') ... print("L'auteur de ceci est completement", etat) ... >>> oiseau(etat='givre', voltage=250, action='vous approuver') Dans Python Si tous les paramètres ont des valeurs d’arguments par défaut -> Appeler les arguments dans n’importe quel ordre.
Définir une fonction à l’intérieur d’une autre def fonction1(prm1,prm2.prm3): 		instr1	 		… def fonction2(prma,prmb): 		       instr3 		       ….
Importer des fonctions définies dans d’autres modules Module: fonctionsAffichage.py defafficherMsgEntier(): print("Veuillez saisir un entier") defafficherMsgString(): print("Veuillez saisir une chaine") defafficherMsgBool(): print("Veuillez saisir un Booleen") Module: tstModule.py import fonctionsAffichage choix= input("0-Entier1-Chaine2-Booleen ") if choix==0:         fonctionsAffichage.afficherMsgEntier() elif choix==1: fonctionsAffichage.afficherMsgString() elif choix==2: fonctionsAffichage.afficherMsgBool() else: print('Erreur!‘)
Exercice 1 Écrire et tester une fonction qui calcule la vitesse. Les paramètres d’entrées sont saisis au niveau du programme principal. Quels sont les paramètres de cette fonction? Quelle est la valeur de retour? distance , temps vitesse
Algo Exercice 1 Fonction  calculVitesse(prmDistance,prmTemps) Début |  |vitesse=prmDistance / prmTemps | | retourner vitesse | Fin Algorithme  principal Début | |lire(distance,temps) |afficher(calculVitesse(distance,temps)) | Fin
Exercice 2 Écrire une fonction qui affiche le premier élément, le dernier élément, la taille d’une liste donnée en entrée, si la liste est vide afficher un message en conséquent. Quels sont les paramètres de cette fonction? Quelle est la valeur de retour? liste aucune valeur
Algo Exercice 2 Procédure  affichagesListe(prmListe) Début |		si liste non vide alors | 	 afficher ("Le premier élément est:",liste[0]) |	 		 afficher ("Le dernier élément est:",liste[taille(liste)-1]) | 	 afficher ("La taille de la liste est:",taille(liste)) |		sinon |			 afficher ("La liste est vide")  	 |		fin si | Fin Algorithme  principal Début | |liste1=[1,2,3,4,5,6,7,8,9] |affichageListe(liste1) |liste2=[‘a’,’b’,’b’,’allo’] |affichageListe(liste2) |liste3=[] |affichageListe(liste3) Fin
Problème 1 Hauteur Largeur Longeur Écrire un programme qui pour un parallélépipède permet d’effectuer les traitements suivants: Entrer les mesures(longeur, largeur, hauteur) Calculer le volume du solide Calculer les surfaces des trois faces caractéristiques du Parallélépipède et les afficher Dire si le Parallélépipède en question est un cube ou non. Identifier les fonctions à programmer En identifier les paramètres Identifier la valeur de sortie, en faisant la distinction entre procédure et fonction Écrire les fonctions dans un module fonctionsParall.py Écrire un script qui fait appel a ces fonctions dans un module principal.py
Solution Problème 1 Fonctions (et procédures) Lecture mesures du solide  Paramètres: aucun Valeur de retour: liste des trois mesures Calcul et affichage volume du solide Paramètres: liste des trois mesures Valeur de retour: volume du solide Calcul et affichage  surface face1 Paramètres: liste des trois mesures Valeur de retour: surface1 Calcul et affichage  surface face2 Paramètres: liste des trois mesures Valeur de retour: surface2 Calcul et affichage  surface face3 Paramètres: liste des trois mesures Valeur de retour: surface3 Tester si solide est cube Paramètres: liste des trois mesures Valeur de retour: vrai ou faux (valeur booléenne)
Problème 2 A l’aide du module turtle, nous désirons écrire un programme qui donne les dessins ci-bas.  Pour ce faire nous désirons écrire deux fonctions comme suit: Une fonction carre qui dessine un carré, ayant pour paramètres une longueur et une couleur   Une fonction dessin  qui insère trois carrés de dimensions  spécifiées par l’utilisateur, et respectivement de couleurs rouge, bleue et verte. N.B: Vous aurez à utiliser les fonctions suivantes du module turtle forward(taille) right(angle) Color(couleur)

Contenu connexe

Tendances

Développement informatique : Programmation fonctionnelle, décorateur et génér...
Développement informatique : Programmation fonctionnelle, décorateur et génér...Développement informatique : Programmation fonctionnelle, décorateur et génér...
Développement informatique : Programmation fonctionnelle, décorateur et génér...ECAM Brussels Engineering School
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniShellmates
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmiqueAbdoulaye Dieng
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmiqueAbdoulaye Dieng
 
Interface fonctionnelle, Lambda expression, méthode par défaut, référence de...
Interface fonctionnelle, Lambda expression, méthode par défaut,  référence de...Interface fonctionnelle, Lambda expression, méthode par défaut,  référence de...
Interface fonctionnelle, Lambda expression, méthode par défaut, référence de...MICHRAFY MUSTAFA
 
La programmation modulaire en Python
La programmation modulaire en PythonLa programmation modulaire en Python
La programmation modulaire en PythonABDESSELAM ARROU
 
Python avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de donnéesPython avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de donnéesECAM Brussels Engineering School
 
Développement informatique : Algorithmique II : Techniques de recherche en in...
Développement informatique : Algorithmique II : Techniques de recherche en in...Développement informatique : Algorithmique II : Techniques de recherche en in...
Développement informatique : Algorithmique II : Techniques de recherche en in...ECAM Brussels Engineering School
 
Chapitre 2: String en Java
Chapitre 2:  String en JavaChapitre 2:  String en Java
Chapitre 2: String en JavaAziz Darouichi
 
Python For Data Science - French Course
Python For Data Science - French CoursePython For Data Science - French Course
Python For Data Science - French CourseHaytam EL YOUSSFI
 
Programmation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulationProgrammation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulationECAM Brussels Engineering School
 
Les fondamentaux du langage C
Les fondamentaux du langage CLes fondamentaux du langage C
Les fondamentaux du langage CAbdoulaye Dieng
 
Programmes et objets informatiques (Prof. Ch. Rapin, Juillet 1989)
Programmes et objets informatiques (Prof. Ch. Rapin, Juillet 1989)Programmes et objets informatiques (Prof. Ch. Rapin, Juillet 1989)
Programmes et objets informatiques (Prof. Ch. Rapin, Juillet 1989)ebruchez
 
Python avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementiellePython avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementielleECAM Brussels Engineering School
 

Tendances (20)

Tests unitaires : Utilisation de la librairie CUnit
Tests unitaires : Utilisation de la librairie CUnitTests unitaires : Utilisation de la librairie CUnit
Tests unitaires : Utilisation de la librairie CUnit
 
Type abstrait de données
Type abstrait de donnéesType abstrait de données
Type abstrait de données
 
Développement informatique : Programmation fonctionnelle, décorateur et génér...
Développement informatique : Programmation fonctionnelle, décorateur et génér...Développement informatique : Programmation fonctionnelle, décorateur et génér...
Développement informatique : Programmation fonctionnelle, décorateur et génér...
 
Python après 15 ans de JAVA
Python après 15 ans de JAVAPython après 15 ans de JAVA
Python après 15 ans de JAVA
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El Hassani
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmique
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmique
 
Les listes en Python
Les listes en PythonLes listes en Python
Les listes en Python
 
C++ 11/14
C++ 11/14C++ 11/14
C++ 11/14
 
Python avancé : Qualité de code et convention de codage
Python avancé : Qualité de code et convention de codagePython avancé : Qualité de code et convention de codage
Python avancé : Qualité de code et convention de codage
 
Interface fonctionnelle, Lambda expression, méthode par défaut, référence de...
Interface fonctionnelle, Lambda expression, méthode par défaut,  référence de...Interface fonctionnelle, Lambda expression, méthode par défaut,  référence de...
Interface fonctionnelle, Lambda expression, méthode par défaut, référence de...
 
La programmation modulaire en Python
La programmation modulaire en PythonLa programmation modulaire en Python
La programmation modulaire en Python
 
Python avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de donnéesPython avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de données
 
Développement informatique : Algorithmique II : Techniques de recherche en in...
Développement informatique : Algorithmique II : Techniques de recherche en in...Développement informatique : Algorithmique II : Techniques de recherche en in...
Développement informatique : Algorithmique II : Techniques de recherche en in...
 
Chapitre 2: String en Java
Chapitre 2:  String en JavaChapitre 2:  String en Java
Chapitre 2: String en Java
 
Python For Data Science - French Course
Python For Data Science - French CoursePython For Data Science - French Course
Python For Data Science - French Course
 
Programmation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulationProgrammation orientée objet : Object, classe et encapsulation
Programmation orientée objet : Object, classe et encapsulation
 
Les fondamentaux du langage C
Les fondamentaux du langage CLes fondamentaux du langage C
Les fondamentaux du langage C
 
Programmes et objets informatiques (Prof. Ch. Rapin, Juillet 1989)
Programmes et objets informatiques (Prof. Ch. Rapin, Juillet 1989)Programmes et objets informatiques (Prof. Ch. Rapin, Juillet 1989)
Programmes et objets informatiques (Prof. Ch. Rapin, Juillet 1989)
 
Python avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementiellePython avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementielle
 

En vedette

Catalogue herome mars 2012
Catalogue herome mars 2012Catalogue herome mars 2012
Catalogue herome mars 2012Mostafa Kander
 
Souvenirs de-1968(gt-03.14)a
Souvenirs de-1968(gt-03.14)aSouvenirs de-1968(gt-03.14)a
Souvenirs de-1968(gt-03.14)aMircea Tivadar
 
M8 lesson 1 1 evaluate exponents
M8 lesson 1 1 evaluate exponentsM8 lesson 1 1 evaluate exponents
M8 lesson 1 1 evaluate exponentslothomas
 
Sensaciones al amanecer
Sensaciones al amanecerSensaciones al amanecer
Sensaciones al amanecercriscordero
 
Court extract
Court extractCourt extract
Court extractsegun43
 
G04 presentación grupo 4
G04 presentación grupo 4G04 presentación grupo 4
G04 presentación grupo 4tallera
 
Mont des oliviers- holly land
Mont des oliviers- holly landMont des oliviers- holly land
Mont des oliviers- holly landARCHOUK
 
2ème édition des Distinctions de l'Académie des Métiers de l'Industrie du Pay...
2ème édition des Distinctions de l'Académie des Métiers de l'Industrie du Pay...2ème édition des Distinctions de l'Académie des Métiers de l'Industrie du Pay...
2ème édition des Distinctions de l'Académie des Métiers de l'Industrie du Pay...Industrie_Vitre
 
Pérennité d'entreprise 7 mai 2014 - Réjean Dancause
Pérennité d'entreprise 7 mai 2014 - Réjean DancausePérennité d'entreprise 7 mai 2014 - Réjean Dancause
Pérennité d'entreprise 7 mai 2014 - Réjean DancauseChambre de commerce de Lévis
 
Présentation du 26 septembre 2012 - DoYouSeo Camp
Présentation du 26 septembre 2012 - DoYouSeo CampPrésentation du 26 septembre 2012 - DoYouSeo Camp
Présentation du 26 septembre 2012 - DoYouSeo CampBruno Hug
 
CafeNMons #1 - Pierre Lelong - Présentation des centres de compétences
CafeNMons #1 - Pierre Lelong - Présentation des centres de compétencesCafeNMons #1 - Pierre Lelong - Présentation des centres de compétences
CafeNMons #1 - Pierre Lelong - Présentation des centres de compétencesCafé Numérique Mons
 
Aide fiscale-Impots Taxes Au Québec : Glossaire de E à I
Aide fiscale-Impots Taxes Au Québec : Glossaire de E à IAide fiscale-Impots Taxes Au Québec : Glossaire de E à I
Aide fiscale-Impots Taxes Au Québec : Glossaire de E à IDéfenseurs Fiscaux Inc
 
Le document interne sur lés finances du PS 81
Le document interne sur lés finances du PS 81Le document interne sur lés finances du PS 81
Le document interne sur lés finances du PS 81Fabrice Valéry
 
joyeux nowel famille!
joyeux nowel famille!joyeux nowel famille!
joyeux nowel famille!gircat
 
Community manager en la industria del calzado
Community manager en la industria del calzadoCommunity manager en la industria del calzado
Community manager en la industria del calzadoBee Social
 
La adivina
La adivinaLa adivina
La adivinaPaloma
 

En vedette (20)

Catalogue herome mars 2012
Catalogue herome mars 2012Catalogue herome mars 2012
Catalogue herome mars 2012
 
Souvenirs de-1968(gt-03.14)a
Souvenirs de-1968(gt-03.14)aSouvenirs de-1968(gt-03.14)a
Souvenirs de-1968(gt-03.14)a
 
Lideres
LideresLideres
Lideres
 
Le réseau koezio rhone
Le réseau koezio rhoneLe réseau koezio rhone
Le réseau koezio rhone
 
M8 lesson 1 1 evaluate exponents
M8 lesson 1 1 evaluate exponentsM8 lesson 1 1 evaluate exponents
M8 lesson 1 1 evaluate exponents
 
Sensaciones al amanecer
Sensaciones al amanecerSensaciones al amanecer
Sensaciones al amanecer
 
Court extract
Court extractCourt extract
Court extract
 
G04 presentación grupo 4
G04 presentación grupo 4G04 presentación grupo 4
G04 presentación grupo 4
 
Mont des oliviers- holly land
Mont des oliviers- holly landMont des oliviers- holly land
Mont des oliviers- holly land
 
2ème édition des Distinctions de l'Académie des Métiers de l'Industrie du Pay...
2ème édition des Distinctions de l'Académie des Métiers de l'Industrie du Pay...2ème édition des Distinctions de l'Académie des Métiers de l'Industrie du Pay...
2ème édition des Distinctions de l'Académie des Métiers de l'Industrie du Pay...
 
Pérennité d'entreprise 7 mai 2014 - Réjean Dancause
Pérennité d'entreprise 7 mai 2014 - Réjean DancausePérennité d'entreprise 7 mai 2014 - Réjean Dancause
Pérennité d'entreprise 7 mai 2014 - Réjean Dancause
 
Présentation du 26 septembre 2012 - DoYouSeo Camp
Présentation du 26 septembre 2012 - DoYouSeo CampPrésentation du 26 septembre 2012 - DoYouSeo Camp
Présentation du 26 septembre 2012 - DoYouSeo Camp
 
CafeNMons #1 - Pierre Lelong - Présentation des centres de compétences
CafeNMons #1 - Pierre Lelong - Présentation des centres de compétencesCafeNMons #1 - Pierre Lelong - Présentation des centres de compétences
CafeNMons #1 - Pierre Lelong - Présentation des centres de compétences
 
Sustainable supply chain_bidea
Sustainable supply chain_bideaSustainable supply chain_bidea
Sustainable supply chain_bidea
 
Aide fiscale-Impots Taxes Au Québec : Glossaire de E à I
Aide fiscale-Impots Taxes Au Québec : Glossaire de E à IAide fiscale-Impots Taxes Au Québec : Glossaire de E à I
Aide fiscale-Impots Taxes Au Québec : Glossaire de E à I
 
Le document interne sur lés finances du PS 81
Le document interne sur lés finances du PS 81Le document interne sur lés finances du PS 81
Le document interne sur lés finances du PS 81
 
joyeux nowel famille!
joyeux nowel famille!joyeux nowel famille!
joyeux nowel famille!
 
D Leech Questionnaires
D Leech QuestionnairesD Leech Questionnaires
D Leech Questionnaires
 
Community manager en la industria del calzado
Community manager en la industria del calzadoCommunity manager en la industria del calzado
Community manager en la industria del calzado
 
La adivina
La adivinaLa adivina
La adivina
 

Similaire à Theme 7

03_Prog_C_Fonctions.pdf
03_Prog_C_Fonctions.pdf03_Prog_C_Fonctions.pdf
03_Prog_C_Fonctions.pdfAhmed12314
 
Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019Aziz Darouichi
 
Chapitre 4 Fonctions et procédures.pdf
Chapitre 4 Fonctions et procédures.pdfChapitre 4 Fonctions et procédures.pdf
Chapitre 4 Fonctions et procédures.pdfC00LiMoUn
 
02 Spécificité du C++ COURS SYS SYSSSSSS
02 Spécificité du C++  COURS SYS SYSSSSSS02 Spécificité du C++  COURS SYS SYSSSSSS
02 Spécificité du C++ COURS SYS SYSSSSSSAyoubElmrabet6
 
01 - Introduction à Python chaines de caractères.pdf
01 - Introduction à Python chaines de caractères.pdf01 - Introduction à Python chaines de caractères.pdf
01 - Introduction à Python chaines de caractères.pdfMARYAM510573
 
Javascript ne se limite pas à jquery
Javascript ne se limite pas à jqueryJavascript ne se limite pas à jquery
Javascript ne se limite pas à jqueryneuros
 
Annotation Java vs. Decorator Python
Annotation Java vs. Decorator PythonAnnotation Java vs. Decorator Python
Annotation Java vs. Decorator PythonDidier Plaindoux
 
FormationPython2019.pptx
FormationPython2019.pptxFormationPython2019.pptx
FormationPython2019.pptxLamissGhoul1
 
09 big data mapreduce
09 big data mapreduce09 big data mapreduce
09 big data mapreducePatrick Bury
 
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...Normandy JUG
 
Algorithmique Amp Programmation (R Sum
Algorithmique  Amp  Programmation (R SumAlgorithmique  Amp  Programmation (R Sum
Algorithmique Amp Programmation (R SumAmy Isleb
 
Chapitre4 cours de java
Chapitre4 cours de javaChapitre4 cours de java
Chapitre4 cours de javainfo1994
 

Similaire à Theme 7 (20)

03_Prog_C_Fonctions.pdf
03_Prog_C_Fonctions.pdf03_Prog_C_Fonctions.pdf
03_Prog_C_Fonctions.pdf
 
Chap2fonctionscpp
Chap2fonctionscppChap2fonctionscpp
Chap2fonctionscpp
 
Theme 6
Theme 6Theme 6
Theme 6
 
Python chapitre 4.pdf
Python chapitre 4.pdfPython chapitre 4.pdf
Python chapitre 4.pdf
 
Introduction à Python
Introduction à PythonIntroduction à Python
Introduction à Python
 
Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019
 
COURS_PYTHON_22.ppt
COURS_PYTHON_22.pptCOURS_PYTHON_22.ppt
COURS_PYTHON_22.ppt
 
Chapitre 4 Fonctions et procédures.pdf
Chapitre 4 Fonctions et procédures.pdfChapitre 4 Fonctions et procédures.pdf
Chapitre 4 Fonctions et procédures.pdf
 
02 Spécificité du C++ COURS SYS SYSSSSSS
02 Spécificité du C++  COURS SYS SYSSSSSS02 Spécificité du C++  COURS SYS SYSSSSSS
02 Spécificité du C++ COURS SYS SYSSSSSS
 
Tp-jquery
Tp-jqueryTp-jquery
Tp-jquery
 
01 - Introduction à Python chaines de caractères.pdf
01 - Introduction à Python chaines de caractères.pdf01 - Introduction à Python chaines de caractères.pdf
01 - Introduction à Python chaines de caractères.pdf
 
Javascript ne se limite pas à jquery
Javascript ne se limite pas à jqueryJavascript ne se limite pas à jquery
Javascript ne se limite pas à jquery
 
Annotation Java vs. Decorator Python
Annotation Java vs. Decorator PythonAnnotation Java vs. Decorator Python
Annotation Java vs. Decorator Python
 
TP5_2020.pdf
TP5_2020.pdfTP5_2020.pdf
TP5_2020.pdf
 
FormationPython2019.pptx
FormationPython2019.pptxFormationPython2019.pptx
FormationPython2019.pptx
 
09 big data mapreduce
09 big data mapreduce09 big data mapreduce
09 big data mapreduce
 
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
 
Algorithmique Amp Programmation (R Sum
Algorithmique  Amp  Programmation (R SumAlgorithmique  Amp  Programmation (R Sum
Algorithmique Amp Programmation (R Sum
 
Chapitre4 cours de java
Chapitre4 cours de javaChapitre4 cours de java
Chapitre4 cours de java
 
C# 7 - Nouveautés
C# 7 - NouveautésC# 7 - Nouveautés
C# 7 - Nouveautés
 

Plus de salmazen

Plus de salmazen (20)

Theme 10
Theme 10Theme 10
Theme 10
 
Theme 10
Theme 10Theme 10
Theme 10
 
Theme 9(bis)
Theme 9(bis)Theme 9(bis)
Theme 9(bis)
 
Theme 9
Theme 9Theme 9
Theme 9
 
Theme 8(suite)
Theme 8(suite)Theme 8(suite)
Theme 8(suite)
 
Cours python
Cours pythonCours python
Cours python
 
Theme 8
Theme 8Theme 8
Theme 8
 
Theme 7 (suite)
Theme 7 (suite)Theme 7 (suite)
Theme 7 (suite)
 
Theme 5
Theme 5Theme 5
Theme 5
 
Exemples for1
Exemples for1Exemples for1
Exemples for1
 
Exemples while2
Exemples while2Exemples while2
Exemples while2
 
Exemples for
Exemples forExemples for
Exemples for
 
Exemples if
Exemples ifExemples if
Exemples if
 
Exemples while
Exemples whileExemples while
Exemples while
 
Theme3
Theme3Theme3
Theme3
 
Theme4
Theme4Theme4
Theme4
 
Theme3
Theme3Theme3
Theme3
 
Exercice0
Exercice0Exercice0
Exercice0
 
Theme2
Theme2Theme2
Theme2
 
Theme2
Theme2Theme2
Theme2
 

Theme 7

  • 1. Theme 7 Fonctions originales 2011-03-03
  • 2. Rappel sur les fonctions (1/2) Entrées Sortie
  • 3. Rappel sur les fonctions(2/2) Structure d’une fonction Nom + paramètres +instructions Avantages des fonctions Développer du code réutilisable Écriture de fonctions effectuant un certain traitement dans un programme. Possibilité d’effectuer le même traitement plusieurs fois dans un même programme. Poissibilité de réutiliser les fonctions dans d’autres programmes (enregistrées dans un fichier spécial (module)).
  • 4. Distinction entre fonction et procédure Fonction Peut avoir 0 à n paramètres Séquence d’instructions Retourne un résultat Procédure Peut avoir 0 à n paramètres Séquence d’instructions Ne retourne aucun résultat
  • 5. Exemple fonction Fonction de calcul de factorielle Paramètres (entrées) de la fonction Nombre x dont on veut calculer la factorielle. Valeur de retour Nombre correspondant au résultat du calcul de la factorielle de x Corps de la fonction Ensemble d’instructions et d’appels de fonctions pour effectuer le traitement (=le calcul de factorielle)
  • 6. Exemple de procédure (1/2) Procédure d’initialisation d’une liste de taille 10 avec des ‘z’ avec affichage de la liste Paramètres de la procédure aucun Valeur de retour aucune Corps de la fonction Ensemble d’instructions et d’appels de fonctions pour remplir les éléments de la liste avec ‘z’
  • 7. Exemple de procédure (2/2) Procédure d’initialisation d’une liste de taille 10 avec une chaine entrée en paramètre avec affichage de la liste après le remplissage Paramètres de la procédure: Chaine de caractère Valeur de retour aucune Corps de la fonction Ensemble d’instructions et d’appels de fonctions pour remplir les éléments de la liste avec la chaine entrée en paramètre y compris deux instructions d’affichage après la modification.
  • 8. définition d’une fonction Syntaxe python Exemple defnomFonction(prm1,prm2,…,prmn) Instruction 1 Instruction2 … return valeurRetour deffactorielle(x): if (x==0): return 1 else: produit = 1 for i in range (1,x+1): produit = produit*i return produit
  • 9. Définition d’une procédure Syntaxe python Exemple defnomFonction(param1,param2,…,paramn) Instruction 1 Instruction2 … defInitListe(paramChaine): liste=[] for i in range(10): liste.append(paramChaine) print liste InitListe("Allo!") defInitListe(): list=[ ] for i in range(10): list.append("z") printlist
  • 10. Appel d’une fonction Déclaration de la fonction deffactorielle(x): …… return produit b= factorielle(3) print " La factorielle de 3 est",b a=input("Entrez x") print " La factorielle de",a, "est",factorielle(a) Appel de la fonction
  • 11. Appel d’une procédure defInitListe(x): …… InitListe("Allo!") Déclaration de la fonction Appel de la fonction
  • 12. Variables locales VS Variables globales Selon le lieu de déclaration Variables locales à la fonction Définies à l’intérieur de la fonction Accessibles à l’intérieur de la fonction Variables globales Définies à l’extérieur de la fonction Leur contenu est visible à l’intérieur de la fonction La fonction utilise une copie de son contenu (ne peut pas le modifier à l’extérieur de sa portée)
  • 13. Arguments par défaut Assigner des arguments par défaut pour les paramètres -> possibilité d’appeler la fonction avec une partie des arguments attendus. Exemple def politesse(nom, vedette ='Monsieur'):     print("Veuillez agréer ,", vedette, nom, ", mes salutations cordiales.« ) politesse('Dupont') politesse('Durand', 'Mademoiselle')
  • 14. Arguments avec étiquettes def oiseau(voltage=100, etat='allume', action='danser la java'): ... print('Ce perroquet ne pourra pas', action) ... print('si vous le branchez sur', voltage, 'volts !') ... print("L'auteur de ceci est completement", etat) ... >>> oiseau(etat='givre', voltage=250, action='vous approuver') Dans Python Si tous les paramètres ont des valeurs d’arguments par défaut -> Appeler les arguments dans n’importe quel ordre.
  • 15. Définir une fonction à l’intérieur d’une autre def fonction1(prm1,prm2.prm3): instr1 … def fonction2(prma,prmb): instr3 ….
  • 16. Importer des fonctions définies dans d’autres modules Module: fonctionsAffichage.py defafficherMsgEntier(): print("Veuillez saisir un entier") defafficherMsgString(): print("Veuillez saisir une chaine") defafficherMsgBool(): print("Veuillez saisir un Booleen") Module: tstModule.py import fonctionsAffichage choix= input("0-Entier1-Chaine2-Booleen ") if choix==0: fonctionsAffichage.afficherMsgEntier() elif choix==1: fonctionsAffichage.afficherMsgString() elif choix==2: fonctionsAffichage.afficherMsgBool() else: print('Erreur!‘)
  • 17. Exercice 1 Écrire et tester une fonction qui calcule la vitesse. Les paramètres d’entrées sont saisis au niveau du programme principal. Quels sont les paramètres de cette fonction? Quelle est la valeur de retour? distance , temps vitesse
  • 18. Algo Exercice 1 Fonction calculVitesse(prmDistance,prmTemps) Début | |vitesse=prmDistance / prmTemps | | retourner vitesse | Fin Algorithme principal Début | |lire(distance,temps) |afficher(calculVitesse(distance,temps)) | Fin
  • 19. Exercice 2 Écrire une fonction qui affiche le premier élément, le dernier élément, la taille d’une liste donnée en entrée, si la liste est vide afficher un message en conséquent. Quels sont les paramètres de cette fonction? Quelle est la valeur de retour? liste aucune valeur
  • 20. Algo Exercice 2 Procédure affichagesListe(prmListe) Début | si liste non vide alors | afficher ("Le premier élément est:",liste[0]) | afficher ("Le dernier élément est:",liste[taille(liste)-1]) | afficher ("La taille de la liste est:",taille(liste)) | sinon | afficher ("La liste est vide") | fin si | Fin Algorithme principal Début | |liste1=[1,2,3,4,5,6,7,8,9] |affichageListe(liste1) |liste2=[‘a’,’b’,’b’,’allo’] |affichageListe(liste2) |liste3=[] |affichageListe(liste3) Fin
  • 21. Problème 1 Hauteur Largeur Longeur Écrire un programme qui pour un parallélépipède permet d’effectuer les traitements suivants: Entrer les mesures(longeur, largeur, hauteur) Calculer le volume du solide Calculer les surfaces des trois faces caractéristiques du Parallélépipède et les afficher Dire si le Parallélépipède en question est un cube ou non. Identifier les fonctions à programmer En identifier les paramètres Identifier la valeur de sortie, en faisant la distinction entre procédure et fonction Écrire les fonctions dans un module fonctionsParall.py Écrire un script qui fait appel a ces fonctions dans un module principal.py
  • 22. Solution Problème 1 Fonctions (et procédures) Lecture mesures du solide Paramètres: aucun Valeur de retour: liste des trois mesures Calcul et affichage volume du solide Paramètres: liste des trois mesures Valeur de retour: volume du solide Calcul et affichage surface face1 Paramètres: liste des trois mesures Valeur de retour: surface1 Calcul et affichage surface face2 Paramètres: liste des trois mesures Valeur de retour: surface2 Calcul et affichage surface face3 Paramètres: liste des trois mesures Valeur de retour: surface3 Tester si solide est cube Paramètres: liste des trois mesures Valeur de retour: vrai ou faux (valeur booléenne)
  • 23. Problème 2 A l’aide du module turtle, nous désirons écrire un programme qui donne les dessins ci-bas. Pour ce faire nous désirons écrire deux fonctions comme suit: Une fonction carre qui dessine un carré, ayant pour paramètres une longueur et une couleur Une fonction dessin qui insère trois carrés de dimensions spécifiées par l’utilisateur, et respectivement de couleurs rouge, bleue et verte. N.B: Vous aurez à utiliser les fonctions suivantes du module turtle forward(taille) right(angle) Color(couleur)