[java]algo de ChangRoberts
Kenobi
-
yousra01 -
yousra01 -
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
Merci pour votre aide
Kenobi
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
A voir également:
- [java]algo de ChangRoberts
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
2 réponses
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
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