SlideShare una empresa de Scribd logo
1 de 36
H. Richard – 11.09.2014
Initiation à la
programmation impérative
et algorithmique
Cours 5 – Entrées/Sorties et Fonctions
Largement inspiré des cours :
Vercouter, Del Mondo & Delestre, Hérault, Mainguenaud (INSA de Rouen)
Elodie Laine – 17.10.2018
H. Richard – 11.09.2014
Elodie Laine – 17.10.2018
De la programmation impérative…
instruction 1
instruction 2
instruction 3
si condition a vérifiée:
instruction conditionnelle a1
instruction conditionnelle a2
instruction 4
.
.
Blocs
d’instructions
séquentielles
variables
sélections boucles
types de données
… à la programmation fonctionnelle
Fonction f(paramètres d’entrée):
instruction f1
instruction f2
retourne valeur de sortie
Programme principal:
instruction 1
si condition a vérifiée:
appel de la fonction f(paramètres d’entrée)
fonctions
entrées/sorties
fichiers récursivité
H. Richard – 11.09.2014
Pour écrire un algorithme générique visant à résoudre un problème, il est nécessaire
de considérer plusieurs sources et destinations de données.
Declaration : effectif, taux, gain : Reel ; an, anMax : Entier
effectif ← 100
anMax ← 20
taux ← 0.05
an ← 0
gain ← 0
tant que an < anMax faire
gain ← gain + effectif * taux
effectif ← effectif * (1+taux)
an ← an + 1
fintantque
afficher ‘La population a gagne’, gain, ‘individus.’
Données
à entrer
Données
à sortir
Elodie Laine – 17.10.2018
Exemple de pseudo-code
H. Richard – 11.09.2014
Les traitements sont réalisés par les instructions du programme
Les données fournies en entrée de l’instruction subissent un traitement
Un traitement produit des informations qui sont les sorties de l’instruction
Informatique = Traitement de l’information
L’instruction lire est associée à un périphérique d’entrée spécifique : le clavier
L’instruction ecrire est associée à un périphérique de sortie spécifique : l’écran
Indépendance vis-à-vis de l’IHM
Entrées et sorties
Elodie Laine – 17.10.2018
H. Richard – 11.09.2014
Pourquoi concevoir des algorithmes les plus génériques possibles ?
=> Pour optimiser leur transférabilité & modularité, et ainsi
pouvoir les réutiliser d’un problème à l’autre
Declaration : an : Entier
Entree : effectif, taux : Reel ; anMax : Entier
Sortie : gain : Reel
an ← 0
gain ← 0
tant que an < anMax faire
gain ← gain + effectif * taux
effectif ← effectif * (1+taux)
an ← an + 1
fintantque
Motivation
Elodie Laine – 17.10.2018
H. Richard – 11.09.2014
A
B
B
C
D
A
B
C
D
code
répété
Appel de la
fonction
Définition de la
fonction
Programmation structurée
Elodie Laine – 17.10.2018
H. Richard – 11.09.2014
• Un programme est composé de sous-programmes
• L’exécution débute par le sous-programme principal
• L’exécution se déroule par des appels successifs de sous-
programmes
• Les sous-programmes interagissent par le passage de données en
entrée et en sortie
Structure d’un programme
Programmation structurée
Elodie Laine – 17.10.2018
H. Richard – 11.09.2014
• Les fonctions sont des sous-programmes admettant des
paramètres d’entrée et retournant un seul résultat (comme les
fonctions mathématiques y = f(x,…)).
- les paramètres d’entrée sont en nombre fixe
- le type de valeur retournée par une fonction est unique
- la valeur de retour est spécifiée par l’instruction retourner
• Les fonctions peuvent aussi modifier l’état du programme sans
retourner de valeur. La modification peut concerner plusieurs
variables.
• Généralement, le nom d’une fonction est soit un substantif (par
ex. minimum), soit une question (par ex. isEmpty) , soit un verbe
(ex. move).
Les fonctions
Elodie Laine – 17.10.2018
H. Richard – 11.09.2014
fonction nom_fonction (parametres_entree) : type_valeur_retournee
Declaration variables_locales
debut
instructions_de_la_fonction
retourner valeur
fin
Déclaration de fonction
Fonction renvoyant une valeur
fonction nom_fonction (parametres_entree) : None
Declaration variables_locales
debut
instructions_de_la_fonction
fin
Fonction ne renvoyant pas de valeur (procédure)
Elodie Laine – 17.10.2018
H. Richard – 11.09.2014
fonction minimum2 (a, b : Entier) : Entier
Declaration res : Entier
debut
si a ≥ b alors
res ← b
sinon
res ← a
finsi
retourner res
fin
Exemple de fonction (1)
Elodie Laine – 17.10.2018
H. Richard – 11.09.2014
fonction gainDePopulation (effectif, taux:
Reel ; anMax: Entier) : Reel
Declaration an : Entier ; gain : Reel
debut
an ← 0
gain ← 0
tant que an < anMax faire
gain ← gain + effectif * taux
effectif ← effectif * (1+taux)
an ← an + 1
fintantque
retourner gain
fin
Declaration : an : Entier
Entree : effectif, taux : Reel
anMax : Entier
Sortie : gain : Reel
an ← 0
gain ← 0
tant que an < anMax faire
gain ← gain + effectif * taux
effectif ← effectif * (1+taux)
an ← an + 1
fintantque
Exemple de fonction (2)
Elodie Laine – 17.10.2018
H. Richard – 11.09.2014
L’exécution d’une fonction A se fait par un appel dans un sous-programme B.
• L’appel s’effectue par une instruction en utilisant le nom de la fonction A
• Lors de l’appel, une valeur est affectée à chaque paramètre d’entrée de A
• A la fin de A, l’exécution reprend après l’appel de A dans le sous-
programme B
• La valeur retournée peut être utilisée dans B pour une affectation, un
calcul…
Appel de fonction
Elodie Laine – 17.10.2018
H. Richard – 11.09.2014
Declaration : unEntier, min : Entier
debut
unEntier ← lire("Donnez un entier")
min ← minimum2(unEntier, 0)
ecrire(‘Le minimum avec 0 est :’, min)
fin
fonction minimum3 (a,b,c : Entier) : Entier
debut
retourner minimum2(a,minimum2(b,c))
fin
Dans un programme principal :
Dans une fonction :
Exemple d’appel
Elodie Laine – 17.10.2018
H. Richard – 11.09.2014
Pour qu’un sous programme B appelle un sous-programme A, il faut :
• Que les informations données à A, lors de la définition de son algorithme,
soient identifiées/nommées pour pouvoir être utilisées : paramètres
formels (paramètres)
• Que B donne des instructions à A lors de l’appel : paramètres effectifs
(arguments)
Une fonction est désignée de manière unique dans un programme par sa
signature, composée de :
• Son nom
• Ses paramètres formels d’entrée
• Son type de retour
Les paramètres
La signature
Paramètres et signature
Elodie Laine – 17.10.2018
H. Richard – 11.09.2014
(12h)
(18h)
(0h)
(22h)
1
2
3
4
Ecrire :
• Une fonction qui renvoie l’étape
du cycle dans laquelle est une
cellule à un âge donné, exprimé
en heures
• Une fonction qui détermine si
un âge est valide pour une cellule
• Un programme principal qui
demande la saisie d’un âge pour
une cellule et affiche le stade
cellulaire dans lequel elle se
trouve
Cycle cellulaire
Exercice 1/4
Elodie Laine – 17.10.2018
H. Richard – 11.09.2014
fonction stadeCellulaire(age : Entier) : Chaîne de caractères
Declaration etape : Chaîne de caractères
debut
si (age ≤ 12) alors
etape ← “G1”
sinon
si (age ≤ 18) alors
etape ← “S”
sinon
si (age ≤ 22) alors
etape ← “G2”
sinon
etape ← “M”
finsi
finsi
finsi
retourner etape
fin
 Fonction qui renvoie l’étape du cycle dans laquelle est une cellule à un âge donné
Exercice 2/4
Elodie Laine – 17.10.2018
H. Richard – 11.09.2014
fonction estUnAgeValide(age : Entier) : Booleen
debut
retourner (age > 0 ) et (age ≤ 24)
fin
 Fonction qui détermine si un âge est valide pour une cellule
Exercice 3/4
Elodie Laine – 17.10.2018
H. Richard – 11.09.2014
Declaration: age : Entier
debut
age ← lire("Quel est votre age ?")
si estUnAgeValide(age) alors
ecrire(‘Cette cellule est dans le stade cellulaire ’, stadeCellulaire(age))
finsi
fin
 Programme principal
Comment faire pour généraliser l’algorithme à différents types cellulaires ?
Exercice 4/4
Elodie Laine – 17.10.2018
H. Richard – 11.09.2014
• En python, une fonction est définie à l’aide du mot clé def, suivi du nom
de la fonction, puis de la liste de ses paramètres formels. Le corps de la
fonction doit être indenté.
def nom_fonction (paramètres_d_entree):
instructions_de_la_fonction_reperees_par_l_indentation
• Généralement, les premières lignes de la fonction sont dédiées à des
commentaires de documentation de la fonction, appelés ‘Docstring’.
Les fonctions en Python
Elodie Laine – 17.10.2018
H. Richard – 11.09.2014
En Python, les fonctions retournent toujours unevaleur, soit explicite,
soit implicite.
• Pour retourner une valeur explicite, la dernière instruction qui est
exécutée dans le corps de la fonction doit être return valeur.
• Si aucune valeur de retour n’est spécifiée, la valeur prédéfinie
None lui sera substituée.
Les fonctions en Python
Elodie Laine – 17.10.2018
H. Richard – 11.09.2014
def prem (x):
n = 2
while n < x:
d = 2
while d < n:
if n % d == 0:
print n, “=”, d, “*”, n/d
break
else:
d = d + 1
if d == n:
print(n, “est premier”)
n = n + 1
Déclaration de la fonction
1er niveau d’indentation: corps de la fonction
2ème niveau d’indentation: sortie de la boucle
3ème niveau d’indentation: boucle
4ème niveau d’indentation: sélection simple
3ème niveau d’indentation: sortie du bloc if
4ème niveau d’indentation: sélection alternative
3ème niveau d’indentation: sélection simple
2ème niveau d’indentation: sortie du bloc if
2ème niveau d’indentation: boucle
Exemple de fonction en Python
Elodie Laine – 17.10.2018
H. Richard – 11.09.2014
def carre(x):
y = x * x
a = 15
carre(a)
print(“Le carré de ”, a, “ est égal
à ”, y, “ .”)
def carre(x):
y = x * x
return(y)
a = 15
b=carre(a)
Print(“Le carré de ”, a, “ est égal à
”, b, “ .”)
=> Erreur : y n’est pas défini !
=> Le carré de 15 est égal à 225.
Portée des variables en Python (1)
Elodie Laine – 17.10.2018
H. Richard – 11.09.2014
• Lors de son exécution, une fonction génère une table de symboles qui
sera utilisée pour ses variables locales. A chaque fois qu’un nom de variable
apparaît à gauche d’un signe d’affectation, une variable locale est créée.
Une variable déclarée dans une fonction n’est pas visible depuis les autres
sous-programmes.
• Toute référence à une variable apparaissant à droite d’un signe d’affectation
déclenche une recherche de la variable selon l’ordre de priorité Local-
Global-Integrated (LGI), soit (1) dans la table locale, (2) dans la table
globale, (3) dans la table des noms intégrés.
• Ainsi, on peut faire référence à une variable globale dans une fonction,
mais on ne peut pas lui affecter une valeur.
• Pour outrepasser cette interdiction, on utilise le mot clé global dans le
corps de la fonction.
Portée des variables en Python (2)
Elodie Laine – 17.10.2018
H. Richard – 11.09.2014
def carre(x):
global y
y = x * x
a = 15
carre(a)
Print(“Le carré de ”, a, “ est égal à
”, y, “ .”)
def carre(x):
y = x * x
return(y)
a = 15
b=carre(a)
Print(“Le carré de ”, a, “ est égal à ”,
b, “ .”)
=> Le carré de 15 est égal à 225.
=> Le carré de 15 est égal à 225.
Portée des variables en Python (3)
Elodie Laine – 17.10.2018
H. Richard – 11.09.2014
def hello(prenom):
print("Bonjour", prenom)
hello("Patricia")
print(x)
 Bonjour Patricia
 Erreur : x n’est pas défini !
x = 10
def hello(prenom):
print("Bonjour", prenom)
hello("Patricia")
print(x)
x = 10
def hello(prenom):
print("Bonjour", prenom)
print(x)
hello("Patricia")
print(x)
x = 10
def hello(prenom):
x = 42
print("Bonjour", prenom)
print(x)
hello("Patricia")
print(x)
 Bonjour Patricia
 10
 Bonjour Patricia
 10
 10
 Bonjour Patricia
 42
 10
Portée des variables en Python (4)
Elodie Laine – 17.10.2018
H. Richard – 11.09.2014
• La liste d’appel d’une fonction peut contenir un nombre variable d’arguments.
• Il est possible d’affecter une valeur par défaut à certains paramètres d’entrée,
de sorte de le nombre de paramètres effectifs (arguments) donnés lors de l’appel
de la fonction sera inférieur au nombre de paramètres formels (paramètres) qui
apparaissent dans sa définition.
def afficheAB(a=‘10’,b=“salut”):
print(“a : ”, a, “ ; b : ”, b)
afficheAB()
afficheAB(“bonjour”,“monsieur”)
afficheAB(“je te dis”)
=> a : 10 ; b : salut
=> a : bonjour ; b : monsieur
=> a : je te dis ; b : salut
Paramètres par défaut
Elodie Laine – 17.10.2018
H. Richard – 11.09.2014
val = ‘10’
def afficheAB(a=val,b=“salut”):
print(“a : ”, a, “ ; b : ”, b)
afficheAB()
val = ‘20’
afficheAB()
=> a : 10 ; b : salut
=> a : 10 ; b : salut
La valeur par défaut est évaluée une fois et une seule lors de la définition de la
fonction
Paramètres par défaut !
Elodie Laine – 17.10.2018
H. Richard – 11.09.2014
val = ‘10’
def afficheAB(a=val,b=[]):
print(“a : ”, a, “ ; b : ”, b)
a = “Maintenant a vaut 20”
b.append(“salut”)
afficheAB()
afficheAB() => a : 10 ; b : salut
=> a : 10 ; b : []
Dans le cas d’un objet modifiable, les changements qui lui ont été faits sont
conservés.
La valeur par défaut est évaluée une fois et une seule lors de la définition de la
fonction
Paramètres par défaut !
Elodie Laine – 17.10.2018
H. Richard – 11.09.2014
Il est aussi possible de faire référence à une liste d’appel de fonction par mot
clé, c’est-à-dire en utilisant le nom des paramètres formels de la fonction
val = ‘10’
def afficheABC(c,a=val,b=[]):
print(“a : ”, a, “ ; b : ”, b, “ ; c : ”, c)
afficheABC(a=“hello you”,1974)
afficheAB(“bouh”)
=> a : hello you ; b : [] ; c : 1974
=> a : 10 ; b : [] ; c : bouh
Dans ce type d’appel, l’ordre des arguments est sans importance.
Appel par mot clé
Elodie Laine – 17.10.2018
H. Richard – 11.09.2014
Il est cependant impératif que, dans la définition de la fonction, les paramètres qui
reçoivent une valeur par défaut apparaissent après ceux qui n’en reçoivent pas.
val = ‘10’
def afficheABC(a=val,c,b=[]):
print(“a : ”, a, “ ; b : ”, b, “ ; c : ”, c)
afficheABC(a=“hello you”,1974)
=> Erreur : un argument sans valeur par défaut suit un argument avec valeur par défaut
Appel par mot clé !
Elodie Laine – 17.10.2018
H. Richard – 11.09.2014
• Importer le contenu d’un module
import math
b = math.sqrt(a)
• Importer une partie d’un module
from math import sqrt
• Importer tout un module
fom math import * (tous les identifiants du module sont chargés)
Importer un module de fonctions
La fonction standard dir() permet de lister le contenu d’un module.
dir(math)
['__doc__', '__file__', '__name__', 'acos', 'asin', 'atan‘, 'atan2', 'ceil', 'cos', 'cosh', 'degrees',
'e', 'exp', 'fabs‘, 'floor', 'fmod', 'frexp', 'hypot', 'ldexp', 'log', 'log10‘, 'modf', 'pi', 'pow',
'radians', 'sin', 'sinh', 'sqrt', 'tan‘, 'tanh']
La fonction help() est la fonction d’aide en ligne de python
help(math)
Lister le contenu d’un module
Quelques fonctions standards
Elodie Laine – 17.10.2018
H. Richard – 11.09.2014
abs(x) renvoie la valeur ABSolue d’un entier ou d’un réel
math.cos(x) renvoie le COSinus de l’argument exprimé en radians
math.exp(x) renvoie la valeur de e élevée à la puissance de l’argument
math.log(x[,base]) renvoie le LOGarithme népérien de l’argument
avec deux arguments, on peut préciser la base souhaitée
math.pow(x,y) renvoie l’argument x à la puissance y
round(x[,ndigits]) arRONDit l’argument x à ndigits chiffre après la virgule
Si ndigits est omis, l’arrondi se fait à l’entier le plus proche
sin(x) renvoie le SINus de l’argument exprimé en radians
sqrt(x) renvoie la racine carrée de l’argument
math.trunc(x) renvoie la partie entière d’un nombre réel x
Fonctions mathématiques
Quelques fonctions standards
Elodie Laine – 17.10.2018
H. Richard – 11.09.2014
chr(i) renvoie un caractère à partir de son code ASCII
ord(c) renvoie un entier représentant le code ASCII d’un caractère
Fonctions pour les caractères
len(S) renvoie la longueur de la chaîne de caractères S
str.lower(S) renvoie une copie de S, avec les majuscules en minuscules
str.upper(S) renvoie une copie de S, avec les minuscules en majuscules
Fonctions pour les caractères et chaînes de caractères
input([prompt]) affiche l’argument à l’écran, renvoie ce qui est au clavier
print([object, ...]… ) affiche object(s) à l’écran, avec retour à la ligne
open(file[, mode='r‘…) ouvre le fichier file en mode lecture (‘r’), écriture (‘w’)…
Fonctions pour les entrées/sorties
Quelques fonctions standards
Elodie Laine – 17.10.2018
H. Richard – 11.09.2014
Au moyen du mot clé lambda, il est possible de définir des fonctions anonymes.
x = lambda a,b : a+b
z = x(3,5)
print(z)
def ferm (val):
def fonc(nb): return val + nb
return fonc
x = ferm(100)
y = ferm(200)
print(“appel de x :”, x(50))
print(“appel de y :”, y(50))
Une fonction s’exécute toujours dans le contexte dans lequel elle a été définie.
=> 8
=> appel de x : 150
=> appel de y : 250
Fonctions anonyme et fermeture
Elodie Laine – 17.10.2018
H. Richard – 11.09.2014
def mettre_au_carre(x):
return x ** 2
def appliquer_fonction(fonc, valeur):
return fonc(valeur)
print appliquer_fonction(mettre_au_carre, 3) => 9
Une fonction callback est une fonction particulière qui, une fois définie,
sera utilisée en argument d’une autre fonction.
En pratique, rien ne permet de différencier les fonctions callback des
autres en Python.
Fonction callback
Elodie Laine – 17.10.2018
H. Richard – 11.09.2014
• La prise en compte de différentes sources et destinations de données
permet de généraliser un algorithme visant à résoudre un problème.
• Un programme est conposé de sous programmes, autrement dit des
fonctions. Les fonctions admettent des paramètres d’entrée (arguments) et
retournent une seule valeur ou bien modifient l’état du programme (sans
retour de valeur).
• La bibliothèque python comporte de nombreux modules, où sont définies
un certain nombre de fonctions.
Conclusion
Elodie Laine – 17.10.2018

Más contenido relacionado

Similar a 05 - Cours Fonctions.pptx

Seance 3- Programmation en langage C
Seance 3- Programmation en langage C Seance 3- Programmation en langage C
Seance 3- Programmation en langage C
Fahad Golra
 
Chapitre i introduction et motivations
Chapitre i introduction et motivationsChapitre i introduction et motivations
Chapitre i introduction et motivations
Sana Aroussi
 
Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logicielle
cyrilgandon
 

Similar a 05 - Cours Fonctions.pptx (20)

Seance 3- Programmation en langage C
Seance 3- Programmation en langage C Seance 3- Programmation en langage C
Seance 3- Programmation en langage C
 
Chap 1 Initiation.pptx
Chap 1 Initiation.pptxChap 1 Initiation.pptx
Chap 1 Initiation.pptx
 
Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#
Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#
Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#
 
Nouveautés php 7
Nouveautés php 7Nouveautés php 7
Nouveautés php 7
 
FormationPython2019.pptx
FormationPython2019.pptxFormationPython2019.pptx
FormationPython2019.pptx
 
Développer en natif avec C++11
Développer en natif avec C++11Développer en natif avec C++11
Développer en natif avec C++11
 
Python chapitre 4.pdf
Python chapitre 4.pdfPython chapitre 4.pdf
Python chapitre 4.pdf
 
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
 
Open close principle, on a dit étendre, pas extends !
Open close principle, on a dit étendre, pas extends !Open close principle, on a dit étendre, pas extends !
Open close principle, on a dit étendre, pas extends !
 
Chap2fonctionscpp
Chap2fonctionscppChap2fonctionscpp
Chap2fonctionscpp
 
C# et .NET : Enigmes et puzzles
C# et .NET : Enigmes  et puzzlesC# et .NET : Enigmes  et puzzles
C# et .NET : Enigmes et puzzles
 
Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019
 
ESGAE_C#_2021-2024 Cours Avancé (('.pptx
ESGAE_C#_2021-2024 Cours Avancé (('.pptxESGAE_C#_2021-2024 Cours Avancé (('.pptx
ESGAE_C#_2021-2024 Cours Avancé (('.pptx
 
Fiche de TD 1 de préparation probatoire (littéraire et scientifique) du Camer...
Fiche de TD 1 de préparation probatoire (littéraire et scientifique) du Camer...Fiche de TD 1 de préparation probatoire (littéraire et scientifique) du Camer...
Fiche de TD 1 de préparation probatoire (littéraire et scientifique) du Camer...
 
Chapitre i introduction et motivations
Chapitre i introduction et motivationsChapitre i introduction et motivations
Chapitre i introduction et motivations
 
Cours de C++ / Tronc commun deuxième année ISIMA
Cours de C++ / Tronc commun deuxième année ISIMACours de C++ / Tronc commun deuxième année ISIMA
Cours de C++ / Tronc commun deuxième année ISIMA
 
Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logicielle
 
Formation python
Formation pythonFormation python
Formation python
 
Développement Web- PHP (partie I).pdf
Développement Web- PHP (partie I).pdfDéveloppement Web- PHP (partie I).pdf
Développement Web- PHP (partie I).pdf
 
Langage C
Langage CLangage C
Langage C
 

Más de BenacerLeila (8)

0006- Les instructions Itératives (Boucles) - Pour - Tantque - Répéter.ppsx
0006- Les instructions Itératives (Boucles) - Pour - Tantque - Répéter.ppsx0006- Les instructions Itératives (Boucles) - Pour - Tantque - Répéter.ppsx
0006- Les instructions Itératives (Boucles) - Pour - Tantque - Répéter.ppsx
 
0002- Introduction au Langage Pascal.ppsx
0002- Introduction au Langage Pascal.ppsx0002- Introduction au Langage Pascal.ppsx
0002- Introduction au Langage Pascal.ppsx
 
0003- Corps dun Algorithme-Programme (instructions).ppsx
0003- Corps dun Algorithme-Programme (instructions).ppsx0003- Corps dun Algorithme-Programme (instructions).ppsx
0003- Corps dun Algorithme-Programme (instructions).ppsx
 
Dec17 140fr
Dec17 140frDec17 140fr
Dec17 140fr
 
Cours gratuit.com--cours word-id2034
Cours gratuit.com--cours word-id2034Cours gratuit.com--cours word-id2034
Cours gratuit.com--cours word-id2034
 
20000605 reglementation
20000605 reglementation20000605 reglementation
20000605 reglementation
 
Dz loi protection_environnement
Dz loi protection_environnementDz loi protection_environnement
Dz loi protection_environnement
 
قانون حماية البيئة
قانون حماية البيئةقانون حماية البيئة
قانون حماية البيئة
 

Último

Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
ssuserc72852
 
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
Faga1939
 

Último (13)

Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
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.
 
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
 
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
 
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...
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
 
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
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprises
 
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
 

05 - Cours Fonctions.pptx

  • 1. H. Richard – 11.09.2014 Initiation à la programmation impérative et algorithmique Cours 5 – Entrées/Sorties et Fonctions Largement inspiré des cours : Vercouter, Del Mondo & Delestre, Hérault, Mainguenaud (INSA de Rouen) Elodie Laine – 17.10.2018
  • 2. H. Richard – 11.09.2014 Elodie Laine – 17.10.2018 De la programmation impérative… instruction 1 instruction 2 instruction 3 si condition a vérifiée: instruction conditionnelle a1 instruction conditionnelle a2 instruction 4 . . Blocs d’instructions séquentielles variables sélections boucles types de données … à la programmation fonctionnelle Fonction f(paramètres d’entrée): instruction f1 instruction f2 retourne valeur de sortie Programme principal: instruction 1 si condition a vérifiée: appel de la fonction f(paramètres d’entrée) fonctions entrées/sorties fichiers récursivité
  • 3. H. Richard – 11.09.2014 Pour écrire un algorithme générique visant à résoudre un problème, il est nécessaire de considérer plusieurs sources et destinations de données. Declaration : effectif, taux, gain : Reel ; an, anMax : Entier effectif ← 100 anMax ← 20 taux ← 0.05 an ← 0 gain ← 0 tant que an < anMax faire gain ← gain + effectif * taux effectif ← effectif * (1+taux) an ← an + 1 fintantque afficher ‘La population a gagne’, gain, ‘individus.’ Données à entrer Données à sortir Elodie Laine – 17.10.2018 Exemple de pseudo-code
  • 4. H. Richard – 11.09.2014 Les traitements sont réalisés par les instructions du programme Les données fournies en entrée de l’instruction subissent un traitement Un traitement produit des informations qui sont les sorties de l’instruction Informatique = Traitement de l’information L’instruction lire est associée à un périphérique d’entrée spécifique : le clavier L’instruction ecrire est associée à un périphérique de sortie spécifique : l’écran Indépendance vis-à-vis de l’IHM Entrées et sorties Elodie Laine – 17.10.2018
  • 5. H. Richard – 11.09.2014 Pourquoi concevoir des algorithmes les plus génériques possibles ? => Pour optimiser leur transférabilité & modularité, et ainsi pouvoir les réutiliser d’un problème à l’autre Declaration : an : Entier Entree : effectif, taux : Reel ; anMax : Entier Sortie : gain : Reel an ← 0 gain ← 0 tant que an < anMax faire gain ← gain + effectif * taux effectif ← effectif * (1+taux) an ← an + 1 fintantque Motivation Elodie Laine – 17.10.2018
  • 6. H. Richard – 11.09.2014 A B B C D A B C D code répété Appel de la fonction Définition de la fonction Programmation structurée Elodie Laine – 17.10.2018
  • 7. H. Richard – 11.09.2014 • Un programme est composé de sous-programmes • L’exécution débute par le sous-programme principal • L’exécution se déroule par des appels successifs de sous- programmes • Les sous-programmes interagissent par le passage de données en entrée et en sortie Structure d’un programme Programmation structurée Elodie Laine – 17.10.2018
  • 8. H. Richard – 11.09.2014 • Les fonctions sont des sous-programmes admettant des paramètres d’entrée et retournant un seul résultat (comme les fonctions mathématiques y = f(x,…)). - les paramètres d’entrée sont en nombre fixe - le type de valeur retournée par une fonction est unique - la valeur de retour est spécifiée par l’instruction retourner • Les fonctions peuvent aussi modifier l’état du programme sans retourner de valeur. La modification peut concerner plusieurs variables. • Généralement, le nom d’une fonction est soit un substantif (par ex. minimum), soit une question (par ex. isEmpty) , soit un verbe (ex. move). Les fonctions Elodie Laine – 17.10.2018
  • 9. H. Richard – 11.09.2014 fonction nom_fonction (parametres_entree) : type_valeur_retournee Declaration variables_locales debut instructions_de_la_fonction retourner valeur fin Déclaration de fonction Fonction renvoyant une valeur fonction nom_fonction (parametres_entree) : None Declaration variables_locales debut instructions_de_la_fonction fin Fonction ne renvoyant pas de valeur (procédure) Elodie Laine – 17.10.2018
  • 10. H. Richard – 11.09.2014 fonction minimum2 (a, b : Entier) : Entier Declaration res : Entier debut si a ≥ b alors res ← b sinon res ← a finsi retourner res fin Exemple de fonction (1) Elodie Laine – 17.10.2018
  • 11. H. Richard – 11.09.2014 fonction gainDePopulation (effectif, taux: Reel ; anMax: Entier) : Reel Declaration an : Entier ; gain : Reel debut an ← 0 gain ← 0 tant que an < anMax faire gain ← gain + effectif * taux effectif ← effectif * (1+taux) an ← an + 1 fintantque retourner gain fin Declaration : an : Entier Entree : effectif, taux : Reel anMax : Entier Sortie : gain : Reel an ← 0 gain ← 0 tant que an < anMax faire gain ← gain + effectif * taux effectif ← effectif * (1+taux) an ← an + 1 fintantque Exemple de fonction (2) Elodie Laine – 17.10.2018
  • 12. H. Richard – 11.09.2014 L’exécution d’une fonction A se fait par un appel dans un sous-programme B. • L’appel s’effectue par une instruction en utilisant le nom de la fonction A • Lors de l’appel, une valeur est affectée à chaque paramètre d’entrée de A • A la fin de A, l’exécution reprend après l’appel de A dans le sous- programme B • La valeur retournée peut être utilisée dans B pour une affectation, un calcul… Appel de fonction Elodie Laine – 17.10.2018
  • 13. H. Richard – 11.09.2014 Declaration : unEntier, min : Entier debut unEntier ← lire("Donnez un entier") min ← minimum2(unEntier, 0) ecrire(‘Le minimum avec 0 est :’, min) fin fonction minimum3 (a,b,c : Entier) : Entier debut retourner minimum2(a,minimum2(b,c)) fin Dans un programme principal : Dans une fonction : Exemple d’appel Elodie Laine – 17.10.2018
  • 14. H. Richard – 11.09.2014 Pour qu’un sous programme B appelle un sous-programme A, il faut : • Que les informations données à A, lors de la définition de son algorithme, soient identifiées/nommées pour pouvoir être utilisées : paramètres formels (paramètres) • Que B donne des instructions à A lors de l’appel : paramètres effectifs (arguments) Une fonction est désignée de manière unique dans un programme par sa signature, composée de : • Son nom • Ses paramètres formels d’entrée • Son type de retour Les paramètres La signature Paramètres et signature Elodie Laine – 17.10.2018
  • 15. H. Richard – 11.09.2014 (12h) (18h) (0h) (22h) 1 2 3 4 Ecrire : • Une fonction qui renvoie l’étape du cycle dans laquelle est une cellule à un âge donné, exprimé en heures • Une fonction qui détermine si un âge est valide pour une cellule • Un programme principal qui demande la saisie d’un âge pour une cellule et affiche le stade cellulaire dans lequel elle se trouve Cycle cellulaire Exercice 1/4 Elodie Laine – 17.10.2018
  • 16. H. Richard – 11.09.2014 fonction stadeCellulaire(age : Entier) : Chaîne de caractères Declaration etape : Chaîne de caractères debut si (age ≤ 12) alors etape ← “G1” sinon si (age ≤ 18) alors etape ← “S” sinon si (age ≤ 22) alors etape ← “G2” sinon etape ← “M” finsi finsi finsi retourner etape fin  Fonction qui renvoie l’étape du cycle dans laquelle est une cellule à un âge donné Exercice 2/4 Elodie Laine – 17.10.2018
  • 17. H. Richard – 11.09.2014 fonction estUnAgeValide(age : Entier) : Booleen debut retourner (age > 0 ) et (age ≤ 24) fin  Fonction qui détermine si un âge est valide pour une cellule Exercice 3/4 Elodie Laine – 17.10.2018
  • 18. H. Richard – 11.09.2014 Declaration: age : Entier debut age ← lire("Quel est votre age ?") si estUnAgeValide(age) alors ecrire(‘Cette cellule est dans le stade cellulaire ’, stadeCellulaire(age)) finsi fin  Programme principal Comment faire pour généraliser l’algorithme à différents types cellulaires ? Exercice 4/4 Elodie Laine – 17.10.2018
  • 19. H. Richard – 11.09.2014 • En python, une fonction est définie à l’aide du mot clé def, suivi du nom de la fonction, puis de la liste de ses paramètres formels. Le corps de la fonction doit être indenté. def nom_fonction (paramètres_d_entree): instructions_de_la_fonction_reperees_par_l_indentation • Généralement, les premières lignes de la fonction sont dédiées à des commentaires de documentation de la fonction, appelés ‘Docstring’. Les fonctions en Python Elodie Laine – 17.10.2018
  • 20. H. Richard – 11.09.2014 En Python, les fonctions retournent toujours unevaleur, soit explicite, soit implicite. • Pour retourner une valeur explicite, la dernière instruction qui est exécutée dans le corps de la fonction doit être return valeur. • Si aucune valeur de retour n’est spécifiée, la valeur prédéfinie None lui sera substituée. Les fonctions en Python Elodie Laine – 17.10.2018
  • 21. H. Richard – 11.09.2014 def prem (x): n = 2 while n < x: d = 2 while d < n: if n % d == 0: print n, “=”, d, “*”, n/d break else: d = d + 1 if d == n: print(n, “est premier”) n = n + 1 Déclaration de la fonction 1er niveau d’indentation: corps de la fonction 2ème niveau d’indentation: sortie de la boucle 3ème niveau d’indentation: boucle 4ème niveau d’indentation: sélection simple 3ème niveau d’indentation: sortie du bloc if 4ème niveau d’indentation: sélection alternative 3ème niveau d’indentation: sélection simple 2ème niveau d’indentation: sortie du bloc if 2ème niveau d’indentation: boucle Exemple de fonction en Python Elodie Laine – 17.10.2018
  • 22. H. Richard – 11.09.2014 def carre(x): y = x * x a = 15 carre(a) print(“Le carré de ”, a, “ est égal à ”, y, “ .”) def carre(x): y = x * x return(y) a = 15 b=carre(a) Print(“Le carré de ”, a, “ est égal à ”, b, “ .”) => Erreur : y n’est pas défini ! => Le carré de 15 est égal à 225. Portée des variables en Python (1) Elodie Laine – 17.10.2018
  • 23. H. Richard – 11.09.2014 • Lors de son exécution, une fonction génère une table de symboles qui sera utilisée pour ses variables locales. A chaque fois qu’un nom de variable apparaît à gauche d’un signe d’affectation, une variable locale est créée. Une variable déclarée dans une fonction n’est pas visible depuis les autres sous-programmes. • Toute référence à une variable apparaissant à droite d’un signe d’affectation déclenche une recherche de la variable selon l’ordre de priorité Local- Global-Integrated (LGI), soit (1) dans la table locale, (2) dans la table globale, (3) dans la table des noms intégrés. • Ainsi, on peut faire référence à une variable globale dans une fonction, mais on ne peut pas lui affecter une valeur. • Pour outrepasser cette interdiction, on utilise le mot clé global dans le corps de la fonction. Portée des variables en Python (2) Elodie Laine – 17.10.2018
  • 24. H. Richard – 11.09.2014 def carre(x): global y y = x * x a = 15 carre(a) Print(“Le carré de ”, a, “ est égal à ”, y, “ .”) def carre(x): y = x * x return(y) a = 15 b=carre(a) Print(“Le carré de ”, a, “ est égal à ”, b, “ .”) => Le carré de 15 est égal à 225. => Le carré de 15 est égal à 225. Portée des variables en Python (3) Elodie Laine – 17.10.2018
  • 25. H. Richard – 11.09.2014 def hello(prenom): print("Bonjour", prenom) hello("Patricia") print(x)  Bonjour Patricia  Erreur : x n’est pas défini ! x = 10 def hello(prenom): print("Bonjour", prenom) hello("Patricia") print(x) x = 10 def hello(prenom): print("Bonjour", prenom) print(x) hello("Patricia") print(x) x = 10 def hello(prenom): x = 42 print("Bonjour", prenom) print(x) hello("Patricia") print(x)  Bonjour Patricia  10  Bonjour Patricia  10  10  Bonjour Patricia  42  10 Portée des variables en Python (4) Elodie Laine – 17.10.2018
  • 26. H. Richard – 11.09.2014 • La liste d’appel d’une fonction peut contenir un nombre variable d’arguments. • Il est possible d’affecter une valeur par défaut à certains paramètres d’entrée, de sorte de le nombre de paramètres effectifs (arguments) donnés lors de l’appel de la fonction sera inférieur au nombre de paramètres formels (paramètres) qui apparaissent dans sa définition. def afficheAB(a=‘10’,b=“salut”): print(“a : ”, a, “ ; b : ”, b) afficheAB() afficheAB(“bonjour”,“monsieur”) afficheAB(“je te dis”) => a : 10 ; b : salut => a : bonjour ; b : monsieur => a : je te dis ; b : salut Paramètres par défaut Elodie Laine – 17.10.2018
  • 27. H. Richard – 11.09.2014 val = ‘10’ def afficheAB(a=val,b=“salut”): print(“a : ”, a, “ ; b : ”, b) afficheAB() val = ‘20’ afficheAB() => a : 10 ; b : salut => a : 10 ; b : salut La valeur par défaut est évaluée une fois et une seule lors de la définition de la fonction Paramètres par défaut ! Elodie Laine – 17.10.2018
  • 28. H. Richard – 11.09.2014 val = ‘10’ def afficheAB(a=val,b=[]): print(“a : ”, a, “ ; b : ”, b) a = “Maintenant a vaut 20” b.append(“salut”) afficheAB() afficheAB() => a : 10 ; b : salut => a : 10 ; b : [] Dans le cas d’un objet modifiable, les changements qui lui ont été faits sont conservés. La valeur par défaut est évaluée une fois et une seule lors de la définition de la fonction Paramètres par défaut ! Elodie Laine – 17.10.2018
  • 29. H. Richard – 11.09.2014 Il est aussi possible de faire référence à une liste d’appel de fonction par mot clé, c’est-à-dire en utilisant le nom des paramètres formels de la fonction val = ‘10’ def afficheABC(c,a=val,b=[]): print(“a : ”, a, “ ; b : ”, b, “ ; c : ”, c) afficheABC(a=“hello you”,1974) afficheAB(“bouh”) => a : hello you ; b : [] ; c : 1974 => a : 10 ; b : [] ; c : bouh Dans ce type d’appel, l’ordre des arguments est sans importance. Appel par mot clé Elodie Laine – 17.10.2018
  • 30. H. Richard – 11.09.2014 Il est cependant impératif que, dans la définition de la fonction, les paramètres qui reçoivent une valeur par défaut apparaissent après ceux qui n’en reçoivent pas. val = ‘10’ def afficheABC(a=val,c,b=[]): print(“a : ”, a, “ ; b : ”, b, “ ; c : ”, c) afficheABC(a=“hello you”,1974) => Erreur : un argument sans valeur par défaut suit un argument avec valeur par défaut Appel par mot clé ! Elodie Laine – 17.10.2018
  • 31. H. Richard – 11.09.2014 • Importer le contenu d’un module import math b = math.sqrt(a) • Importer une partie d’un module from math import sqrt • Importer tout un module fom math import * (tous les identifiants du module sont chargés) Importer un module de fonctions La fonction standard dir() permet de lister le contenu d’un module. dir(math) ['__doc__', '__file__', '__name__', 'acos', 'asin', 'atan‘, 'atan2', 'ceil', 'cos', 'cosh', 'degrees', 'e', 'exp', 'fabs‘, 'floor', 'fmod', 'frexp', 'hypot', 'ldexp', 'log', 'log10‘, 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan‘, 'tanh'] La fonction help() est la fonction d’aide en ligne de python help(math) Lister le contenu d’un module Quelques fonctions standards Elodie Laine – 17.10.2018
  • 32. H. Richard – 11.09.2014 abs(x) renvoie la valeur ABSolue d’un entier ou d’un réel math.cos(x) renvoie le COSinus de l’argument exprimé en radians math.exp(x) renvoie la valeur de e élevée à la puissance de l’argument math.log(x[,base]) renvoie le LOGarithme népérien de l’argument avec deux arguments, on peut préciser la base souhaitée math.pow(x,y) renvoie l’argument x à la puissance y round(x[,ndigits]) arRONDit l’argument x à ndigits chiffre après la virgule Si ndigits est omis, l’arrondi se fait à l’entier le plus proche sin(x) renvoie le SINus de l’argument exprimé en radians sqrt(x) renvoie la racine carrée de l’argument math.trunc(x) renvoie la partie entière d’un nombre réel x Fonctions mathématiques Quelques fonctions standards Elodie Laine – 17.10.2018
  • 33. H. Richard – 11.09.2014 chr(i) renvoie un caractère à partir de son code ASCII ord(c) renvoie un entier représentant le code ASCII d’un caractère Fonctions pour les caractères len(S) renvoie la longueur de la chaîne de caractères S str.lower(S) renvoie une copie de S, avec les majuscules en minuscules str.upper(S) renvoie une copie de S, avec les minuscules en majuscules Fonctions pour les caractères et chaînes de caractères input([prompt]) affiche l’argument à l’écran, renvoie ce qui est au clavier print([object, ...]… ) affiche object(s) à l’écran, avec retour à la ligne open(file[, mode='r‘…) ouvre le fichier file en mode lecture (‘r’), écriture (‘w’)… Fonctions pour les entrées/sorties Quelques fonctions standards Elodie Laine – 17.10.2018
  • 34. H. Richard – 11.09.2014 Au moyen du mot clé lambda, il est possible de définir des fonctions anonymes. x = lambda a,b : a+b z = x(3,5) print(z) def ferm (val): def fonc(nb): return val + nb return fonc x = ferm(100) y = ferm(200) print(“appel de x :”, x(50)) print(“appel de y :”, y(50)) Une fonction s’exécute toujours dans le contexte dans lequel elle a été définie. => 8 => appel de x : 150 => appel de y : 250 Fonctions anonyme et fermeture Elodie Laine – 17.10.2018
  • 35. H. Richard – 11.09.2014 def mettre_au_carre(x): return x ** 2 def appliquer_fonction(fonc, valeur): return fonc(valeur) print appliquer_fonction(mettre_au_carre, 3) => 9 Une fonction callback est une fonction particulière qui, une fois définie, sera utilisée en argument d’une autre fonction. En pratique, rien ne permet de différencier les fonctions callback des autres en Python. Fonction callback Elodie Laine – 17.10.2018
  • 36. H. Richard – 11.09.2014 • La prise en compte de différentes sources et destinations de données permet de généraliser un algorithme visant à résoudre un problème. • Un programme est conposé de sous programmes, autrement dit des fonctions. Les fonctions admettent des paramètres d’entrée (arguments) et retournent une seule valeur ou bien modifient l’état du programme (sans retour de valeur). • La bibliothèque python comporte de nombreux modules, où sont définies un certain nombre de fonctions. Conclusion Elodie Laine – 17.10.2018

Notas del editor

  1. Une population a un effectif initial de 100 individus et croit de 5% tous les ans. On veut connaître le gain de population au bout de 20 ans.
  2. En python, on lit au clavier avec la fonction raw_input() >> a=raw_input() 10 >> print a 10 Ou bien la fonction input en python 3 >> user_input = input(‘Give me a number: ‘) Give me a number: 10 >> user_input ‘10’ >> type(user_input) <class ‘str’>
  3. Formulation d’un algorithme général où on identifie les entrées et les sorties. Insister sur l’intérêt de ne pas codé en dur les valeurs des paramètres d’entrée : on peut maintenant faire varier l’effectif initial, le taux de croissance et la durée d’observation selon le problème posé
  4. Étape supplémentaire : on s’est affranchi des paramètres, maintenant on introduit de la modularité dans le code. On evite de répéter les instructions
  5. Faire un petit schema au tableau illustrant les différents sous-programmes par des blocs rectangulaires avec des liens entre eux
  6. On cherche le minimum entre deux entiers (d’où le nom minimum2)
  7. On reprend l’algorithme général et on le transforme en une fonction : bien identifier où se trouvent maintenant les entrées et les sorties
  8. Les paramètres formels sont ceux définis au niveau de la déclaration de A, les paramètres effectifs sont ceux donnés à A par B lors de son appel Insister sur l’intérêt de la signature en tant qu’identifiant unique d’une fonction
  9. Le cycle cellulaire est l’ensemble des modifications qu’une cellule subit entre sa formation par division à partir d’une cellule mère et le moment où cette cellule a fini de se diviser en deux cellules filles. La durée du cycle cellulaire varie d’une espèce à l’autre et d’un type cellulaire à l’autre. Des cellules humaines en culture se divisent environ toutes les 24 heures tandis qu’une levure bourgeonnante mettra seulement 90 minutes à faire le tour de son cycle. On distingue au microscope deux stades à ce cycle cellulaire : La mitose qui est la division de la cellule en deux cellules filles L’interphase qui est la période entre deux mitoses. Pendant l’interphase les chromosomes sont décondensés et distribués dans tout le noyau. Au niveau moléculaire, l’interphase est la période pendant laquelle croissance cellulaire et réplication de l’ADN s’effectuent de manière coordonnée en vue de la division cellulaire. La cellule grossit progressivement pendant toute l’interphase, la plupart doublant de taille entre leur naissance et leur division en deux cellules filles. Trois phases se succèdent pendant l’interphase : une phase de croissance de la cellule (G1), une phase de réplication de l’ADN (S) et une phase de croissance et de préparation à la mitose (G2). A la fin de la phase G1 et de la phase G2, il existe ce qu’on appelle des points de contrôle, ou "checkpoint", où la cellule contrôle que tout est parfaitement mis en place pour que respectivement la réplication de l’ADN et la mitose se déroulent normalement.
  10. Etant donné un cycle cellulaire de 24 heures, on cherche à déterminer à quel stade de développement est une cellule au bout de x heures après la dernière division cellulaire.
  11. Etant donné un cycle cellulaire de 24 heures, on cherche à déterminer à quel stade de développement est une cellule au bout de x heures après la dernière division cellulaire.
  12. Généralisation : il faut rentrer en paramètre la durée totale d’un cycle et déterminer les étapes à partir d’une fraction de la durée totale, provided that cette fraction est la même pour tous les types cellulaires.
  13. Déclaration et définition..?
  14. Déclaration et définition..?
  15. prem(20) n=2 ; d=void n=3 ; d=2 ; 3%2=1 ; 3 est premier n=4 ; d=2 ; 4%2=0 ; 4=2*2 et on s’arrete puisqu’il suffit de trouver un diviseur (d’où le break) n=5 ; d=2 ; 5%2=1 ; d=3 ; 5%3=2 ; d=4 ; 5%4=1 ; 5 est premier
  16. A vérifier !
  17. Qu’est-ce qu’un itérateur en python, est-ce qu’on peut rapprocher ce concept d’un énuméré ? What about les méthodes du module string qui sont deprecated et disparaaisent avec python 3.0 ? he print statement has been replaced with a print() function in Python 3 print([object, ...][, sep=' '][, end='\n'][, file=sys.stdout] ) open(file[, mode='r'[, buffering=None[, encoding=None[, errors=None[, newline=None[, closefd=True]]]]]])
  18. Comment traduire callbask et faire passer le concept ? Une bonne transition vers la récursivité…?