mercredi 15 novembre 2006

Les listes de propriétés (logo)Les listes de propriétés

Travail avec les liste de propriété et les symboles

Parfois les données n’ont de sens que dans un contexte précis, c’est dans ce cadre que l’on utilise les listes de propriétés.

Par exemple, prenons une liste d’étudiant avec une note d’examen pour chacun d’eux.

1) dans la fenêtre message tapez :

MaListe = ["Jean" : 15, "Nathalie" : 14, "Pierre" : 14, "Eve" : 10]

Chaque prénom à une valeur numérique (une note) associée. Le nom est la propriété, la valeur la note.

listObjRef.getProp(property)

2) entrez les lignes suivantes

resultat = MaListe.getProp("Eve")
put resultat

3) si on entre :

put min(MaListe)

Quelle est le résultat ?

4) dans la fenêtre message

put MaListe.getOne(14)

La fenêtre message retourne -- "Nathalie"

Autre commandes et fonctions sur les listes de propriétés

listObjRef.findPos(property), identifie la position d’une propriété dans une liste de propriétés.

listObjRef.setProp(property, value), dans une liste, remplace la valeur affectée à une propriété spécifiée par une nouvelle valeur. Si la liste ne contient pas la propriété spécifiée, setProp renvoie une erreur de script.

listObjRef.deleteProp(property), la suppression d’une propriété supprime également la valeur qui lui est associée. Si la liste contient la même propriété à plusieurs endroits, seule la première occurrence de la propriété est supprimée.

listObjRef.sort(), trie la liste. Testez cette fonction avec la liste de propriétés pour voir comment son fonctionnement diffère de la liste linéaire.

Symbole

Un truc qui devient intéressant quand on travaille avec les listes linéaires, c’est l’utilisation des symboles plutôt que des chaines de caractères pour les propriétés. pour faire un symbole, il suffit de mettre un dièse (#) devant une donnée (#jean par exemple). Les symboles ne sont pas des variables mes des valeurs qui ne peuvent pas changer. L’avantage d’utiliser des symboles, c’est qu’il prennent moins de place en mémoire et se retrouve plus rapidement que des chaînes de caractères (ou des entiers).