Algorithmes et structures de données Cours 10 Patrick Reuter preuter.

Post on 03-Apr-2015

115 views 2 download

Transcript of Algorithmes et structures de données Cours 10 Patrick Reuter preuter.

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