Types abstraits et encapsulation

Le type abstrait de données : ses opérations et leurs propriétés, l'interface contre l'implémentation, constructeurs, accesseurs et modificateurs, l'invariant, et ce que protège l'encapsulation.

  • 25 cartes
  • 3 thèmes
  • Gratuit

Le programme, thème par thème

Le poids de chaque thème suit celui que lui donne l'examen.

  1. Notions
  2. Questions
  3. Ranger et relier

Quelques cartes du deck

  • Type abstrait de données : de quoi s'agit-il ?

    Voir la réponse

    Description d'une donnée par ses opérations et les propriétés qu'elles respectent, sans dire comment la donnée est représentée en mémoire.

    Pour une pile, on dit que le sommet après empiler(p, x) est x ; on ne dit pas si un tableau ou une liste chaînée se trouve derrière.

  • Une pile vérifie les propriétés : sommet(empiler(p, x)) vaut x et depiler(empiler(p, x)) vaut p. Que vaut sommet(depiler(empiler(empiler(creer(), 3), 8))) ?

    • 3
    • 8
    • La pile qui ne contient que 3
    • Une erreur : la pile est vide
    Voir la réponse

    3

    On lit de l'intérieur : creer() est vide, puis 3, puis 8 au sommet. depiler retire le 8 et redonne la pile [3] ; sommet en renvoie l'élément, 3, pas la pile. Aucune représentation n'a servi : seules les propriétés comptent.

  • Le code client ne doit dépendre que de l'… d'un type, jamais de son ….

    Voir la réponse

    Le code client ne doit dépendre que de l'interface d'un type, jamais de son implémentation.

    Ainsi la représentation peut changer sans qu'aucun appelant ne soit réécrit.

  • Interface d'un type : de quoi s'agit-il ?

    Voir la réponse

    Ensemble des opérations qu'un utilisateur du type a le droit d'appeler, avec leurs paramètres et leurs résultats.

    C'est le contrat : tant qu'il ne change pas, le code qui s'en sert continue de fonctionner, quoi qu'on modifie derrière.

  • Une file vérifie : tete(enfiler(creer(), x)) vaut x, et défiler retire le plus ancien. Que vaut tete(defiler(enfiler(enfiler(creer(), 5), 9))) ?

    • 5
    • 9
    • La file qui ne contient que 9
    • Une erreur : la file est vide
    Voir la réponse

    9

    La file contient 5 puis 9. defiler retire le plus ancien, 5, et il reste 9 en tête. Avec une pile, le même enchaînement aurait donné 5.