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

Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction.

Présentations similaires


Présentation au sujet: "Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction."— Transcription de la présentation:

1 Algorithmique et Programmation A. Alikacem

2 Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction d'un programme Composantes de base d'un ordinateur Structures de base d'un algorithme

3 Algorithme Programme Ordinateur Description formelle Transcription Compilation Langage de programmation Langage machine Exécution Solution Problème Étapes de la construction d’un programme

4 Vous avez dit algorithme ?

5 Le pseudo-code (pseudo-langage) Dérivé du langage Pascal. Permet d’être précis, sans syntaxe lourde lisible sans effort Peut être traduit facilement dans un langage de programmation Il nous évite de rattacher la résolution d’un problème à un langage de programmation particulier Il nous prépare à l’acquisition de bonnes habitudes de programmation:  il conduit à la programmation structurée  il favorise la conception des algorithmes car il est compatible avec la démarche descendante. Expression des algorithmes

6 Pseudo-Code #include int main () { int n, i; scanf ("%d", &n); for (i=0; i<=n; i++) { if (i%2) { printf ("%d\n", i); } return 0; } Demander n Répéter  i  [0,n] début si (i % 2)  0 alors début Afficher i fin Plus abstrait, plus lisible, plus concis... Faire la différence entre les contraintes propres à un langage et les difficultés inhérentes à un problème donné Met en avant l'essence de l'algorithme

7 Expression des algorithmes Le pseudo-code (pseudo-langage) Cette représentation a un intérêt pédagogique, elle facilite l’apprentissage. Introduit les caractéristiques de la machine théorique : une machine idéale Un algorithme va être représenté comme une suite d’actions pouvant être exécutées par une machine idéale. Notion d’action

8 Les actions élémentaires (primitives) Définition Une instruction qui peut être comprise directement par le système que l'on désire programmer. Exemple : une tortue radio-commandée Les primitives

9 Les actions élémentaires (primitives)

10

11

12

13 ?

14 

15 Quelle suite d’instruction doit-on utiliser pour obtenir l’ordre : avancer « avancer d’une case » ? Les actions élémentaires (primitives)

16 Quelle suite d’instruction doit-on utiliser pour obtenir l’ordre : reculer « reculer d’une case » ? ++= Les actions élémentaires (primitives)

17 Quelle suite d’instruction doit-on utiliser pour obtenir l’ordre : avancer « avancer d’une case en diagonale » ? Les actions élémentaires (primitives)

18 Quelle suite d’instruction doit-on utiliser pour obtenir l’ordre : avancer « avancer d’une case en diagonale » ? + Les actions élémentaires (primitives)

19 Quelle suite d’instruction doit-on utiliser pour obtenir l’ordre : avancer « avancer d’une case en diagonale » ? ++ Les actions élémentaires (primitives)

20 Quelle suite d’instruction doit-on utiliser pour obtenir l’ordre : avancer « avancer d’une case en diagonale » ? +++ Les actions élémentaires (primitives)

21 Quelle suite d’instruction doit-on utiliser pour obtenir l’ordre : avancer « avancer d’une case en diagonale » ? +++= Les actions élémentaires (primitives)

22 Architecture de Von Neuman Un ordinateur devrait être composé de: - unité de commande et contrôle (ucc) - unité arithmétique et logique (ual) - mémoire principale (mp) - périphériques d’entrée/sortie (pe/ps) uccmpual pe ps

23 Les composantes d’un ordinateur Les périphériques d’entrée De l’usager à l’ordinateur Stockées dans la mémoire principale de l’ordinateur afin d’être manipulées. Dans un algorithme DEMANDER information action élémentaire

24 Les périphériques de sortie De l’ordinateur à l’utilisateur On les utilisera donc pour montrer les résultats du travail d’un programme. Dans un algorithme AFFICHER information IMPRIMER information Les composantes d’un ordinateur actions élémentaires

25 La mémoire principale Conserver les données entrées par l’usager et de stocker les résultats intermédiaires et finaux. Pour traiter de l’information par un ordinateur, il faut que cette dernière se retrouve en mémoire principale. Les composantes d’un ordinateur

26 La mémoire principale Plusieurs cellules (cases, mots) … 0x x010a x010b … Chaque cellule a sa propre adresse contient toujours une suite de bits

27 Plusieurs cellules (cases, mots) … a lettre temp … Nous pouvons leur associer un nom La mémoire principale Notion d’identificateur

28 … a lettre ‘e’ temp ‘?’ … Nous pouvons interpréter la signification du contenu différemment (associer un type) La mémoire principale Plusieurs cellules (cases, mots) Notion de type

29 a lettre ‘e’ temp 4 nom + type = variable une abstraction d’un emplacement mémoire. La mémoire principale Plusieurs cellules (cases, mots) Notion de variable Comment l’utiliser ? temp  temp  4 temp  temp + 1  Le symbole “  ” est appelé opérateur d’affectation ou d’assignation.

30 Un exemple DEBUT DEMANDER x y  x x  0 AFFICHER x AFFICHER y FIN x y ???

31 Unexemple Un exemple DEBUT DEMANDER x y  x x  0 AFFICHER x AFFICHER y FIN x y 5 ???

32 5 Un exemple DEBUT DEMANDER x y  x x  0 AFFICHER x AFFICHER y FIN x y ??? 5

33 5 Un exemple DEBUT DEMANDER x y  x x  0 AFFICHER x AFFICHER y FIN 5 x y 0

34 5 0 Un exemple DEBUT DEMANDER x y  x x  0 AFFICHER x AFFICHER y FIN x y

35 Un exemple DEBUT DEMANDER x y  x x  0 AFFICHER x AFFICHER y FIN 5 0 x y

36 Un exemple DEBUT DEMANDER x y  x x  0 AFFICHER x AFFICHER y FIN 5 0 x y

37 Les composantes d’un ordinateur L’unité arithmétique et logique (UAL) Composante d’un ordinateur en charge de toutes les opérations de calcul, de comparaison et de logique. Primitives pour le calcul arithmétique

38 L’unité arithmétique et logique OpérateurExemple x=9 & y=4 +x + y13 -x – y5 *x * y36 /x / y2,25  x  y 2 %x % y1 Opérateurs arithmétiques

39 OpérateurExemple x=9 & y=4 =x = yFAUX  x  y VRAI >x > yVRAI  x  y VRAI

40 Conditions NON conditions VRAIFAUX VRAI Il fait soleilIl ne fait pas soleil Opérateurs logiquesNON L’unité arithmétique et logique

41 Opérateurs logiquesET xyx ET y FAUX VRAIFAUX VRAIFAUX VRAI L’unité arithmétique et logique

42 Opérateurs logiquesOU xyx OU y FAUX VRAI FAUXVRAI L’unité arithmétique et logique

43 NON, +, - (monadiques)+ élevée *, /, , %. +,- (dyadiques). >, , <, . =, . ET. OU+ faible Évaluation des expressions Les parenthèses et : L’unité arithmétique et logique

44 Un exemple d’évaluation d’expression: x * x  0 ET ( x + 1 ) * ( x + 1 ) < VV V L’unité arithmétique et logique

45 L’unité de commande et de contrôle (UCC) En charge de contrôler le déroulement d’un programme. Elle dirige le fonctionnement de toutes les autres unités (UAL, mémoire, entrée/sortie) Normalement, un programme s’exécute instruction par instruction, dans l’ordre (de haut en bas) ou elles sont écrites. Cependant, et très souvent, on aura besoin de briser la séquentialité:  en utilisant des structures de contrôle d’alternatives ;  en utilisant des structures de contrôle de répétitions ;  en faisant des appels de sous-programmes, caractérisés par une référence (appel) à un bloc à l’intérieur d’un autre bloc Les composantes d’un ordinateur Primitives de structures de contrôle

46 SI condition est vrai alors DÉBUT Instructions FIN Condition Instructions VRAI FAUX Unité de commande et contrôle Structures alternatives

47 SI x < 100 alors DÉBUT x  x + 1 y  25 FIN X < 100 x  x + 1 y  25 VRAI FAUX Unité de commande et contrôle Structures alternatives

48 SI condition est vrai alors DÉBUT Instructions v FIN SINON DÉBUT Instructions f FIN Condition Instructions v VRAI FAUX Instructions f Unité de commande et contrôle Structures alternatives

49 SI x = 0 alors DÉBUT x  100 FIN SINON DÉBUT x  x - 1 FIN x = 0 X  100 VRAI FAUX x  x - 1 Unité de commande et contrôle Structures alternatives

50 RÉPÉTER n FOIS DÉBUT Instructions FIN n fois? Instructions FAUX VRAI Unité de commande et contrôle Compteur implicite Structures itératives

51 Exemple Le factoriel n  0. Début Si n = 1 ou n = 0 alors Début fact  1 Fin Sinon Début fact 1 Répéter n-1 fois Début fact fact * i Fin   i 2  i i + 1 

52 RÉPÉTER  i  [1,n] DÉBUT Instructions FIN n fois? Instructions FAUX VRAI Unité de commande et contrôle Compteur explicite Structures itératives

53 Exemple Le factoriel n  0. Début Si n = 1 ou n = 0 alors Début fact  1 Fin Sinon Début fact 1 Répéter  i  [2, n] Début fact fact * i Fin  

54 Condition FAUX VRAI Instructions RÉPÉTER DÉBUT Instructions FIN TANT QUE condition Unité de commande et contrôle Structures itératives

55 Début Si n = 1 ou n = 0 alors Début fact  1 Fin Sinon Début fact  1 i  1 Répéter Début fact  fact * i i  i + 1 Fin Tant Que i < n+1 Fin Exemple Le factoriel n

56 TANT QUE condition DÉBUT Instructions FIN condition Instructions VRAI FAUX Unité de commande et contrôle Structures itératives

57 Début Si n = 1 ou n = 0 alors Début fact  1 Fin Sinon Début fact  1 i  2 Tant Que i < n+1 Début fact  fact * i i  i + 1 Fin Exemple Le factoriel n

58 Propriétés : Un nombre fini d’étapes Un nombre fini d’opérations par étape Une suite d’opérations primitives Fournit un résultat (décidabilité) Chaque opération est  non ambiguë  Effective calculabilité L’algorithmique impérative

59 Propriétés : Un algorithme doit être indépendant du langage de programmation utilisé. Un programme est un algorithme exprimé dans un langage de programmation capable d’être exécuté par un ordinateur. Peut être exprimé de manière formelle : - en pseudo-code - par un algorigramme - dans un arbre algorithmique - dans un diagrammes structurés L’algorithmique impérative

60 Algorithme Programme Ordinateur Description formelle (?) Transcription (?) Compilation Langage de programmation Langage machine (?) Exécution (?) Solution Problème Algorithme, programme et ordinateur Lab#2

61 Algorithme: un traitement de texte! début Demander CP {A: CP est un caractère} Afficher CP TANT QUE CP  ‘!’ début Demander CL {A: CL est un caractère} SI CL = CP ALORS début Afficher le caractère de soulignement '_ ' fin Afficher CL CP  CL fin Qu’affiche cet algorithme si les données lues sont: " Etes vous efficace?... Bonne chance!! " (Les guillemets ne font pas partie des données)

62 Rosalie dans le labyrinthe Entrée Sortie  Faire un pas devant elle (se rendre au centre du carré situé immédiatement devant elle).  Tourner d'un quart de tour à gauche ou à droite.  Détecter un mur placé devant lui (c'est à dire répondre à la question "y a-t-il un mur en face?"; la réponse est oui ou non.  Détecter l'entrée du labyrinthe (en l'absence de ce test, Rosalie pourrait sortir par là où elle est entrée!).  Détecter la sortie du labyrinthe (en l'absence de ce test, Rosalie ne s'arrêterait pas et continuerait à longer le mur à l'extérieur!). Les primitives

63 Algorithme: Sortir du labyrinthe en longeant le mur de gauche Début Avancer d'un pas Faire un quart de tour à gauche Tant que Rosalie n'est pas sortie Début Faire un quart de tour à gauche Tant que mur en face Début Faire un quart de tour à droite Fin Avancer d'un pas Fin Fin.

64 Il a été démontré que tout cube est égal à la somme de nombres impairs consécutifs. Par exemple : 1 = 1 8 = = = Décrivez un algorithme qui lit un entier n strictement positif et donne une décomposition de n 3.

65 Détermination des nombres de début et de fin de la série Début n3  n*n*n s  0 p  1 k  1 Tant que (s  n3) début si (s>n3) alors début s  s - (2*k-1) k  k + 1 fin si ( s

66 Affichage du développement du cube de n début n3  n*n*n Afficher n3 " = " k  premier Tant que (k < dernier) début Afficher k " + " k  k+2 fin Afficher dernier fin


Télécharger ppt "Algorithmique et Programmation A. Alikacem. Semaine 2 Semaine 2 Les outils algorithmiques Lecture: chapitre 2 des notes de cours Étapes de la construction."

Présentations similaires


Annonces Google