Académique Documents
Professionnel Documents
Culture Documents
ENSAM RABAT
Présenté par :
Creative Commons
Pr. Nordine ZIDANE
INTRODUCTION
PLAN
PLAN
P A
L Historique N
Concepts
Applications
Sous-programmes.
4
Sous--programme
s.
Objectifs de ce module
5
Sous--programme
s.
Plan de ce module
1. Généralités algorithmique.
2. Les sous--programmes en
python.
6
Sous--programme
s.
1. GÉNÉRALITÉS ALGORITHMIQUE.
7
1. Généralités algorithmique.
Plan de ce chapitre
a. Principe.
b. Trois grands avantages.
c. Notion de paramètre.
d. Variables locales versus variables globales.
e. Deux types de sous--programmes.
f. Exercice.
8
1. Généralités algorithmique.
a. Principe.
• Un sous--programme est un bloc d’instructions réalisant
une certaine tâche.
9
1. Généralités algorithmique.
a. Principe.
• Quand un programme dit « principal » fait appel à un
sous–programme, il suspend son propre déroulement,
exécute le sous–programme en question, et reprend
ensuite son fonctionnement.
Programme
appel du sous-
instructions programme
Tot
...
o
Toto Retour au bloc d’instructions du sous-
... programme
programme Toto
instructions
...
10
1. Généralités algorithmique.
appel/retour
appel/retour
11
1. Généralités algorithmique.
12
1. Généralités algorithmique.
Sous-programme Sous-programme
complexe simple
13
1. Généralités algorithmique.
c. Notion de paramètre.
• Un sous--programme sert donc à effectuer un traitement
générique.
14
1. Généralités algorithmique.
c. Notion de paramètre.
• Lors de l’implémentation d’un sous--programme, on va
donc préciser la liste de tous les paramètres qu’il va
utiliser.
para1 Toto
para2
bloc d’instructions du sous-
paraN
programme Toto, qui traite
para1, para2, ....
15
1. Généralités algorithmique.
c. Notion de paramètre.
• Lorsde l’utilisation d’un sous--programme, on va
alors préciser la valeur de chacun des paramètres qu’il
possède.
Programme
Toto
instructions val1
... val2
bloc d’instructions du sous-
Toto(val1,val2,...) programme Toto qui traite
... valN para1, para2, .... avec les
instructions valeurs val1, val2, ...
...
16
1. Généralités algorithmique.
17
1. Généralités algorithmique.
Toto
para1
para2 bloc d’instructions du sous-
programme Toto, qui traite
paraN para1, para2, ....
à l’aide de variables locales
var1, var2, ...
18
1. Généralités algorithmique.
Programme Toto
e. Deux types de
sous--programmes.
En algorithmique on distingue deux types de sous--
programmes :
21
1. Généralités algorithmique.
e. Deux types de
sous--programmes.
Procédures :
22
1. Généralités algorithmique.
e. Deux types de
sous--programmes.
Fonctions :
para1 Toto
para2 résultat
bloc d’instructions du sous-
paraN
programme Toto, qui traite
para1, para2, ....
23
1. Généralités algorithmique.
e. Deux types de
sous--programmes.
Remarque :
f. Exercice.
Exercice : identifier les concepts définis dans cette
partie
nombresParfaits
int int
obtenirBorneMax AfficherNombresParfaitsJusqu’à
int bool
estParfait
int int
sommeDesdiviseurs
int
bool
estUnDiviseur
int
25
1. Généralités algorithmique.
Fin de ce chapitre
26
Sous--programme
s.
2. LES SOUS--PROGRAMMES
EN PYTHON.
27
2. Les sous--programmes en
Python.
Plan de ce chapitre
a. Procédures.
b. Fonctions.
c. Duck Typing.
d. Paramètres par défaut.
e. Paramètres immuables.
f. Variables locales et globales.
g. Modules de fonctions.
h. Exercices.
28
2. Les sous--programmes en
Python.
a. Procédures.
Syntaxe générale d’une procédure :
def
maProcedure(para1,para2,...,paraN):
bloc d’instructions de la procédure
29
2. Les sous--programmes en
Python.
a. Procédures.
Exemple : affichage du périmètre et de l’aire d’un rectangle
def rectangle(x,y):
print("périmètre :",2*(x+y),",aire :",x*y)
30
2. Les sous--programmes en
Python.
a. Procédures.
Autre exemple : affichage du nombre d’or
def afficheNombreDor():
print((1+sqrt(5))/2)
31
2. Les sous--programmes en
Python.
a. Procédures.
Utilisation d’une procédure :
32
2. Les sous--programmes en
Python.
a. Procédures.
Exemples d’utilisations de procédures :
rectangle(5,2)
longueur,largeur = 6,3
rectangle(longueur,largeur)
afficheNombreDor()
33
2. Les sous--programmes en
Python.
b. Fonctions.
Syntaxe générale d’une fonction :
def maFonction(para1,para2,...,paraN):
bloc d’instructions de la fonction
return valeur
34
2. Les sous--programmes en
Python.
b. Fonctions.
Exemple : calcul du cube d’un nombre
def cube(x):
return
x*x*x
35
2. Les sous--programmes en
Python.
b. Fonctions.
Autre exemple : calcul du minimum et du maximum de deux
nombres
def calculMiniMaxi(x,y):
if x < y:
return x,y
else:
return y,x
36
2. Les sous--programmes en
Python.
b. Fonctions.
Remarques importantes :
37
2. Les sous--programmes en
Python.
b. Fonctions.
Utilisation d’une fonction :
38
2. Les sous--programmes en
Python.
b. Fonctions.
Exemples d’utilisations de fonctions :
print(cube(5))
a,b = 5,-2
min,max = calculMiniMaxi(a,cube(b))
print("Minimum :",min,", Maximum :",max)
39
2. Les sous--programmes en
Python.
c. Duck Typing.
Principe du “Duck Typing” :
40
2. Les sous--programmes en
Python.
c. Duck Typing.
Exemple de “Duck Typing” :
def addition(x,y):
return x + y
print(addition(666,1))
print(addition("Brown ",'Sugar'))
41
2. Les sous--programmes en
Python.
d. Paramètres par défaut.
• Les paramètres d’un sous--programme peuvent comporter
des valeurs par défaut.
42
2. Les sous--programmes en
Python.
d. Paramètres par défaut.
Exemple :
def rectangle(x=3,y=1):
print("périmètre :",2*(x+y),"aire :",x*y)
rectangle()
rectangle(2)
rectangle(7,5)
43
2. Les sous--programmes en
Python.
d. Paramètres par défaut.
Autre exemple :
def rectangle(x,y=1):
print("périmètre :",2*(x+y),"aire :",x*y)
rectangle(2)
rectangle(7,5)
44
2. Les sous--programmes en
Python.
e. Paramètres immuables.
• Les paramètres de type “int”, “bool”, “float”, “complex”
et “str” sont immuables.
45
2. Les sous--programmes en
Python.
e. Paramètres immuables.
Exemple : tentative pour doubler un nombre
def doubler(x):
x *= 2
a = 3
print("valeur de a avant :",a)
doubler(a)
print("valeur de a après :",a)
46
2. Les sous--programmes en
Python.
e. Paramètres immuables.
Exemple (suite) : contournement du problème précédent en
utilisant une fonction
def doubler(x):
return 2*x
a = 3
print("valeur de a avant :",a)
a =
doubler(a) de a après :",a)
print("valeur
47
2. Les sous--programmes en
Python.
f. Variables locales et globales.
Variables locales :
48
2. Les sous--programmes en
Python.
f. Variables locales et globales.
Exemple : fonction calculant la somme des n
premiers entiers, avec deux variables locales “utilitaires”
def sommeEntiers(n):
somme = 0
for i in range(n+1):
somme += i
return somme
49
2. Les sous--programmes en
Python.
f. Variables locales et globales.
Exemple (suite) : tentative d’utilisation de la variable locale
somme en dehors de la fonction
def sommeEntiers(n):
somme = 0
for i in range(n+1):
somme += i
return somme
print(somme)
50
2. Les sous--programmes en
Python.
f. Variables locales et globales.
Variables globales :
51
2. Les sous--programmes en
Python.
f. Variables locales et globales.
Ordre de recherchedes variables dans un sous--
programme :
52
2. Les sous--programmes en
Python.
f. Variables locales et globales.
Exemple 1 :
def exemple1():
print(i)
i = 666
exemple1()
53
2. Les sous--programmes en
Python.
f. Variables locales et globales.
Exemple 2 :
def exemple2():
i = 111
print(i)
i = 666
exemple2()
print(i)
54
2. Les sous--programmes en
Python.
f. Variables locales et globales.
Exemple 3 :
def exemple3():
print(i)
i = 111
print(i)
i = 666
exemple3()
55
2. Les sous--programmes en
Python.
f. Variables locales et globales.
Modification de la valeur de variables globales :
Syntaxe :
global var
56
2. Les sous--programmes en
Python.
f. Variables locales et globales.
Exemple 4 :
def exemple4():
global i
print(i)
i = 111
print(i)
i = 666
exemple4()
print(i)
57
2. Les sous--programmes en
Python.
g. Modules de fonctions.
Module de fonctions : fichier d’extension “.py” contenant
des sous--programmes regroupés de façon cohérente.
58
2. Les sous--programmes en
Python.
g. Modules de fonctions.
Trois méthodes pour l’import d’un module :
59
2. Les sous--programmes en
Python.
g. Modules de fonctions.
Exemple :
# le module exemple
def doubler(x):
return 2*x
def tripler(x):
return 3*x
60
2. Les sous--programmes en
Python.
g. Modules de fonctions.
Exemple : les deux premières méthodes
61
2. Les sous--programmes en
Python.
g. Modules de fonctions.
Exemple : la troisième méthode
import exemple
print(exemple.tripler(12))
62
2. Les sous--programmes en
Python.
g. Modules de fonctions.
Remarque :
63
2. Les sous--programmes en
Python.
h. Exercices.
Exercice 1 : écrire une procédure prenant en paramètre une
durée en secondes et qui affiche la conversion de cette durée
en heures, minutes, secondes.
64
2. Les sous--programmes en
Python.
h. Exercices.
Solution :
def conversion1(n):
h = n / 3600
/
m = ( - 3600*h) // 60
print(h,"heures,",m,
n
s = "minutes,",s,"secondes")
n % 60
65
2. Les sous--programmes en
Python.
h. Exercices.
Exercice 2 : écrire une fonction prenant en paramètre une
durée en heures, minutes, secondes et qui retourne le
nombre total de secondes correspondant.
66
2. Les sous--programmes en
Python.
h. Exercices.
Solution :
def conversion2(h,m,s):
return 3600*h + 60*m +
s
67
2. Les sous--programmes en
Python.
Fin de ce chapitre
68
ENSAM RABAT
Félicitations
Sous-programmes.
Structures séquentielles de
données.
71