Rechercher : dans
Par :

[java]algo de ChangRoberts

Dernière réponse le 24 aoû 2007 à 17:14:43 Kenobi, le 21 avr 2005 à 23:04:00 
 Signaler ce message aux modérateurs

Bonjour,
Je dois pour un devoir implémenter l'algorithme de ChangRoberts en java.
Je ne sais pas du tout par quoi commencer ni comment organiser le tout , c'est-à-dire si je dois faire plusieurs classes et si oui lesquelles, comment organiser...
Voici l'algorithme :

la variable etati prend les valeurs : passif, candidat, battu ou elu

debut
	si (Pi est initiateur) alors
		etati =candidat 
		envoyer le jeton < idi > sur l'anneau 
		répéter reçevoir < idi >
			si (idi = id) alors
				etati = elu 
			sinon 
				si (idi < id) alors
					si (etati = candidat) alors
						etat: = battu 
						envoyer le jeton < id >sur l'anneau
					Finsi
				Finsi
			FinSi
		tant que (etati! = elu) 
	sinon
		répéter
			recevoir < id >
			envoyer le jeton< id >sur l'anneau 
			si (etati  = passif) alors
				etati := battu
			Finsi
		tant que (vrai) 
	Finsi
Fin


Merci pour votre aide

Kenobi

Meilleures réponses pour « [java]algo de ChangRoberts » dans :
Comment changer mon mot de passe sous WLM/MSN VoirPour changer son mot de passe Windows Live Messenger, il suffit d'utiliser l'interface prévue à cet effet : http://memberservicesnet.passport.net/memberservice.srf?lc=1036 Si vous avez perdu votre mot de passe, merci de vous référer à...
[Carte-mère] Changer la pile de la carte mère VoirSommaire Symptômes Fréquence de changement: 1 . Noter les données du Bios 2. Localiser la pile du BIOS 3. Oter la pile usagée 4 - Installer la nouvelle pile 5. Vérifier les données du Bios et régler l'horloge Pour en savoir...
Changer de fond d'écran VoirPour Windows XP et versions antérieures Pour Windows Vista Obtenir des fonds d'écran Solution plus rapide Comment changer l'arrière-plan du Bureau ? Un fond d'écran est une image utilisée en arrière-plan de votre bureau. Lors d'une...
Télécharger Java Runtime Environment VoirJava Runtime Environment (JRE) installe la machine virtuelle Java, permettant de jouer en ligne, de discuter avec des personnes dans le monde entier, de calculer les intérêts de votre prêt immobilier ou de visualiser des images en 3D. Ces...
Java - Premier programme VoirPremière application avec Java La première chose à faire est de créer un simple fichier texte (sans mise en forme) et de taper les quelques lignes suivantes : // Votre premiere application en Java class FirstApp { public static void main...
Java - Les types de données VoirLes primitives Java est un langage orienté objet, c'est-à-dire que les éléments manipulés sont des classes, ou plus exactement des objets, c'est-à-dire des instances de classes. Toutefois ces objets contiennent des données possèdant un type (et...
J2EE - Java 2 Enterprise Edition VoirIntroduction au Java Framework Le «Java Framework» (Java 2 Platform) est composé de trois éditions, destinées à des usages différents : J2ME : Java 2 Micro Edition est prévu pour le développement d'applications embarquées, notamment sur des...

1

 2dj, le 24 aoû 2007 à 17:14:43
  • +4

Public class Token {

final int id = 4;
int Valjeton = 4;

public static void main(String[] args)
{

try
{
Token jeton = new Token();
new TokenR(jeton);
new TokenS(jeton);

}catch (Exception e){}

}

}



import java.io.*;
import java.net.*;


//...Classe pour recevoir un message...
//...Cette classe sera utilisée pour envoyer un jeton sur un anneau...
public class TokenR implements Runnable {

static final int portjetonR = 8900;
private Token Jeton;


//***Constructeur du Thread*
TokenR(Token jet)
{
Jeton = jet;
Thread t = new Thread(this);
t.start();
// System.out.println("Reception activée...");
}

public void run()
{
try
{

ServerSocket SocTokenR = new ServerSocket(portjetonR);

Socket SocClient = SocTokenR.accept(); // le client accepte une connexion


// Flux d'entrée du contenu du fichier depuis le serveur
BufferedReader in = new BufferedReader(new InputStreamReader(SocClient.getInputStream()));

int valeur = in.read()-48;
System.out.println(valeur);

if (valeur == Jeton.id)
{
System.out.println("-- ALGORITHME DE CHANG & ROBERTS --");
System.out.println("je suis élu !");
}

if (valeur > Jeton.Valjeton)
{
Jeton.Valjeton = valeur;
}
else
{
Jeton.Valjeton = Jeton.id;
}

}catch (Exception e){new TokenR(Jeton);}

finally
{
new TokenR(Jeton);
}
}

} //... FIN ...


import java.io.*;
import java.net.*;


// *** Cette classe est utilisée pour envoyer le jeton sur l'anneau
public class TokenS implements Runnable {

static final int portjetonS = 8909;

private Token Jeton;

//*** Constructeur de la Thread
TokenS(Token jet)
{
Jeton = jet;
Thread t = new Thread(this);
t.start();
System.out.println("Emission activée...");
}


public void run()
{
try
{

Socket SocTokenS = new Socket ("10.128.130.173", portjetonS);

// Flux de sortie pour envoyer le nombre ValServ au serveur suivant
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(SocTokenS.getOutputStream())));

out.println(Jeton.Valjeton);
//out.println(1);
out.flush();
}catch (Exception e){}

finally
{
new TokenS(Jeton);
}
}
} // ***FIN***

voici mon phone +22502046342

Répondre à 2dj
Collection CommentÇaMarche.net