Bonjour tout le monde. J'ai le listing suivant dans le corps d'une
tache ( un tunnel ferroviaire)
Le tunnel signale qu'un train peut entrer via le parametre do sortie
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 select accept entrer(sdc: in sensDeCirculation; reponse: out boolean) do if sdc=sdt then trains_dans_tunnel:=trains_dans_tunnel+1; reponse:=true; trains_passes:=trains_passes+1; else reponse:=false; end if; end entrer;
"reponse", et un train ne peut n'entre que s'il recoit une reponse
positive ce qui donne:
Je voudrais eviter d'utiliser le parametre de retour et la boucle
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 loop tunnel.entrer(sdc,autorisation); exit when autorisation; delay 0.1; end loop;
active, ce qui donnerait dans le corps du tunnel:
Mais biensur, la variable sdt n'est pas visible avant l'execution de
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 select when sdt=sdc => accept entrer(sdc: in sensDeCirculation) do trains_dans_tunnel:=trains_dans_tunnel+1; trains_passes:=trains_passes+1; end entrer;
"entrer".
Quelle solution me proposez-vous? Merce
Partager