Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parDonatienne Delaporte Modifié depuis plus de 10 années
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} 0000 00±00 ± bit de signe complément à 1: C 1 complément à 2: C 2
7
6 0011 00111 0 1111 11111 0 0000 00001 0 +3 -3 +15 -15 +0 -0 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; 0011 00100 0 +3 (x) +1 01000 +4 +
9
8 Conventions dutilisation 0011 00100 0 +3 (x) +(+1) 00010 +2 - 0011 00101 0 +3 (x) +(-1) 00010 +2 +
10
9 Conventions dutilisation 0011 01000 0 +3 (x) -(+4) 00101 - 0100 00110 0 +4 -(+3) (x) 00101 -
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: 00011101010101 00010101010101 00101010100001 11111100000101 …. 00011 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 3 4 12
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 3 2 1 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 4 8 5 6 1 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 4 8 5 6 1 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
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.