• Aucun résultat trouvé

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