-
Lamer
Traduzir do java para o c++
Boa noite, pessoal. tudo bem?
estou com uma duvida, eu ainda não comecei a programar em java, por enquanto so em c++...
por isso preciso que alguem faça a traducao para mim...
desde ja agradeço pela atencao..
o codigo é:
CLASS AGENTE
public class Agente extends Thread {
private Mesa m;
private int item1, item2;
public Agente(Mesa m) {
this.m = m;
}
public void run() {
while (true) {
escolherItem();
while (m.calocarItensNaMesa(item1 + item2) == false)
;
}
}
public void escolherItem() {
item1 = (int) (Math.random() * 3);
item2 = (int) (Math.random() * 3);
if (item1 == item2)
if (item2 == 2)
item2 = 0;
else
item2++;
}
}
CLASS MESA
public class Mesa {
private int fumante = 4;
private int estado[] = { 0, 0, 0 };
private final int ESPERANDO = 0;
private final int FUMANDO = 1;
public synchronized void fumar(int i) {
while (fumante != i) {
try {
wait();
} catch (InterruptedException e1) {
e1.printStackTrace();
}
}
if (fumante == i) {
estado[i - 1] = FUMANDO;
mostrarStatus();
} else {
System.out.println("ERROR");
}
}
public synchronized void finalizar(int i) {
estado[i - 1] = ESPERANDO;
fumante = 4;
notifyAll();
}
public synchronized boolean calocarItensNaMesa(int z) {
int cont = 0;
for (int x = 0; x < 3; x++)
if (estado[x] != FUMANDO)
cont++;
if (cont == 3) {
fumante = z;
notifyAll();
try {
wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
} else {
return false;
}
return true;
}
public void mostrarStatus() {
for (int i1 = 0; i1 < 3; i1++) {
System.out.printf("F%d", (i1 + 1));
switch (estado[i1]) {
case ESPERANDO: {
System.out.printf("ESPERANDO ");
break;
}
case FUMANDO: {
System.out.printf("FUMANDO ");
break;
}
}
}
System.out.print("\n");
}
}
CLASS FUMANTE
public class Fumante extends Thread {
private Mesa m;
private final int fumante;
private final int delay = 1000;
public Papel(Mesa m, int fumante) {
this.m = m;
this.fumante = fumante;
}
public void run() {
while (true) {
m.fumar(fumante);
fumar();
m.finalizar(fumante);
}
}
public void fumar(){
try{
Thread.sleep((int) (Math.random() *delay));
}catch (InterruptedException e) {
// TODO: handle exception
}
}
}
Permissões de Postagem
- Você não pode iniciar novos tópicos
- Você não pode enviar respostas
- Você não pode enviar anexos
- Você não pode editar suas mensagens
-
Regras do Fórum