Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

sidneimarques

c++ to JAVA

Recommended Posts

Bom dia a todos participantes do forum, estou iniciando em java e na faculdade o prof está pegando pesado, rsrs nos pediu um programa (abaixo) porém algumas coisas eu ainda nao aprendi então fiz o código em c++, se alguém puser ajudar a passar para java eu agradeço.

 

obrigado

 

segue o problema proposto pelo prof:

 

-Nesse problema você recriará uma das mais belas historias folcloricas , a saber, a classica competição entre a lebre e a tartaruga. você utilizará geração de numeros aleatorios para desenvolver uma simulação desse memoravel evento.

Nossos competidores começam a corrida no "quadrado1" de 70 quadrados. Cada quadrado representa um posição possível ao longo do percurso da competição. A linha de chegada está no quadrado 70. o primeiro competidor a alcançar ou passar o quadrado 70 será o vencedor.

O percurso envolve subir uma montanha escorregadia, de modo que ocasionalmente, os competidores perdem terreno. Há um relogio que bate uma vez por segundo(isto é, para cada batida uma repetição no laço).

 

Utilize variáveis para monitorar a posiçaõ dos animais. Inicie com cada animal na posição 1. Se um animal escorrega para a esquerda antes do quadrado 1, mova o animal de volta para o quadrado 1. gere as porcentagens na tabela precedente produzindo um inteiro aleatório, i, no intervalo 1  i  10. Para a tartaruga, realize uma “caminhada rápida” quando 1  i  5, um “escorregão” quando 6  i  7 ou uma “caminhada lenta” quando 8  i  10. Utilize técnica semelhante para mover a lebre.

Inicie a corrida imprimindo

Bang!!!!

E eles partiram !!!!

Então, para cada batida do relógio, imprima duas linhas de 70 posições cada mostrando, na primeira linha, a letra T na posição da tartaruga e para a segunda linha mostrando L para lebre.

Ex:

Linha 1: T

Linha 2: L

 

Depois que cada linha é impressa, teste se o animal alcançou ou passou o quadrado 70. Se isso ocorreu, imprima o vencedor e encerre a simulação. Se a tartaruga ganhar imprima A Tartaruga vence!!. Caso contrario imprima a Lebre Vence!!!.

 

 

 

 

 

Tabela 1 – Regras para ajustar as posições da tartaruga e da lebre.

Animal

Tipo de Movimento

Porcentagem do tempo

Movimento Real

 

Caminhada rápida

50%

3 quadrados à direita

Tartaruga

Escorregão

20%

6 quadrados à esquerda

 

Caminhada lenta

30%

1 quadrados à direita

 

 

 

 

 

Dormindo

20%

Sem movimento

Lebre

Salto grande

20%

9 quadrados à direita

 

Escorregão grande

10%

12 quadrados à esquerda

 

Salto pequeno

30%

1 quadrados à direita

 

Escorregão pequeno

20%

2 quadrados à esquerda

 

AQUI o código feito por mim em c++

 

#include<stdlib.h>

#include<iostream.h>

#include<math.h>

 

RAND_MAX=9;

char linha1[70], linha2[70]

int moveT, moveL;

int main()

{

int contT, contL;

 

for(int i=0;i<70;i++)//laço para limpar os vetores

{

linha1=' ';// com espaços

linha2=' ';

}

 

for (contT=0;contL=0;contT<70&&contL<70)

{

linha1[contT]='T'; // inicia a tartaruga

cout<<"Linha1";

linha1[contT]=' '; // limpa posiçao apos exibir

moveT=RAND();

if(moveT==0||moveT==1)

contT=contT-6;

else if(moveT==2||moveT==3||moveT==4)

contT=contT+1;

 

else

 

contT=contT+3;

 

if (contT<0)

contT=0; // termina verificação da tartaruga

 

linha2[contL]='L'; // inicia lebre

cout<<"linha2";

linha2[contL]=' '; // limpa posição

 

moveL=RAND();

 

is(moveL==0) // escorregao grande

contL=contL-12;

 

else if(moveL==1||moveL==2) //domindo

contL=contL;

 

else if(moveL==3||moveL==4) //salto grande

contL=contL+9;

 

else if(moveL==5||moveL==6)//escorregao pequeno

contL=contL-2;

 

else

contL=contL+1;

if(contL<0)

contl=0; //termina lebre

} //fim laço for

 

if(contT>=70)

cout<<"A tartaruga vence!!!";

else if (contL>=70)

cout<<"A Lebre vence!!!";

 

else

cout<<"Empate";

 

} // fim main

 

 

 

obrigado a todos!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja se é isso mesmo que você quer:

 

public class Corrida {	public static void main(String args[]) {  int RAND_MAX=9;  char linha1[] = new char[70];  char linha2[] = new char[70];  int moveT, moveL;  int contT=0, contL=0;  for (contT=0;contT<70 && contL<70;)  { 	 linha1[contT]='T'; // inicia a tartaruga 	 System.out.print(linha1[contT]); 	 linha1[contT]=' '; // limpa posiçao apos exibir 	 moveT=(int)(Math.random()*RAND_MAX); 	 if (moveT==0||moveT==1)    contT=contT-6; 	 else if (moveT==2||moveT==3||moveT==4)    contT=contT+1; 	 else    contT=contT+3;   	 if (contT<0)    contT=0; // termina verificação da tartaruga	 	 linha2[contL]='L'; // inicia lebre 	 System.out.print(linha2[contL]); 	 linha2[contL]=' '; // limpa posição 	 moveL=(int)(Math.random()*RAND_MAX);	 	 if (moveL==0) // escorregao grande    contL=contL-12; 	 else if (moveL==1||moveL==2) //domindo    contL=contL; 	 else if (moveL==3||moveL==4) //salto grande    contL=contL+9; 	 else if (moveL==5||moveL==6)//escorregao pequeno    contL=contL-2; 	 else    contL=contL+1;	 	 if (contL<0)    contL=0; //termina lebre  } //fim laço for  if (contT>=70) 	 System.out.print("A tartaruga vence!!!");  else if (contL>=70) 	 System.out.print("A Lebre vence!!!");  else 	 System.out.print("Empate");	}} // fim main
Obs: tinham alguns erros no código em C++, em especial no for, por isso não sei se a condição que coloquei é a certa.

 

Abraços,

 

Graymalkin

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.