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 3ème cours Patrick Reuter

Présentations similaires


Présentation au sujet: "Algorithmes et structures de données 3ème cours Patrick Reuter"— Transcription de la présentation:

1 Algorithmes et structures de données 3ème cours Patrick Reuter

2 Ingrédients dalgorithmes Affectation Condition/Comparaison Appel de fonction Structure de contrôle –Branchements conditionnels (multiples) –Boucles Bloc dinstruction

3 Ajourdhui Sondage Organisation de la mémoire Types de bases

4 Sondage o Compteur := 8 ; o Nom := "Patrick"; o 7+3 := 10 ; o resultat := 20*5 ; o 20 := c ; o score := score + 10; o highscore := score;

5 Sondage o Compteur := 8 ; o Nom := "Patrick"; o 7+3 := 10 ; o resultat := 20*5 ; o 20 := c ; o score := score + 10; o highscore := score;

6 Sondage o Compteur := 8 ; o Nom := "Patrick"; o 7+3 := 10 ; o resultat := 20*5 ; o 20 := c ; o score := score + 10; o highscore := score; BON : 16 MOYEN : 0 FAUX : 20

7 Sondage BOUCLE

8 Ingrédients dalgorithmes Structure de contrôle –Boucle TANT QUE FAIRE FIN TANT QUE ou FAIRE TANT QUE

9 Sondage Bloc dinstruction à répéter : writeln("Jadore les lundi"); i := i + 1;

10 Bloc dinstruction Bloc dinstruction à répéter : (toujours dans begin end sil y a plusieurs) begin writeln("Jadore les lundi"); i := i + 1; end

11 Boucle Condition darrêt : i>5 while (i<=5) do begin writeln("Jadore les lundi"); i := i + 1; end

12 Initialisation var i : integer; i := 1; while (i<=5) do begin writeln("Jadore les lundi"); i := i + 1; end

13 Sondage var i : integer; i := 1; while (i<=5) do begin writeln("Jadore les lundi"); i := i + 1; end i123456i123456

14 Sondage var i : integer; i := 1; while (i<=5) do begin writeln("Jadore les lundi"); i := i + 1; end i123456i BON : 36 MOYEN : 0 FAUX : 11

15 Ingrédients dalgorithmes Structure de contrôle –Branchements conditionnels SI ALORS SINON

16 Ingrédients dalgorithmes Structure de contrôle –Branchements conditionnels SI ALORS SINON Exemple: SI (score>meilleur_score) ALORS meilleur_score := score;

17 Ingrédients dalgorithmes Structure de contrôle –Branchements conditionnels SI ALORS SINON Exemple: SI (score>meilleur_score) ALORS meilleur_score := score; En PASCAL : IF (score>meilleur_score) THEN meilleur_score := score;

18 function estNegatif(entree : integer) : boolean; début si (entree < 0) alors result := true; sinon result := false; fin;

19 function estNegatif(entree : integer) : boolean; begin if (entree < 0) then begin estNegatif := true writeln(« valeure est négative »); end; else estNegatif := false; end;

20 function estNegatif(entree : integer) : boolean; begin if (entree < 0) then mw.lines.add(true); else mw.lines.add(false); end; NON !! Ne pas afficher à lécran !!

21 function estNegatif(entree : integer) : boolean; begin if (entree < 0) then mw.lines.add(true); else mw.lines.add(false); end; NON !! Ne pas afficher à lécran !!

22 function estNegatif(entree : integer) : boolean; begin if (entree < 0) then result := true; else result := false; end;

23 function estNegatif(entree : integer) : boolean; begin if (entree < 0) then result := true; else result := false; end; … A := estNegatif(100); C := estNegatif(-30);

24 function estNegatif(entree : integer) : boolean; begin if (entree < 0) then result := true; else result := false; end; … A := estNegatif(100); C := estNegatif(-30); BON : 30 MOYEN : 10 FAUX : 5

25 « FAIRE TOURNER » un algorithme Exemple: Tester si un nombre est premier

26 « FAIRE TOURNER » un algorithme Exemple: Tester si un nombre est premier Stratégie: Supposer que le nombre est premier jusquà on a trouvé un diviseur.

27 « FAIRE TOURNER » un algorithme Exemple: Tester si un nombre est premier Stratégie: Supposer que le nombre est premier jusquà on a trouvé un diviseur. FONCTION estPremier(nombre) : boolean; estPremier := VRAI; Diviseur := 2; TANT QUE diviseur

28 « FAIRE TOURNER » un algorithme Exemple: Tester si un nombre est premier Stratégie: Supposer que le nombre est premier jusquà on a trouvé un diviseur. FONCTION estPremier(nombre) : boolean; Diviseur := 2; TANT QUE diviseur

29 « FAIRE TOURNER » un algorithme Exemple: Tester si un nombre est premier Stratégie: Supposer que le nombre est premier jusquà on a trouvé un diviseur. FONCTION estPremier(nombre) : boolean; Diviseur := 2; TANT QUE diviseur

30 FONCTION testSiPremier(nombre) : boolean; estPremier : = VRAI; Diviseur : = 2; TANT QUE diviseur

31 FONCTION testSiPremier(nombre) : boolean; estPremier : = VRAI; Diviseur : = 2; TANT QUE diviseur

32 FONCTION testSiPremier(nombre) : boolean; estPremier : = VRAI; Diviseur : = 2; TANT QUE diviseur

33 FONCTION testSiPremier(nombre) : boolean; estPremier : = VRAI; Diviseur : = 2; TANT QUE diviseur

34 FONCTION testSiPremier(nombre) : boolean; estPremier : = VRAI; Diviseur : = 2; TANT QUE diviseur

35 FONCTION testSiPremier(nombre) : boolean; estPremier : = VRAI; Diviseur : = 2; TANT QUE diviseur

36 FONCTION testSiPremier(nombre) : boolean; estPremier : = VRAI; Diviseur : = 2; TANT QUE diviseur

37 FONCTION testSiPremier(nombre) : boolean; estPremier : = VRAI; Diviseur : = 2; TANT QUE diviseur

38 FONCTION testSiPremier(nombre) : boolean; estPremier : = VRAI; Diviseur : = 2; TANT QUE diviseur

39 FONCTION testSiPremier(nombre) : boolean; estPremier : = VRAI; Diviseur : = 2; TANT QUE diviseur

40 FONCTION testSiPremier(nombre) : boolean; estPremier : = VRAI; Diviseur : = 2; TANT QUE diviseur

41 FONCTION testSiPremier(nombre) : boolean; estPremier : = VRAI; Diviseur : = 2; TANT QUE diviseur

42 FONCTION testSiPremier(nombre) : boolean; estPremier : = VRAI; Diviseur : = 2; TANT QUE diviseur

43 FONCTION testSiPremier(nombre) estPremier : = VRAI; Diviseur : = 2; TANT QUE diviseur

44 FONCTION testSiPremier(nombre) estPremier = VRAI; Diviseur = 2; TANT QUE diviseur

45 FONCTION testSiPremier(nombre) estPremier = VRAI; Diviseur = 2; TANT QUE diviseur

46 « FAIRE TOURNER » un algorithme Exemple: Tester si un nombre est premier Stratégie: Supposer que le nombre est premier jusquà on a trouvé un diviseur. FONCTION estPremier(nombre) estPremier VRAI; Diviseur 2; TANT QUE diviseur

47 FONCTION testSiPremier(nombre) estPremier VRAI; Diviseur 2; TANT QUE diviseur

48 FONCTION testSiPremier(nombre) estPremier VRAI; Diviseur 2; TANT QUE diviseur

49 FONCTION testSiPremier(nombre) estPremier VRAI; Diviseur 2; TANT QUE diviseur

50 FONCTION testSiPremier(nombre) estPremier VRAI; Diviseur 2; TANT QUE diviseur

51 FONCTION testSiPremier(nombre) estPremier VRAI; Diviseur 2; TANT QUE diviseur

52 FONCTION testSiPremier(nombre) estPremier VRAI; Diviseur 2; TANT QUE diviseur

53 FONCTION testSiPremier(nombre) estPremier VRAI; Diviseur 2; TANT QUE diviseur

54 FONCTION testSiPremier(nombre) estPremier VRAI; Diviseur 2; TANT QUE diviseur

55 FONCTION testSiPremier(nombre) estPremier VRAI; Diviseur 2; TANT QUE diviseur

56 FONCTION testSiPremier(nombre) estPremier VRAI; Diviseur 2; TANT QUE diviseur

57 FONCTION testSiPremier(nombre) estPremier VRAI; Diviseur 2; TANT QUE diviseur

58 FONCTION testSiPremier(nombre) estPremier VRAI; Diviseur 2; TANT QUE diviseur

59 FONCTION testSiPremier(nombre) estPremier VRAI; Diviseur 2; TANT QUE diviseur

60 FONCTION testSiPremier(nombre) estPremier VRAI; Diviseur 2; TANT QUE diviseur

61 FONCTION testSiPremier(nombre) estPremier VRAI; Diviseur 2; TANT QUE diviseur

62 Sondage Récursion

63 Exemple : factoriel(5); factoriel := 5 * 4 * 3 * 2 * 1;

64 Sondage function factoriel(n : integer) : integer; begin var resultat : integer; if ((n = 0) OR (n = 1) then resultat := 1; else resultat = n * factoriel(n-1); result := resultat; end Condition darrêt : la fonction nest plus appelé par elle-même

65 Appel de fonction : factoriel(5); factoriel := 5 * factoriel(5 - 1); factoriel := 5 * (4 * factoriel(4 - 1)); factoriel := 5 * (4 * (3 * factoriel(3 - 1))); factoriel := 5 * (4 * (3 * (2 * factoriel(2 - 1)))); factoriel := 5 * (4 * (3 * (2 * (1 ))));

66 Sondage Complexité

67 Sondage Jeux de cartes 54, sortir les jokers 1 minute Jeux de cartes 108 joker, sortir les jokers 2 minutes Comportement linéaire O(N)

68 Sondage Trier 100 entrées 10 minutes Puis les mettre ensemble quelques minutes Trier 200 entrées >> 20 minutes Comportement quadratique O(N 2 ) Comportement quadratique O(N log N)

69 Sondage Trier 100 entrées 10 minutes Puis les mettre ensemble quelques minutes Trier 200 entrées >> 20 minutes Comportement quadratique O(N 2 ) Comportement quadratique O(N log N) BON : 7 FAUX : 38


Télécharger ppt "Algorithmes et structures de données 3ème cours Patrick Reuter"

Présentations similaires


Annonces Google