Bonjour à tous,
Je suis en train de finir le développement d'un simulateur réseau de Petri pour simuler un service d'urgence.
Ça fais 1 semaine que je suis bloquée dans une ligne de code qui m'affiche une erreur que je dois le résoudre le plus vite possible.
Je ne vais pas entrer en détails dans le concept de simulation pour ne pas compliquer le problème, mais ce que j'essaye de faire est de passer le jeton ,qui a le numéro d'indice le plus petit, d'une place à l'autre dans le cas ou la transition est franchissable . Comme par exemple( voir la figure) passer un jeton de P36 à P42.
je vous présente ci dessous une partie de mon code liée au problème. qui m’affiche sur cette ligne: (jeton_var(36, min_jeton) = min_jeton ' DE P36 A P42) que l'indice n'appartient pas à la sélection.
Code: Déclaration de variable
''creation des jetons
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Dim id_jeton As Long Dim min_jeton As Long Dim jeton_var() As Long Dim passage() As Variant Dim inf As Double inf = 100000 id_jeton = 1 ReDim jeton_var(1 To 52, 1 To id_jeton) ReDim passage(1 To 52, 1 To id_jeton) ReDim copie_passage42(1 To id_jeton)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 If j = 1 And tempovar(j) = t + tempo(j) Then jeton_var(1, id_jeton) = id_jeton id_jeton = id_jeton + 1 End If ReDim Preserve jeton_var(1 To 52, 1 To id_jeton) ReDim Preserve passage(1 To 52, 1 To id_jeton) ReDim Preserve copie_passage42(1 To id_jeton)
'franchissement de T36
Je vous remercie tous et ça me fera plaisir si je trouvera une réponse sur le forum car je suis vraiment bloqué
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 If j = 36 And tempovar(j) = Min * sfranchis(j) Then ' transition qui à le prochain temps de franchissement le plus petit For b = 1 To id_jeton If jeton_var(29, b) <> 0 And jeton_var(29, b) < min_jeton Then min_jeton = jeton_var(29, b) ' l'indice de jeton le plus petit End If Next b jeton_var(36, min_jeton) = min_jeton ' DE P36 A P42 passage(35, min_jeton) = Min copie_passage42(min_jeton) = Min jeton_var(29, min_jeton) = inf
Partager