Traitement abstrait de donnés

Fermé
Any - 25 mars 2009 à 20:29
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 25 mars 2009 à 22:05
Bonjour,

un petit probleme de compréhension ^^ mon iut étant en grève ! depuis 3 mois ... je vous demande de l'aide pour des exercice d'entrainement.

alors voici l'énoncé du problème:


TD n° 3 - Le Type Abstrait de Données Durée - 1 -
I.U.T. d'Informatique 2008-2009
Semestre 2

Types Abstraits de Données
TD n° 3 - Le Type Abstrait de Données Durée


On se propose d’introduire la notion de point de vue d’un Type Abstrait de
Données (TAD) sur un exemple simple. Soit Durée cet exemple abordé ici selon deux
points de vue : celui du concepteur qui spécifie les opérations et propriétés du type et
celui du programmeur qui choisit les structures de données et code les opérations
définies par le concepteur. Lors de prochains TD, nous introduirons un troisième
acteur : l’utilisateur (ou client) qui, pour son application, a besoin des opérations du
type spécifiées par le concepteur.

Soient Durée, Entier et Booléen dénotant respectivement le type d'une durée,
celui des entiers et celui des booléens. On propose les opérations et propriétés
suivantes pour le type Durée :

a) Opérations

uneDurée : Entier x Entier x Entier → Durée
heures : Durée → Entier
minutes : Durée → Entier
secondes : Durée → Entier
inf : Durée x Durée → Booléen
égal : Durée x Durée → Booléen
plusUneSeconde : Durée → Durée

Pour h, m, s de type Entier :

uneDurée (h, m, s) est défini ssi h ≥ 0 et 0 ≤ m ≤ 59 et 0 ≤ s ≤ 59

b) Propriétés

Pour h, h1, h2, m, m1, m2, s, s1, s2 de type Entier :

(P1) heures (uneDurée (h, m, s)) = h

(P2) minutes (uneDurée (h, m, s)) = m

(P3) secondes (uneDurée (h, m, s)) = s

(P4) inf (uneDurée (h1, m1, s1), uneDurée (h2, m2, s2)) =
(h1 < h2) ou (h1=h2 et m1 < m2) ou (h1=h2 et m1=m2 et s1 < s2)

(P5) égal (uneDurée (h1, m1, s1), uneDurée (h2, m2, s2)) =
h1 = h2 et m1 = m2 et s1 = s2
TD n° 3 - Le Type Abstrait de Données Durée - 2 -
(P6) plusUneSeconde (uneDurée (h, m, s)) =
si s < 59 alors uneDurée (h, m, s + 1)
sinon si m < 59 alors uneDurée (h, m + 1, 0)
sinon uneDurée (h + 1, 0, 0)

Questions :

1) Spécification du Type Concret de Données Durée

1.1) Vous êtes le concepteur du TAD Durée et vous souhaitez en donner une
incarnation dans un langage de programmation. En vous appuyant sur le profil des
opérations de la spécification fonctionnelle du type abstrait Durée, écrire la
spécification de chaque sous-programme en langage algorithmique : nom du sous-
programme, rôle du sous-programme en un court commentaire, paramètres en entrée,
paramètres en sortie, paramètres en mise à jour, ... Tout paramètre d'une procédure
ou d'une fonction ainsi que tout résultat de fonction sera correctement typé.

1.2) En reprenant les en-têtes de la question précédente et les propriétés données
dans le sujet, fournir la spécification du type concret Durée. On exportera les
opérations d’affectation (<-) et de comparaison (= et /=) de deux durées.


2) Implémentation du Type Abstrait de Données Durée

2.1) Vous êtes maintenant le programmeur du TAD Durée et vous avez en charge
d’implémenter le type abstrait (concret) Durée spécifié par le concepteur. Définir en
langage algorithmique le type Durée par un enregistrement.

2.2) En respectant la spécification des sous-programmes et en utilisant les
propriétés du type abstrait Durée, programmer en langage algorithmique les
différentes opérations spécifiées.

2.3) Fournir l’implémentation du type abstrait Durée.

2.4) Vous remarquez qu’une durée peut aussi se coder par un entier mémorisant
son nombre de secondes. Définir en langage algorithmique un tel type Durée et
programmer dans cette représentation les opérations du type.

2.5) Fournir la spécification et l’implémentation du type dans cette nouvelle
représentation.


Merci de votre aide.
Any

1 réponse

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
25 mars 2009 à 22:05
Re,

Mais tu n'est pas en grève. Donc tu peux commencer à faire tes exercices et montrer où tu n'y arrives pas.
0