Ordonnancement (683 octets)

Caractéristiques :    Détermine à partir de la matrice booléenne des antécédants les tâches
                                 immédiatement antérieure et les tâches pour les différents niveaux.
                                  Il n'y a plus qu'à tracer le graph d'ordonnancement.

Remarques :
                               - Il manque parfois des " ou des ) mais c'est pour gagner de la place.

Exemple :
 

Tâches
Tâches antérieures
A
-
B
A
C
A,B
D
A,B
E
A,B
F
C,D
G
F
H
E,F,G
I
G,H
J
F,G
K
I, J
L
I, J

Rq :La calculatrice nomme les tâches par des numéros. A vous de faire la correspondance suivant l'énoncé :

Ici, la tâche 1=A, 2=B, 3=C, 4=D, 5=E, 6=F, 7=G, 8 =H, 9=I, 10=J, 11=K, 12=L

Saisie dans la Matrice A (MATRX A) de la matrice booléenne correspondant
(Taille de la matrice 12 x 12).
(Il y a autant de ligne et colonne que de tâches. Ici 12 tâches donc 12 lignes et 12 colonnes)

Rappel : Les précédents correspondent aux colonnes (les précédents de la tâche 5 (ou E) sont
toutes les tâches pour lesquelles il y a un 1 dans la colonne 5 de la matrice booléenne).

MATRX A (12 x 12) :
0    1    1    1    1    0    0    0    0    0    0    0
0    0    1    1    1    0    0    0    0    0    0    0
0    0    0    0    0    1    0    0    0    0    0    0
0    0    0    0    0    1    0    0    0    0    0    0
0    0    0    0    0    0    0    1    0    0    0    0
0    0    0    0    0    0    1    1    0    1    0    0
0    0    0    0    0    0    0    1    1    1    0    0
0    0    0    0    0    0    0    0    1    0    0    0
0    0    0    0    0    0    0    0    0    0    1    1
0    0    0    0    0    0    0    0    0    0    1    1
0    0    0    0    0    0    0    0    0    0    0    0
0    0    0    0    0    0    0    0    0    0    0    0
 La calculatrice aprés une attente qui peut atteindre 25 à 30 secondes donne :

Immediatement antérieure
1 =                                 (Tâche immédiatement antérieure à 1 (A) c'est Rien)
2 = 1                              (Tâche immédiatement antérieure à 2 (B) c'est la tâche 1 (A))
3 = 2                              (Tâche immédiatement antérieure à 3 (C) c'est la tâche 2 (B))
4 = 2                              (Tâche immédiatement antérieure à 4 (D) c'est la tâche 2 (B))
5 = 2                              (Tâche immédiatement antérieure à 5 (E) c'est la tâche 2 (B))
6 = 3   4                         (Tâche immédiatement antérieure à 6 (F) c'est la tâche 3 et 4 (C et D))
7 = 6                              (Tâche immédiatement antérieure à 7 (G) c'est la tâche 6 (F))
8 = 5   7                         (Tâche immédiatement antérieure à 8 (H) c'est la tâche 5 et 7 (E et G))
9 = 8                              (Tâche immédiatement antérieure à 9 (I) c'est la tâche 8 (H))
10 = 7                            (Tâche immédiatement antérieure à 10 (J) c'est la tâche 7 (G)
11 = 9   10                     (Tâche immédiatement antérieure à 11 (K) c'est la tâche 9 et 10 (I et J))
12 = 9   10                     (Tâche immédiatement antérieure à 12 (L) c'est la tâche 9 et 10 (I et J))
 

Niveau = Tâches

0 = 1                               (Tâche au niveau 0 = 1 (A))
1 = 2                                (Tâche au niveau 0 = 2 (B))
2 = 3    4    5                   (Tâche au niveau 0 = 3, 4 et 5  (C,D et E))
3 = 6                               (Tâche au niveau 0 = 6 (F))
4 = 7                               (Tâche au niveau 0 = 7 (G))
5 = 8    10                       (Tâche au niveau 0 = 8 et 10  (H et J))
6 = 9                               (Tâche au niveau 0 = 9 (I))
7 = 11    12                     (Tâche au niveau 0 = 11 et 12 (K et L))

En Résumé on à :
 
 

Tâches
Tâches Antérieures
Tâches Immédiatement Antérieures
Niveau
A
-
-
0
B
A
A
1
C
A,B
B
2
D
A,B
B
2
E
A,B
B
2
F
C,D
C,D
3
G
F
F
4
H
E,F,G
E,G
5
I
G,H
H
6
J
F,G
G
5
K
I, J
I, J
7
L
I, J
I, J
7

Listing :

: ClrHome
: prgmZCLEAR
: dim([A])®L1:L1(1)®L
: dim([A])®L1:L1(2)®C
: {L,C}®dim([B]
: [A]®[B]
: For (X,1,L
: For (Y,1,C
: If [A](X,Y)¹0
: Then
: For(Z,1,L
: If Z¹Y and X¹Y
: Then
: If [A](X,Y]=1 and [A](X,Z)=1 and [A](Y,Z)=1
: Then
: If [B](X,Z)=1
: Then
: 0®[B](X,Z)
: End
: End
: End
: End
: End
: End
: End
: FnOff
: .1®Xmin
: 99®Xscl
: .1®Ymin
: 99® Yscl
: ClrDraw
: Text(1,1,"IMMEDIATEMENT ANTERIEURE
:13®H
: 3®I
: For (P,1,C
: If P=7 or P=14 or P=21 or P=28
: Then
: Pause
: ClrDraw
: Text(1,1,"IMMEDIATEMENT ANTERIEURE
: 13®H
: 3®I
: End
: I+7®I
: 13®H
: Text(I,1,P
: Text(I,10,"=
: For(R,1,L
: If [B](R,P)=1
: Then
: H+9®H
: Text(I,H,R
: End
: End
: End
: Pause
: -1®H
: 1®J
: 3®I
: ClrDraw
: Lbl 7
: For(W,1,C
: 0®N
: If [A](1,W)¹9:1®N
: End
: If N=0:Goto 9
: 1+H®H
: I+7®I
: 11®J
: If H=0 or fPart(H/7)=0
: Then
: 10®I
: 11®J
: If H¹0:Pause
: ClrDraw
: Text(1,5,"NIVEAU = TACHES
: End
: Text(I,1,H
: Text(I,8,"=
: For(W,1,C
: 0®N
: For(Z,1,L
: If [B](Z,W)=1:1+N®N
: End
: If N=0 and [A](1,W)¹9
: Then
: J+11®J
: Text(I,J,W
: 9®[A](1,W)
: End
: End
: For(R,1,C
: If [A](1,R)=9
: Then
: For (P,1,C
: 0®[B](R,P)
: End
: End
: End
: Goto 7
: Lbl 9
: Text(57,75,"FINI