Post on 03-Apr-2015
Algorithmes et structures de données
Cours 10
Patrick Reuter
http://www.labri.fr/~preuter
• http://www.cifen.ulg.ac.be/inforef/swi/download/python_notes.pdf
• http://www.labri.fr/~preuter/asd2007
• Pages 19 à 80, (sans chapître 6.3)
Contrôle continu
• mercredi, 5 décembre 2007
Corrections
import random
aleatoire = random.randint(0,6)
print "Le nombre al´eatoire est ",aleatoire
Correctionsimport random
aleatoire = random.randint(0,6)
print "Le nombre al´eatoire est ",aleatoire
if (aleatoire == 0):print "lundi"
elif (aleatoire == 1):print "mardi"
elif (aleatoire == 2):print "mercredi"
elif (aleatoire == 3):print "lundi"
elif (aleatoire == 4):print "lundi"
elif (aleatoire == 5):print "lundi"
elif (aleatoire == 6):print "lundi"
Corrections
import random
aleatoire = random.randint(0,6)
print "Le nombre al´eatoire est ",aleatoire
jourDeLaSemaine = ["lundi","mardi","mercredi","jeudi","vendredi","samedi","dimanche"]
Corrections
import random
aleatoire = random.randint(0,6)
print "Le nombre al´eatoire est ",aleatoire
jourDeLaSemaine = ["lundi","mardi","mercredi","jeudi","vendredi","samedi","dimanche"]
jourAleatoire = jourDeLaSemaine[aleatoire]
print "Un jour de semaine al´eatoire :",jourAleatoire
Algorithme et programmes
Algorithme– Moyen d’atteindre un but en répétant un
nombre fini de fois un nombre fini d’instructions.
– Donc, un algorithme se termine en un temps fini.
Programme– Un programme est la traduction d’un
algorithme en un langage– compilable ou interprétable par un ordinateur.
Ingrédients d’algorithmes
• Affectation
• Condition/Comparaison
• Structure de contrôle– Branchements conditionnels (multiples)– Boucles
• Bloc d’instruction
• Fonctions et appels de fonctions
Fonctions et appels de fonctions
• Question : "Quelle est la fonction qui permet de connaître la longueur d'une chaîne de caractères ?"
• Quelle elle est son argument (ou paramètre)?
• Quelle est sa valeur de retour (que renvoit la fonction) ?
Fonctions et appels de fonctions
• Question : "Quelle est la fonction qui permet de connaître la longueur d'une chaîne de caractères ou d'une liste ?"
len• Quelle elle est son argument (ou
paramètre)?la chaîne de caractère ou la liste
• Quelle est sa valeur de retour (que renvoit la fonction) ? un nombre entier
Fonctions et appels de fonctions
• Question : "Quelle est la fonction qui permet à l'utilisateur d'entrer une chaîne de caractères ?"
• Quelle sont ses arguments (ou paramètres )?
• Quelle valeur de retour (ou que renvoit la fonction ?
Fonctions et appels de fonctions
• Question : "Quelle est le nom de la fonction qui permet à l'utilisateur d'entrer une chaîne de caractères ?"
raw_input• Quelle sont ses arguments (ou paramètres
)? aucun argument
• Quelle valeur de retour (ou que renvoit la fonction ? une chaîne de caractères
Fonctions et appels de fonctions
• Question : "Quelle est la fonction qui permet de créer un nombre entier aléatoire ?"
• Quelle sont ses arguments (ou paramètres )?
• Quelle est sa valeur de retour (ou que renvoie la fonction) ?
Fonctions et appels de fonctions
• Question : "Quelle est la fonction qui permet de créer un nombre entier aléatoire ?"
random.randint• Quelle sont ses arguments (ou paramètres
)?2 entiers : borne inférieure est supérieure• Quelle est sa valeur de retour (ou que
renvoit la fonction) ? un nombre entier
Appel de fonctions
Affectation d'une variable
s = input() # aucun paramètre
longueur = len(s) # s est le paramètre
aleatoire = random.randint(inf,sup)
# inf et sup sont les
# paramètres
s, longueur, et aleatoire sont affectés avec les valeurs de retour des fonctions
Fonction
Bloc d’instructions regroupé sous un nom et s’exécutant à la demande (appel) qui peut prendre des paramètres (arguments)
Avantages :
* réutilisabilité
* meilleure lisibilité
* travail en équipe
Fonction
• une fonction est définie une fois• elle peut être utilise plusieurs fois !
Avantages : * réutilisabilité * meilleure lisibilité* travail en équipe* …
• Fonction prédéfinies (integrées)
len(s), raw_input()• Fonction dans des modules
random.randint(a,b)• Fonctions originales (fonctions propres)
Fonctions originales
• en algorithme :
fonction nom_fonction(paramètres)
<bloc_instructions>
[renvoyer valeurDeRetour]
fin fonction
Fonctions originales
• en python :
def nom_fonction(paramètres)
<bloc_instructions>
[return valeurDeRetour]
Fonctions – Exemple :
• Définition de la fonction
def double(x): # paramètre xa = 2 * xreturn a # valeur de retour
• Appel de la fonction
a = double(4)print a # affiche 8b = double(8)print b # affiche 16
Autre exemple
• f(x) = x2
def f(x): # paramètre xa = x * xreturn a # valeur de retour
y1 = f(1)
y2 = f(10)
y3 = f(4)
y4 = f(7)
Appel d'une fonction dans une fonction
def cube(x):return x*x*x
def volumeSphere(r):return 4.0 * math.pi * cube(r) / 3.0
y1 = volumeSphere(3)y2 = volumeSphere(7)
Circonference d'un rectangle
def circonference(a, b):circ = 2 * a + 2 * breturn circ
x1 = circonference(4,5)x2 = circonference(2,3)
• Valeur de retour– il peut y avoir plusieurs instructions "renvoyer"
(return)– lorsque l'algorithme rencontre une instruction
"renvoyer" (return), la fonction est quitté
Exempledef moitie(x): print "debut de la fonction" return x/2 print "fin de la fonction"
print "debut du programme"p = moitie(4)print p print "fin du programme"
L'affichage donne :
debut du programmedebut de la fonction2fin du programme