Algorithme 1 Make
/* Associé à la fonction d’interprétation (IV.12) */ Sorties : un objet tst de type TST
tst := (∅, ∅) ;
retourner tst;
Algorithme 2 Add
/* Associé à la fonction d’interprétation (IV.13) */
Entrées : un objet tst de type TST, un objet a de type Activity et un objet d de type Trip Sorties : un objet tst de type TST
Soit α une unité de temps de l’échelle temporelle définie par l’utilisateur si check_activity(a) 6= true alors
ecrire(’erreur : l’activité donnée n’est pas valide’) ; sinon
si check_trip(d) 6= true alors
ecrire(’erreur : le déplacement donné n’est pas valide’) ; sinon
si check_tst(tst) 6= true alors
ecrire(’erreur : le TST donné n’est pas valide’) ; sinon
si d.ls = an.l ∧ d.le = a.l ∧ d.ts = an.te+ α ∧ d.te = a.ts− α alors
tst := (tst.A ∪ {a} , tst.d ∪ {d}); fin si fin si fin si fin si retourner tst
Algorithme 3 Activities_With_Mode_Count /* Associé à la fonction d’interprétation (IV.17) */
Entrées : un objet tst de type TST, un objet m de type string Sorties : un entier count de type integer
vérifier la validité de tst avec checktst, si c’est le cas parcourir l’ensemble de ces déplacements :
count :=o ;
pour chaque di ∈ tst.D faire si m ∈ di.mode alors count := count + 1; fin si fin pour retourner count; Algorithme 4 Nth_Activity
/* Associé à la fonction d’interprétation (IV.25) */
Entrées : un objettst de type TST, un entier i de type integer Sorties : un objet a de type Activity
vérifier la validité de tst, si c’est le cas :
n := card(tst.A);
si n = 0 alors
ecrire(’le TST est vide’) ; sinon
si i < 1 ∧ i > n alors
write(’La position donnée en argument n’existe pas dans le TST’) ; sinon
retourner tst.A.ai; fin si
fin si
Algorithme 5 Position_Activity
/* Associé à la fonction d’interprétation (IV.43) */
Entrées : un objettst de type TST, un objet a de type Activity Sorties : un entier pos de type Integer
Vérifier la validité de tst et de a, si c’est le cas : pos := 0 ;
pour chaque activité ai du tst faire si ai = a alors
Retouner i fin si
fin pour retourner pos
Algorithme 6 Activity_Before_Activity
/* Associé à la fonction d’interprétation (IV.33) */
Entrées : un objettst de type TST, un objet a de type Activity Sorties : un objet ares de type Activity
vérifier la validité de tst et de a, si c’est le cas :
n := card(tst.A)
si n 6= 0 alors
si Include_Activity(tst, a) = true alors
pos := P osition_Activity(tst, a);
si pos <> 1 alors
ares := tst.A.apos−1; Return ares; sinon
ecrire(’L’activité en argument est la première dans le TST, il n’existe pas d’activités qui la précèdent’) ;
fin si sinon
ecrire(’L’activité en argument n’existe pas dans le TST’) ; fin si
sinon
ecrire(’TST vide’) ; fin si
Algorithme 7 Activities_Before_Activity /* Associé à la fonction d’interprétation (IV.41) */
Entrées : un objettst de type TST, un objet a de type Activity Sorties : une liste d’activités alist de type Alist
vérifier la validité de tst et de a, si c’est le cas :
n := card(tst.A); alist := ∅;
si n 6= 0 alors
si Include_Activity(tst, a) = true alors
pos := P osition_Activity(tst, a);
si pos <> 1 alors
list := alist ∪ {ai ∈ tst1.A|1 ≤ i ≤ pos} Return alist;
sinon
ecrire(’L’activité en argument est la première dans le TST, il n’existe pas d’activités qui la précèdent’) ;
fin si sinon
ecrire(’L’activité en argument n’existe pas dans le TST’) ; fin si
sinon
ecrire(’TST vide’) ; fin si
Algorithme 8 Activities_With_Mode
/* Associé à la fonction d’interprétation (IV.48) */
Entrées : un objet tst de type TST, un objet m de type string Sorties : une liste d’activitésalist de type Alist
vérifier la validité de tst avec checktst, si c’est le cas parcourir l’ensemble de ces déplacements : alist := ∅;
pour chaque di ∈ tst.D faire si m ∈ di.mode alors
alist := alist ∪ {ai}; fin si
fin pour retourner alist;
Algorithme 9 First_Activity_With_Type /* Associé à la fonction d’interprétation (IV.49) */
Entrées : un objettst de type TST, un objet m de type String Sorties : un objet a de type Activity
vérifier la validité de tst avec checktst, si c’est le cas parcourir l’ensemble de ces activités : n = card(tst.A);
si n = 0 alors
ecrire(’le TST est vide’) ; sinon
pour chaque ai ∈ tst.A en commençant le parcours par i = 1 faire si ai.type = m alors
Retourner ai fin si
fin pour
ecrire(’il n’existe aune activité ayant ce type’) ; fin si
Algorithme 10 Next_Activity_With_Type /* Associé à la fonction d’interprétation (IV.51) */
Entrées : un objettst de type TST,un objet a de type Activity et un objet m de type String Sorties : un objet ares de type Activity
vérifier la validité de tst et de a, si c’est le cas parcourir l’ensemble des activités de tst :
n := card(tst.A);
si n 6= 0 alors
i := P osition_Activity(tst, a)
si i 6= 0 alors si i 6= n alors
pour chaque ai ∈ {ai ∈ tst.A|pos + 1 ≤ i ≤ n} faire si ai.type = m alors
Retourner ai
fin si fin pour
ecrire(’Aucune activité ayant le type indiqué ne suive l’activité en argument’) sinon
ecrire( ’L’activité en argument est la dernière dans le TST elle ne possède pas de suivant’) ;
fin si sinon
ecrire(’L’activité en argument n’existe pas dans le TST’) ; fin si
sinon
ecrire(’TST vide’) fin si
Algorithme 11 Previous_Activity_With_Type /* Associé à la fonction d’interprétation (IV.52) */
Entrées : un objettst de type TST,un objet a de type Activity et un objet m de type String Sorties : un objet ares de type Activity
vérifier la validité de tst et de a, si c’est le cas parcourir l’ensemble des activités de tst :
n := card(tst.A);
si n 6= 0 alors
i := P osition_Activity(tst, a)
si i 6= 0 alors si i 6= 1 alors
pour chaque ai ∈ {ai ∈ tst.A|i ≤ i ≤ pos − 1} i allant de pos-1 à i faire si ai.type = m alors
Retourner ai
fin si fin pour
ecrire(’Aucune activité ayant le type indiqué ne précède l’activité en argument’) sinon
ecrire( ’L’activité en argument est la première dans le TST elle ne possède pas de précédent’) ;
fin si sinon
ecrire(’L’activité en argument n’existe pas dans le TST’) ; fin si
sinon
ecrire(’TST vide’) fin si
Algorithme 12 At_Activity_Activity
/* Associé à la fonction d’interprétation (IV.65) */
Entrées : un objettst de type TST, deux activités x et y de type Activity Sorties : un objet res de type TST
vérifier la validité de tst et des activités x et y, si c’est le cas :
res := make(); n := card(tst.A);
si n = 0 alors
k := P osition_Activity(tst, x); j := P osition_Activity(tst, y);
{ Si l’activité a1 précède l’activité a2 dans le TST} si k <> 0 ou j <> 0 alors
si k ≤ j alors
pour chaque activité ai ∈ {ai ∈ tst.A|k ≤ i ≤ j} faire
res := Add(tst_res, tst.A.ai, tst.A.di); fin pour
Retourner res sinon
ecrire(’La première activité en argument doit précèder dans le TST la deuxième acti-vité en argumennt’)
fin si sinon
ecrire(’L’une des activités en arguments n’existe pas dans le TST’) fin si
sinon
ecrire(’Le TST en argument est vide’) fin si