Theme 7 Fonctions originales<br />2011-03-03<br />
Rappel sur les fonctions (1/2)<br />Entrées<br />Sortie<br />
Rappel sur les fonctions(2/2)<br />Structure d’une fonction<br />Nom + paramètres +instructions<br />Avantages des fonctio...
Distinction entre fonction et procédure<br />Fonction<br />Peut avoir 0 à n paramètres<br />Séquence d’instructions<br />R...
Exemple fonction<br />Fonction de calcul de factorielle<br />Paramètres (entrées) de la fonction<br />Nombre x dont on veu...
Exemple de procédure (1/2)<br />Procédure d’initialisation d’une liste de taille 10 avec des ‘z’ avec affichage de la list...
Exemple de procédure (2/2)<br />Procédure d’initialisation d’une liste de taille 10 avec une chaine entrée en paramètre av...
définition d’une fonction<br />Syntaxe python<br />Exemple<br />defnomFonction(prm1,prm2,…,prmn)<br />Instruction 1<br />I...
Définition d’une procédure<br />Syntaxe python<br />Exemple<br />defnomFonction(param1,param2,…,paramn)<br />Instruction 1...
Appel d’une fonction<br />Déclaration de la fonction<br />deffactorielle(x):<br />……<br />        return produit<br />b=  ...
Appel d’une procédure<br />defInitListe(x):<br />……<br />InitListe("Allo!")<br />Déclaration de la fonction<br />Appel de ...
Variables locales VS Variables globales<br />Selon le lieu de déclaration<br />Variables locales à la fonction<br />Défini...
Arguments par défaut<br />Assigner des arguments par défaut pour les paramètres -> possibilité d’appeler la fonction avec ...
Arguments avec étiquettes<br />def oiseau(voltage=100, etat='allume', action='danser la java'):<br />... print('Ce perroqu...
Définir une fonction à l’intérieur d’une autre<br />def fonction1(prm1,prm2.prm3):<br />		instr1	<br />		…<br />def foncti...
Importer des fonctions définies dans d’autres modules<br />Module: fonctionsAffichage.py<br />defafficherMsgEntier():<br /...
Exercice 1<br />Écrire et tester une fonction qui calcule la vitesse. Les paramètres d’entrées sont saisis au niveau du pr...
Algo Exercice 1<br />Fonction  calculVitesse(prmDistance,prmTemps)<br />Début<br />| <br />|vitesse=prmDistance / prmTemps...
Exercice 2<br />Écrire une fonction qui affiche le premier élément, le dernier élément, la taille d’une liste donnée en en...
Algo Exercice 2<br />Procédure  affichagesListe(prmListe)<br />Début<br />|		si liste non vide alors<br />| 	 afficher ("L...
Problème 1<br />Hauteur<br />Largeur<br />Longeur<br />Écrire un programme qui pour un parallélépipède permet d’effectuer ...
Solution Problème 1<br />Fonctions (et procédures)<br />Lecture mesures du solide <br />Paramètres: aucun<br />Valeur de r...
Problème 2<br />A l’aide du module turtle, nous désirons écrire un programme qui donne les dessins ci-bas. <br />Pour ce f...
Prochain SlideShare
Chargement dans…5
×

Theme 7

548 vues

Publié le

Publié dans : Business, Voyages
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
548
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
12
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Theme 7

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

×