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

Présentations similaires


Présentation au sujet: "Algorithmique et Programmation"— Transcription de la présentation:

1 Algorithmique et Programmation
A. Alikacem

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 Étapes de la construction d’un programme
Algorithme Problème Transcription Description formelle Programme Compilation Langage de programmation Ordinateur Exécution Solution Langage machine

4 Vous avez dit algorithme ?

5 Expression des algorithmes
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.

6 Pseudo-Code #include <stdio.h> int main () { int n, i;
Faire la différence entre les contraintes propres à un langage et les difficultés inhérentes à un problème donné Demander n Répéter  i  [0,n] début si (i % 2)  0 alors Afficher i fin #include <stdio.h> int main () { int n, i; scanf ("%d", &n); for (i=0; i<=n; i++) { if (i%2) { printf ("%d\n", i); } return 0; Plus abstrait, plus lisible, plus concis... 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 : 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 Les actions élémentaires (primitives)

11 Les actions élémentaires (primitives)

12 Les actions élémentaires (primitives)

13 Les actions élémentaires (primitives)
?

14 Les actions élémentaires (primitives)

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

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

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

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

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

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

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

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) ps ual ucc mp pe

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 composantes d’un ordinateur
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 actions élémentaires

25 Les composantes d’un ordinateur
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.

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

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

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

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

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

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

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

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

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

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

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

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érateurs arithmétiques Opérateur Exemple x=9 & y=4 + x + y 13 - x – y 5 * x * y 36 / x / y 2,25 x  y 2 % x % y 1

39 L’unité arithmétique et logique
Opérateurs relationnels Opérateur Exemple x=9 & y=4 = x = y FAUX x  y VRAI > x > y x  y < x < y x  y

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

41 L’unité arithmétique et logique
Opérateurs logiques ET x y x ET y FAUX VRAI

42 L’unité arithmétique et logique
Opérateurs logiques OU x y x OU y FAUX VRAI

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

44 L’unité arithmétique et logique
Un exemple d’évaluation d’expression: x * x ³ 0 ET ( x + 1 ) * ( x + 1 ) < 16 2 9 4 V 3 V

45 Les composantes d’un ordinateur
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 Primitives de structures de contrôle

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

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

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

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

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

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

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

53 Exemple Le factoriel n Début Si n = 1 ou n = 0 alors Début fact 1 Fin
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 Fin Fin

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

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

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

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

58 L’algorithmique impérative
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é

59 L’algorithmique impérative
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

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

61 {A: CL est un caractère}
Algorithme: un traitement de texte! début Demander CP {A: CP est un caractère} Afficher CP TANT QUE CP  ‘!’ Demander CL {A: CL est un caractère} SI CL = CP ALORS Afficher le caractère de soulignement '_ ' fin Afficher CL CP  CL 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
Sortie Entrée Les primitives 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!).

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 Tant que mur en face Faire un quart de tour à droite 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 n3.

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

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


Télécharger ppt "Algorithmique et Programmation"

Présentations similaires


Annonces Google