Algorithmes et structures de données Cours 9 Patrick Reuter
Algorithme et programmes Algorithme –Moyen datteindre un but en répétant un nombre fini de fois un nombre fini dinstructions. –Donc, un algorithme se termine en un temps fini. Programme –Un programme est la traduction dun algorithme en un langage –compilable ou interprétable par un ordinateur.
ython_notes.pdf
Ingrédients dalgorithmes Affectation Condition/Comparaison Structure de contrôle –Branchements conditionnels (multiples) –Boucles Bloc dinstruction Appel de fonction
Garder bien vos dossiers en arborescence
Ingrédients dalgorithmes Affectation x = 10; y = 30; z = x; x = 10 y = 30 z = x
Affichage à l'écran Afficher le texte suivant à lécran après laffectation : x = 10; Résultat : Le contenu de x est 10. afficherLigne("Résultat:"); afficher ("Le contenu de x est"); afficher (x); afficher (".");
Afficher le texte suivant à lécran après laffectation : x = 10; Résultat : Le contenu de x est 10. afficherLigne("Résultat:"); afficher ("Le contenu de x est"); afficher (x); afficher ("."); x = 10 print "Résultat" print "Le contenu de x est ", print x, print "."
Afficher le texte suivant à lécran après laffectation : x = 10 Résultat : Le contenu de x est 10. afficherLigne("Résultat:"); afficher ("Le contenu de x est"); afficher (x); afficher ("."); print "Résultat" print "Le contenu de x est ",x, "."
Ingrédients dalgorithmes Structure de contrôle –Branchements conditionnels SI ALORS FIN SI
Ingrédients dalgorithmes Structure de contrôle –Branchements conditionnels SI ALORS FIN SI if :
Ingrédients dalgorithmes Structure de contrôle –Branchements conditionnels SI ALORS FIN SI if : Exemple : if a%2==0: print "a est pair" print a
Ingrédients dalgorithmes Structure de contrôle –Branchements conditionnels SI ALORS [SINON SI ALORS ] [SINON SI ALORS ] […] [SINON ] FIN SI if nombre<100: print "est négatif" elif nombre>100: print "est positif" else: print "est zéro"
Ingrédients dalgorithmes Structure de contrôle –Boucle TANT QUE FAIRE FIN TANT QUE
Ingrédients dalgorithmes Structure de contrôle –Boucle TANT QUE FAIRE FIN TANT QUE if nombre<100: print "est négatif" elif nombre>100: print "est positif" else: print "est zéro"
Entrées de l'utilisateur
Programmation évènementielle Entrées de l'utilisateur exécution choix SéquentielleEvenementielle
Programmation séquentielle Entrée de l'utilisateur : a = raw_input(); Ceci peut être du texte ou des nombres
Programmation séquentielle Entrée de l'utilisateur : print "Taper quelque chose : ", a = raw_input(); print "Vous avez tapé : ",a
Programmation séquentielle Entrée de l'utilisateur : a = raw_input(); Ceci peut être du texte ou des nombres
Programmation séquentielle Entrée de l'utilisateur : print "Taper quelque chose : ", a = raw_input(); print "Vous avez tapé : ",a print "le nombre de caractères : ", print len(a)
Programmation séquentielle Entrée de l'utilisateur : print "Taper quelque chose : ", a = raw_input(); print "Vous avez tapé : ",a print "au carré cela fait : ", print a*a # ou bien a**2
Memes dans les boucles
a="non" while (a != "non"): # votre jeu ici print "Voulez-vous rejouer (oui/non) ?" a = raw_input() print "Au revoir"
Insérer une liste
i = 0 a = [] while (a<6): a[i] = raw_input() i = i + 1
Nombres aléatoires a = random.randint(1,10) # entier entre 1 et 10
Nombres aléatoires import random a = random.randint(1,10) # entier entre 1 et 10
Nombres aléatoires import random a = random.randint(1,10) # entier entre 1 et 10 a = random.random() # un flottant a, 0.0<=a <=1.0 a = random.uniform(1,10) # un flottant a, 1.0<=a <=10.0
Nombres aléatoires
conditions nécessaires conditions suffisantes
Longueur : s = "abcde" print len(s) # 5 Concaténation : s1 = "abc" s2 = "defg" s3 = s1 + s2 # abcdefg
On indique, entre crochets, la position dun caractère par un indice qui commence à 0 s = "abcdefg" print s[0] # a print s[2] # c
Les listes
Collection hétérogène, ordonnée et modifiable déléments séparés par des virgules, et entourée de crochets. nombres = [17, 38, 10, 25, 72] print nombres[0]# 17 print nombres[4]# 72 print len(nombres)# 5
Les listes Collection hétérogène, ordonnée et modifiable déléments séparés par des virgules, et entourée de crochets. nombres = [17, 38, 10, 25, 72]
Afficher tout les nombres : nombres = [17, 38, 10, 25, 72]
Afficher tout les nombres : nombres = [17, 38, 10, 25, 72] i = 0 TANT QUE i < len(nombres) FAIRE afficherLigne(nombres[i]) i = i + 1 FIN TANT QUE
Afficher uniquement les nombres pairs : nombres = [17, 38, 10, 25, 72]
Afficher uniquement les nombres pairs : nombres = [17, 38, 10, 25, 72] i = 0 TANT QUE i < len(nombres) FAIRE SI nombres[i] % 2 == 0 ALORS afficherLigne(nombres[i]) FIN SI i = i + 1 FIN TANT QUE
Affectation nombres = [17, 38, 10, 25, 72]; nombres[0] = 100; print nombres; Résultat : [100, 38, 10, 25, 72]
indice d'une liste ou d'une chaîne de caractères : s = "Bonjour"; premiereLettre = s[0]; deuxiemeLettre = s[1];
Fonctions prédéfinies par exemple connaître la longueur d'une chaîne : longueur = len(nombres); parenthèses !
Combinaison : derniereLettre = s[len(s) – 1];
Solution de quelques exercices :
Grilles de sudoku
Grilles de sudoku grille0 = [5,3,1,8,7,2,9,4,6];
Grilles de sudoku grille0 = [5,3,1,8,7,2,9,4,6]; grille1 = [2,3,1,8,7,2,9,4,5];
Grilles de sudoku grille = [ [5,3,1,8,7,2,9,4,6], [1,2,5,9,7,8,3,6,4], [1,2,5,9,7,8,3,6,4] ]; print grille[0][0];