algorithmes et structures de données cours 10 patrick reuter preuter
TRANSCRIPT
![Page 1: Algorithmes et structures de données Cours 10 Patrick Reuter preuter](https://reader031.vdocuments.net/reader031/viewer/2022013003/551d9d81497959293b8bab4e/html5/thumbnails/1.jpg)
Algorithmes et structures de données
Cours 10
Patrick Reuter
http://www.labri.fr/~preuter
![Page 2: Algorithmes et structures de données Cours 10 Patrick Reuter preuter](https://reader031.vdocuments.net/reader031/viewer/2022013003/551d9d81497959293b8bab4e/html5/thumbnails/2.jpg)
![Page 3: Algorithmes et structures de données Cours 10 Patrick Reuter preuter](https://reader031.vdocuments.net/reader031/viewer/2022013003/551d9d81497959293b8bab4e/html5/thumbnails/3.jpg)
• http://www.cifen.ulg.ac.be/inforef/swi/download/python_notes.pdf
• http://www.labri.fr/~preuter/asd2007
![Page 4: Algorithmes et structures de données Cours 10 Patrick Reuter preuter](https://reader031.vdocuments.net/reader031/viewer/2022013003/551d9d81497959293b8bab4e/html5/thumbnails/4.jpg)
• Pages 19 à 80, (sans chapître 6.3)
![Page 5: Algorithmes et structures de données Cours 10 Patrick Reuter preuter](https://reader031.vdocuments.net/reader031/viewer/2022013003/551d9d81497959293b8bab4e/html5/thumbnails/5.jpg)
Contrôle continu
• mercredi, 5 décembre 2007
![Page 6: Algorithmes et structures de données Cours 10 Patrick Reuter preuter](https://reader031.vdocuments.net/reader031/viewer/2022013003/551d9d81497959293b8bab4e/html5/thumbnails/6.jpg)
Corrections
import random
aleatoire = random.randint(0,6)
print "Le nombre al´eatoire est ",aleatoire
![Page 7: Algorithmes et structures de données Cours 10 Patrick Reuter preuter](https://reader031.vdocuments.net/reader031/viewer/2022013003/551d9d81497959293b8bab4e/html5/thumbnails/7.jpg)
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"
![Page 8: Algorithmes et structures de données Cours 10 Patrick Reuter preuter](https://reader031.vdocuments.net/reader031/viewer/2022013003/551d9d81497959293b8bab4e/html5/thumbnails/8.jpg)
Corrections
import random
aleatoire = random.randint(0,6)
print "Le nombre al´eatoire est ",aleatoire
jourDeLaSemaine = ["lundi","mardi","mercredi","jeudi","vendredi","samedi","dimanche"]
![Page 9: Algorithmes et structures de données Cours 10 Patrick Reuter preuter](https://reader031.vdocuments.net/reader031/viewer/2022013003/551d9d81497959293b8bab4e/html5/thumbnails/9.jpg)
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
![Page 10: Algorithmes et structures de données Cours 10 Patrick Reuter preuter](https://reader031.vdocuments.net/reader031/viewer/2022013003/551d9d81497959293b8bab4e/html5/thumbnails/10.jpg)
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.
![Page 11: Algorithmes et structures de données Cours 10 Patrick Reuter preuter](https://reader031.vdocuments.net/reader031/viewer/2022013003/551d9d81497959293b8bab4e/html5/thumbnails/11.jpg)
Ingrédients d’algorithmes
• Affectation
• Condition/Comparaison
• Structure de contrôle– Branchements conditionnels (multiples)– Boucles
• Bloc d’instruction
• Fonctions et appels de fonctions
![Page 12: Algorithmes et structures de données Cours 10 Patrick Reuter preuter](https://reader031.vdocuments.net/reader031/viewer/2022013003/551d9d81497959293b8bab4e/html5/thumbnails/12.jpg)
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) ?
![Page 13: Algorithmes et structures de données Cours 10 Patrick Reuter preuter](https://reader031.vdocuments.net/reader031/viewer/2022013003/551d9d81497959293b8bab4e/html5/thumbnails/13.jpg)
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
![Page 14: Algorithmes et structures de données Cours 10 Patrick Reuter preuter](https://reader031.vdocuments.net/reader031/viewer/2022013003/551d9d81497959293b8bab4e/html5/thumbnails/14.jpg)
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 ?
![Page 15: Algorithmes et structures de données Cours 10 Patrick Reuter preuter](https://reader031.vdocuments.net/reader031/viewer/2022013003/551d9d81497959293b8bab4e/html5/thumbnails/15.jpg)
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
![Page 16: Algorithmes et structures de données Cours 10 Patrick Reuter preuter](https://reader031.vdocuments.net/reader031/viewer/2022013003/551d9d81497959293b8bab4e/html5/thumbnails/16.jpg)
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) ?
![Page 17: Algorithmes et structures de données Cours 10 Patrick Reuter preuter](https://reader031.vdocuments.net/reader031/viewer/2022013003/551d9d81497959293b8bab4e/html5/thumbnails/17.jpg)
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
![Page 18: Algorithmes et structures de données Cours 10 Patrick Reuter preuter](https://reader031.vdocuments.net/reader031/viewer/2022013003/551d9d81497959293b8bab4e/html5/thumbnails/18.jpg)
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
![Page 19: Algorithmes et structures de données Cours 10 Patrick Reuter preuter](https://reader031.vdocuments.net/reader031/viewer/2022013003/551d9d81497959293b8bab4e/html5/thumbnails/19.jpg)
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
![Page 20: Algorithmes et structures de données Cours 10 Patrick Reuter preuter](https://reader031.vdocuments.net/reader031/viewer/2022013003/551d9d81497959293b8bab4e/html5/thumbnails/20.jpg)
Fonction
• une fonction est définie une fois• elle peut être utilise plusieurs fois !
Avantages : * réutilisabilité * meilleure lisibilité* travail en équipe* …
![Page 21: Algorithmes et structures de données Cours 10 Patrick Reuter preuter](https://reader031.vdocuments.net/reader031/viewer/2022013003/551d9d81497959293b8bab4e/html5/thumbnails/21.jpg)
• Fonction prédéfinies (integrées)
len(s), raw_input()• Fonction dans des modules
random.randint(a,b)• Fonctions originales (fonctions propres)
![Page 22: Algorithmes et structures de données Cours 10 Patrick Reuter preuter](https://reader031.vdocuments.net/reader031/viewer/2022013003/551d9d81497959293b8bab4e/html5/thumbnails/22.jpg)
Fonctions originales
• en algorithme :
fonction nom_fonction(paramètres)
<bloc_instructions>
[renvoyer valeurDeRetour]
fin fonction
![Page 23: Algorithmes et structures de données Cours 10 Patrick Reuter preuter](https://reader031.vdocuments.net/reader031/viewer/2022013003/551d9d81497959293b8bab4e/html5/thumbnails/23.jpg)
Fonctions originales
• en python :
def nom_fonction(paramètres)
<bloc_instructions>
[return valeurDeRetour]
![Page 24: Algorithmes et structures de données Cours 10 Patrick Reuter preuter](https://reader031.vdocuments.net/reader031/viewer/2022013003/551d9d81497959293b8bab4e/html5/thumbnails/24.jpg)
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
![Page 25: Algorithmes et structures de données Cours 10 Patrick Reuter preuter](https://reader031.vdocuments.net/reader031/viewer/2022013003/551d9d81497959293b8bab4e/html5/thumbnails/25.jpg)
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)
![Page 26: Algorithmes et structures de données Cours 10 Patrick Reuter preuter](https://reader031.vdocuments.net/reader031/viewer/2022013003/551d9d81497959293b8bab4e/html5/thumbnails/26.jpg)
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)
![Page 27: Algorithmes et structures de données Cours 10 Patrick Reuter preuter](https://reader031.vdocuments.net/reader031/viewer/2022013003/551d9d81497959293b8bab4e/html5/thumbnails/27.jpg)
Circonference d'un rectangle
def circonference(a, b):circ = 2 * a + 2 * breturn circ
x1 = circonference(4,5)x2 = circonference(2,3)
![Page 28: Algorithmes et structures de données Cours 10 Patrick Reuter preuter](https://reader031.vdocuments.net/reader031/viewer/2022013003/551d9d81497959293b8bab4e/html5/thumbnails/28.jpg)
• Valeur de retour– il peut y avoir plusieurs instructions "renvoyer"
(return)– lorsque l'algorithme rencontre une instruction
"renvoyer" (return), la fonction est quitté
![Page 29: Algorithmes et structures de données Cours 10 Patrick Reuter preuter](https://reader031.vdocuments.net/reader031/viewer/2022013003/551d9d81497959293b8bab4e/html5/thumbnails/29.jpg)
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