N.S.I. WorkSpace T-Th-A,Terminale A.3.4 – Type abstrait : tableau associatif (vs Dictionnaire Python)

A.3.4 – Type abstrait : tableau associatif (vs Dictionnaire Python)

Categories:

Caractéristiques

Une valeur n’est pas accessible par un index (ou indice) mais par une clé unique.

Un couple clé/valeur constitué une entité appelée ‘item’ dans le langage ‘Python’.

La valeur d’une clé n’est pas modifiable.

Interface (spécifications)

  • un constructeur
  • getters :
    – nombre d’entités (couples clé/valeur)
    – valeur associée à une clé
    – liste des clés
    – liste des entités
  • setters :
    – ajout d’une entité
    – modification de la valeur associée à une clé
    – suppression d’une entité

Implémentation

Nous proposons une implémentation qui s’inspire de celle d’une liste chaînée.

Nous utiliserons le paradigme de programmation objet.

Nous commençons par définir une classe ‘entite’.

Poursuivons par la définition d’une classe ‘TablAssoc’ de son constructeur et de deux méthodes internes.

Ajoutons les « Setters »

Terminons par les « Getters »

Utilisation du module dans un programme principal

"""Module : Tableau Associatif (Programme principal)."""

from class_TablAssoc import *

# instanciation
ta = TablAssoc()

# tableau vide ?
t1 = ta.__estVide__()

# ajout/modification d'une entité
s1 = ta.setEntite("NSI", 15)

# nombre d'entité
n1 = ta.nbeEntite()

# ajout/modification d'une entité
s2 = ta.setEntite("UAL", 22)

# nombre d'entité
n2 = ta.nbeEntite()

# lecture valeur
v1 = ta.getValeur("NSI")

# ajout/modification d'une entité
s3 = ta.setEntite("NSI", 33)

# lecture valeur
v2 = ta.getValeur("NSI")

# ajout/modification d'un Entite
s4 = ta.setEntite("URL", "http://c-est-magik.com")

# nombre d'Entites
n2 = ta.nbeEntite()
# toutes les clés
a1 = ta.allCle()
i1 = ta.allEntite()

# suppression d'une entité
k1 = ta.delEntite("UAL")

# nombre d'entité
n3 = ta.nbeEntite()
# toutes les clés
a2 = ta.allCle()
i2 = ta.allEntite()

# lecture valeur
v3 = ta.getValeur("NSI")

# lecture valeur
v4 = ta.getValeur("URL")

# lecture valeur
v5 = ta.getValeur("UAL")

Etat des variables à l’issue de l’exécution du programme