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

IFT-10541A : Hiver 2003 Semaine 1 : Type de données abstrait.

Présentations similaires


Présentation au sujet: "IFT-10541A : Hiver 2003 Semaine 1 : Type de données abstrait."— Transcription de la présentation:

1

2 IFT-10541A : Hiver 2003 Semaine 1 : Type de données abstrait

3 2 Programme = Algo. + données Programmes et informations information intermédiaire outputinput

4 3 Conventions Représentation de linformation conventions de représentation: integer idem pour tout programme sur un même ordinateur, utilisant le même langage: int x; conventions dutilisation: integer pas de décimales: x = 5/2;

5 4 Conventions Structure dinformation (de données): conventions de représentation et dutilisation d un certain type dinformation certaines sont fournies avec les langages: int, float, double, long, etc.

6 5 Conventions de représentation Structuration de base = types simples convention de représentation: int x, y; choix de représentation {manipulations} ±00 ± bit de signe complément à 1: C 1 complément à 2: C 2

7 exemple: bit de signe Conventions de représentation

8 7 Conventions dutilisation manipulations: accès: …x…, y = x; mise à jour: x = …; addition: y = x+1; (x)

9 8 Conventions dutilisation (x) +(+1) (x) +(-1)

10 9 Conventions dutilisation (x) -(+4) (+3) (x)

11 10 Opérateurs de haut niveau Opérateurs de plus haut niveau: (plus abstraits) post/pré-incrémentation: x++; ++x; post/pré-décrémentation: x--; --x; donnent une facilité de manipulation

12 11 Conventions transparentes Transparence des types de base: … int x; y = x++;

13 12 Types de base Types de base: en C: int, float, char, double, long, short tableaux, struct, etc. en Pascal: set en SmallTalk: dictionnaires: { }

14 13 Types structurés types de base modélisation de base traitement numérique (appl. scientifiques) traitement de texte (caractères) types structurés modélisation dobjets enregistrements (étudiants, cours, BD, …) modélisation orientée objet (OO) types structurés = agrégation déléments de base

15 14 Construction dun modèle Modélisation: Réalité Modèle typedef struct { plan pl[6]; } boite; typedef struct { float x; float y; float z; } pt; typedef struct { pt p[4]; } plan; boite b1;float x; x

16 15 Modélisation = transfert Modélisation: Réalité Modèle boite b1; … rotation(b1,45); …

17 16 Les types abstraits typedef struct { plan pl[6]; } boite; typedef struct { float x; float y; float z; } pt; typedef struct { pt p[4]; } plan; float x; boite b1; … rotation(b1,45); … boîte noire Modélisation: modèle près de la réalité modèle distant des détails dimplantation

18 17 Les types abstraits programme indépendant de limplantation du type boite : boite b1, b2, b3; créer(b1, …); b2 = b1; b3 = b2; rotation(b1,45); pose_sur(b2,b3); boite est alors un type abstrait!

19 18 Les types abstraits un type abstrait: est défini uniquement par ses conventions dutilisation par le comportement des objets de ce type (i.e., par les fonctions applicables sur les objets de ce type) ne décrit pas le modèle dimplantation choisi sert à isoler les programmes des données crée une indépendance des applications face aux modèles dimplantation (continuité de la programmation structurée) permet lencapsulation de la définition dun type

20 19 Les types abstraits Indépendance programmes/données: modularité de développement facilité dassemblage de modules validation modulaire et continue réutilisation coût dentretien

21 20 Linterface avec les types de données de base : donnéesprogramme interface int x, y; y = x + 1; int x, y; =, +, -, ++, --, *, /,...

22 21 Linterface avec des types structurés : donnéesprogramme interface boite b1; rotation(b1,45); boite b1; rotation, pose_sur,...

23 22 Modèles dimplantation Choix dun modèle dimplantation : Besoins de lapplication: temps de réponse volume de données volatilité des données Ressources disponibles : temps CPU espace-mémoire systèmes dexploitation et architecture du système complexité: temps de développement, dimplantation et de mise à jour

24 23 Définition dun type abstrait Programmation dun type abstrait : donnéesprogramme interface spécification formelle dun type abstrait choix dun modèle dimplantation indépendants!!!

25 24 Cours de structures de données Gestionnaire de données Programmeur dapplication interface donnéesprogramme spécification formelle dun type abstrait choix dun modèle dimplantation Cours de structures de données

26 25 Tâches à maîtriser Analyse: -besoins -contraintes Conception: -choisir un modèle d implantation -réaliser limplantation Gestionnaire de données Programmeur dapplication interface donnéesprogramme spécification formelle dun type abstrait choix dun modèle dimplantation

27 26 Liste ordonnée déléments (int) L = L 1 = 8, L 2 = 1, L 3 = 5, L 4 = 4, L 5 = 6 Utilité? Un exemple : une liste ordonnée

28 27 Liste ordonnée déléments (int) L = L 1 = 8, L 2 = 1, L 3 = 5, L 4 = 4, L 5 = 6 Utilité? liste de réquisitions Réq.#1: 2000 chemises 1000 pantalons 1500 cravates... Réq.#2 Réq.#3 Réq.#1 Un exemple : une liste ordonnée

29 28 Liste ordonnée déléments (int) L = L 1 = 8, L 2 = 1, L 3 = 5, L 4 = 4, L 5 = 6 Utilité? liste de réquisitions file dattente Un exemple : une liste ordonnée

30 29 Liste ordonnée déléments (int) L = L 1 = 8, L 2 = 1, L 3 = 5, L 4 = 4, L 5 = 6 Utilité? liste de réquisitions file dattente parcours de graphe Un exemple : une liste ordonnée

31 30 Liste ordonnée déléments (int) L = L 1 = 8, L 2 = 1, L 3 = 5, L 4 = 4, L 5 = 6 Utilité? liste de réquisitions file dattente parcours de graphe Un exemple : une liste ordonnée

32 31 Manipulations (opérateurs): L L = ? (i.e., L = 0?) x L? L i x = L ? L L + i x L - i L L L - x L = L? L L? lister L L = Opérateurs d'une liste

33 32 Autres opérateurs? sous-liste de L, à partir de i, pour une longueur de n: L[i,n] concaténation de listes: L + L L = L[2,3] = L = L + L = Opérateur : concaténation

34 33 Spécification formelle exemple dutilisation: L L + pos x prototype de la fonction implantant lopérateur: liste ajoutL(liste L, typeEl x, int pos, int *err); préconditions conditions devant être vraies au départ pour assurer le bon fonctionnement de l opérateur L ne doit pas être pleine et pos [1,|L|+1] postconditions conditions étant vraies (observables) après lapplication (correcte) de lopérateur L contient x si les préconditions sont respectées L est inchangée sinon *err contient 0 si l'ajout s'est bien déroulé, 1 si L est pleine, 2 si pos [1,|L|+1] valeur(s) retournée(s) en output de lapplication de l opérateur: L mise à jour ou L inchangée en cas d'erreurs

35 34 Spécification du type liste : - pos L - pos L prototype: liste enleverPosEl(liste L, int pos, int *err); préconditions: pos [1,|L|] postconditions: L est inchangée si pos [1,|L|] avec *err = 2 L contient un élément de moins, lélément L pos avec *err=0, sinon valeur(s) retournée(s): L mise à jour ou inchangée en cas d'erreurs

36 35 Spécification du type liste : - L L - x prototype: liste enleverXL(liste L, typeEl x, int *err); préconditions: x doit appartenir à L postconditions: L contient un élément x de moins (le premier rencontré) avec *err = 0 *err = 3 si x L valeur(s) retournée(s): L inchangée si x nappartenait pas à L L mise à jour sinon

37 36 Spécification du type liste : L pos L pos prototype: typeEl elL(liste L, int pos, int *err); préconditions: pos [1,|L|] postconditions: L est inchangée avec *err = 0 L est inchangée et *err = 2 si pos [1,|L|] valeur(s) retournée(s): Une copie de L pos si préconditions respectées


Télécharger ppt "IFT-10541A : Hiver 2003 Semaine 1 : Type de données abstrait."

Présentations similaires


Annonces Google