Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parHamon Lapeyre Modifié depuis plus de 11 années
1
Algorithmes et structures de données Cours 7
Patrick Reuter
2
Motivation Niklaus Wirth, ETH Zuerich, 1976
« Algorithms + Data Structures = Programs »
3
Algorithme L'algorithmique :
Science des algorithmes, visant à étudier les opérations nécessaires à la réalisation d'un calcul. René Descartes dans le Discours de la Méthode : « diviser chacune des difficultés que j'examinerois, en autant de parcelles qu'il se pourroit, et qu'il seroit requis pour les mieux résoudre. ». examinerois, pourroit, seroit, / examine, peut, est, (ici « autant que » est une comparaison donc pas de subjonctif, différent des phrases du type « quitte à s’être levé, autant que ce soit pour aller en cours) ; pour les mieux résoudre / pour mieux les résoudre ; problème / problèmes
4
Algorithme Plus ou moins détaillé selon le niveau d'abstraction du langage utilisé autrement dit : une recette de cuisine doit être plus ou moins détaillée en fonction de l'expérience du cuisinier examinerois, pourroit, seroit, / examine, peut, est, (ici « autant que » est une comparaison donc pas de subjonctif, différent des phrases du type « quitte à s’être levé, autant que ce soit pour aller en cours) ; pour les mieux résoudre / pour mieux les résoudre ; problème / problèmes
5
Structure de données Définition Wikipedia (12/9/2005)
une structure logique destinée à contenir des données afin de leur donner une organisation permettant de simplifier leur traitement. Exemple : On peut présenter des numéros de téléphone * - par département, - par nom - par profession (pages jaunes), - par numéro téléphonique (annuaires destinés au télémarketing), - par rue et/ou - une combinaison quelconque de ces classements. À chaque usage correspondra une structure d'annuaire appropriée.
6
Algorithme et programmes
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.
9
Variables Permet de stocker des données au cours d’un algorithme
Structure de données la plus élémenataire Caractérisé par leur nom et leur type
10
Variables Caractérisé par leur nom et leur type Noms :
Les noms des variables sont conventionnellement écrits en minuscule. Ils commencent par une lettre ou le caractère souligné (_), puis éventuellement, des lettres, des chiffres ou le caract`ere souligné. Ils doivent être diff´erents des mots réservés de Python.
11
Variables Caractérisé par leur nom et leur type Nom : x y z i
pointsJoueur1 pointsJoueur2
12
Variables Mais non pas : 3x (doivent commencer par une lettre)
entrée (pas de caractère spéciaux) and def finally in print yield as del for is raise assert elif from lambda return break else global not try class except if or while continue exec import pass with
13
Variables Type Motivation : Calculer la division entiére par 60
secondes = minutes/60; Calculer les intérets de 10 % d'une somme de 100 euros somme = 100 somme = somme + somme * 5/100
15
Variables Type simples: Type booléen Type entier Type flottant
Vrai/faux (p.ex. TRUE, boolean) Type entier Nombre entier (p.ex. 5, int) Type flottant Nombre à virgule flottant (p.ex. 5.12, float)
16
Types simples Type booléen
Deux valeurs possibles : FAUX (False), VRAI (True) Opérateurs de comparaison : ==, !=, >, >=, <, <= 2 > 8 # faux 2 <= 8 # vrai Opérateurs logiques : NON (not), OU (or), ET (and) (3 == 3) or (9 > 24) # vrai (9 > 24) and (3 == 3) # faux not(2==2) # faux
17
Types simples Type entier 20 + 3 # 23 20 - 3 # 17 20 * 3 # 60
# 23 # 17 20 * 3 # 60 20 ** 3 # 8000 20 / 3 # 6 (division entière) 20 % 3 # 2 (modulo (reste de la division entière)
18
Types simples Type entier long
Les entiers longs (seulement limités par la mémoire vive) 2 ** 40 # L 3 * 72L # 216L
19
Types simples Type flottant
Les flottants sont not´es avec un « point d´ecimal » ou en notation exponentielle : # 3e8 # 3 * 108 6.023e23 # * 1023 2. # 2 3.0 # 3 Ils supportent les mêmes opérations que les entiers, sauf : 20.0 / 3 # 20.0 // 3 # 6 (division entière forcée)
20
Variables Type Motivation : Calculer la division entiére par 60
secondes = minutes/60; Calculer les intérets de 10 % d'une somme de 100 euros somme = 100.0 somme = somme + somme * 5.0/100.0
21
Excursion Typage statique p.ex. Java int a; a = 3; a = 3.5; // ERREUR
Typage dynamique p.ex. python a = 3.5; // OK
22
Pour connaître le type d'une variable :
print type(a) b = 3.5 print type(b)
23
Les chaînes de caractères
Notations : Les guillemets c1 = "L’eau de l'océan"
24
Longueur : s = "abcde" print len(s) # 5 Concat´enation : s1 = "abc" s2 = "defg" s3 = s1 + s2 # ’abcdefg’
26
On indique, entre crochets, la position d’un caractère par un indice qui commence à 0
s = "abcdefg" print s[0] # a print s[2] # c
27
On peut extraire une sous-chaîne par découpage :
s = "abcdefg" s[1:3] # ’bc’ s[3:] # ’defg’ s[:3] # ’abc’
28
Les listes
29
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
30
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]
31
Afficher tout les nombres :
32
Afficher tout les nombres :
TANT QUE i < len(nombres) FAIRE afficherLigne(nombres[i]) i = i + 1 FIN TANT QUE
33
Afficher uniquement les nombres pairs :
34
Afficher uniquement les nombres pairs :
TANT QUE i < len(nombres) FAIRE SI nombres[i] % 2 == 0 ALORS afficherLigne(nombres[i]) FIN SI i = i + 1 FIN TANT QUE
35
Jeux de cartes
36
Homogène cartes = ["7", "8", "9", "10", "vallée", "dame", "roi", "as"] Hétérogène cartes = [7, 8, 9, 10, "vallée", "dame", "roi", "as"]
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.