La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Algorithmes et structures de données Cours 7 Patrick Reuter

Présentations similaires


Présentation au sujet: "Algorithmes et structures de données Cours 7 Patrick Reuter"— Transcription de la présentation:

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é DescartesRené Descartes dans le Discours de la Méthode :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. ».

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

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 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.

7

8 ython_notes.pdf

9 Variables Permet de stocker des données au cours dun 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

14

15 Variables Type simples: Type booléen –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 # # * 3 # ** 3 # / 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 : 2.718# 3e8# 3 * e23# * # 2 3.0# 3 Ils supportent les mêmes opérations que les entiers, sauf : 20.0 / 3 # // 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 = 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; a = 3.5;// OK

22 Pour connaître le type d'une variable : a = 3 print type(a) b = 3.5 print type(b)

23 Les chaînes de caractères Notations : Les guillemets c1 = "Leau de l'océan"

24 Longueur : s = "abcde" print len(s) # 5 Concat´enation : s1 = "abc" s2 = "defg" s3 = s1 + s2 # abcdefg

25

26 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

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 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 : nombres = [17, 38, 10, 25, 72]

32 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

33 Afficher uniquement les nombres pairs : nombres = [17, 38, 10, 25, 72]

34 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

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"]


Télécharger ppt "Algorithmes et structures de données Cours 7 Patrick Reuter"

Présentations similaires


Annonces Google