Simulation discrete des evenements en Java

Fermé
cnenana Messages postés 4 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 3 septembre 2011 - 31 août 2011 à 21:35
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 3 sept. 2011 à 15:22
Bonjour,

je veux votre aide pour créer une horloge en JAVA pour un simulateur des evenements discrets, l'horloge normalent s'initialise à zero au debut de la simulation et à chaque fois (evenements) sa valeur s'augmente....

merci d'avance pour votre assitance.

A voir également:

1 réponse

KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 018
1 sept. 2011 à 02:19
Quel est ton problème exactement ?

Pour compter le temps tu prends un Integer, Long, Float ou Double selon tes besoin, tu l'initialises à zéro et à chaque fois tu augmente sa valeur du pas désiré.
Si tu as besoin d'avoir des valeurs infiniment grande et/ou infiniment précise, tu peux prendre un BigInteger ou un BigDecimal.
Et si tu as beaucoup d'accès concurrentiel sur les threads, tu peux également te tourner vers AtomicInteger ou AtomicLong...
1
cnenana Messages postés 4 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 3 septembre 2011
2 sept. 2011 à 14:41
merci, mais je ne comprends toujours pas comment faire le passage d'un evenement à l'autre....
0
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 018
2 sept. 2011 à 15:46
Tu ne passes pas "d'un évènement à l'autre", tu passes d'un état à un autre à la suite d'un évènement. Ta dynamique consiste donc à attendre un évènement et agir à celui-ci.
Exemple : état=porte-fermée, évènement=appuyer-bouton => action=ouvrir-porte, état=porte-ouverte

Après tout dépend de ce que tu veux faire, ton simulateur pourrait lancer automatiquement (aléatoirement ?) plusieurs évènements à la suite pour voir comment se comporte le système, auquel cas ta dynamique serait plutôt, je créé un évènement, je le traite, et je recommence.
Mais il faudrait plus d'information sur ce que tu souhaites faire pour mieux t'aider.
0
cnenana Messages postés 4 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 3 septembre 2011
3 sept. 2011 à 13:27
ok, voila l'exemple standard de la simulation:

Algorithme:
debut
temps=0;
inserer(arrivée,temps)dans l'eventList;
.....
fin.

procedure arrivée():
debut
temps=temps_evenement; " je ne sais pas comment calculer ce temps, c'est mon probleme"
temps_arrivée=temps+ temps_inter_arrivée " obtenu via une loi de distribution"
inserer(arrivée,temps_arrivée)dans l'eventList;
.....
fin

procedure service():
debut
temps=temps_evenement; " ça aussi, d'ou j'obtient ce temps là?"
temps_depart=temps+estimation_du_temps_service;
inserer(depart,temps_depart)dans l'eventlist;
fin

Donc, ce que je veux savoir, Comment je calcule la valeur da la variable temps?

Merci.
0
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 018
3 sept. 2011 à 14:31
Ce qui paraît bizarre c'est ton inserer(arrivée,temps), tu ne parles pas de la méthode inserer, mais de la méthode arrivée alors que c'est un paramètre de inserer !

Il faut que tu distingues ce qui est paramètre ou méthode, ou que tu expliques ce qu'est la méthode insérer, parce qu'ici elle est manquante.
En gros, pour moi tes procédure arrivée et service ne servent à rien vu qu'elles ne sont jamais utilisées, en effet nul part je ne vois d'appel à arrivée() ou service()

Enfin, essaye d'expliquer ce que c'est censé faire, parce que j'ai l'impression que tu sors tout ça du chapeau, personnellement tout cela n'a aucun sens. Même un pseudo-code est censé être stucturé, mais là tout est mélangé !
0
cnenana Messages postés 4 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 3 septembre 2011
3 sept. 2011 à 15:03
le probleme ce n'est pas mes methodes, je veux dire par inserer(arrivée, temps) par exemple, c'est d'inserer un nouveau evenement de type arrivée qui va avoir lieu au temp temps, j'ai écrit inserer(arrivée, temps) pour expliquer......., et bien sur il y a un MAIN à partir duquel je vais lancer ma simulation avec les autres je n'ai pas enterer dans le detail, car ce n'est pas mon probleme et j'ai déja programmer ça en java, tous ce que je veux savoir c'est le TEMPS
0