De c para java

ESTOU PRECISANDO DE ESCREVER ESSE CODIGO DE C PARA JAVA
SE ALGUEM CONSEGUIR POR FAVOR ME MANDEM!

roger_fsg@hotmail.com

#define TAM_MATRIZ 250
#define CERCA ‘#’
#define PASTO ‘.’
#define OVELHA ‘k’
#define LOBO ‘v’
#define VAZIO ‘r’
#define VISITADO ‘b’

int num_linhas,num_colunas;
char fazenda[TAM_MATRIZ + 2][TAM_MATRIZ + 2];
int busca_valida;

int ovelhas_pasto,lobos_pasto;
int ovelhas_vivas,lobos_vivos;

void le_entrada(void)
{
int i,j;

scanf("%d %d",&num_linhas,&num_colunas);

for (i = 0;i <= num_linhas + 1;++i)
fazenda[i][0] = fazenda[i][num_colunas + 1] = VAZIO;
for (i = 0;i <= num_colunas + 1;++i)
fazenda[0][i] = fazenda[num_linhas + 1][i] = VAZIO;

for (i = 1;i <= num_linhas;++i)
for (j = 1;j <= num_colunas;++j)
scanf(" %c",&fazenda[i][j]);
}

void busca_pasto(int a,int b)
{
if (fazenda[a][b] == VAZIO)
{
busca_valida = 0;
return;
}

if (fazenda[a][b] == CERCA || fazenda[a][b] == VISITADO)
return;

if (fazenda[a][b] == OVELHA)
++ovelhas_pasto;
if (fazenda[a][b] == LOBO)
++lobos_pasto;

fazenda[a][b] = VISITADO;

busca_pasto(a - 1,b);
busca_pasto(a,b + 1);
busca_pasto(a + 1,b);
busca_pasto(a,b - 1);
}

void calcula(void)
{
int i,j;

ovelhas_vivas = lobos_vivos = 0;

for (i = 1;i <= num_linhas;++i)
for (j = 1;j <= num_colunas;++j) {
if (fazenda[i][j] != CERCA || fazenda[i][j] != VISITADO) {

ovelhas_pasto = lobos_pasto = 0;
busca_valida = 1;

busca_pasto(i,j);

if (busca_valida) {
  if (ovelhas_pasto > lobos_pasto)
    ovelhas_vivas += ovelhas_pasto;
  else
    lobos_vivos += lobos_pasto;
}
  }
}

}

int main(void)
{
le_entrada();
calcula();
printf("%d %d\n",ovelhas_vivas,lobos_vivos);

return 0;
}

Com um artigo básico de Java e um pouco de pesquisa você consegue resolver isso e ainda aprende alguma coisa. Código pronto não !!

Não peça para a comunidade fazer o seu trabalho de faculdade…

coloque a sua dúvida, sobre pontos especificos da linguagem, por exemplo:

o equivalente ao código C:

#define TAM_MATRIZ 250 

em java é:

private static final int TAM_MATRIZ = 250;

fw

Ps: utilize as tags de código para escrever os códigos fontes.

tente!!!o forum e para apenas auxiliar nas duvidas…e não para fazer o seu trabalho.!
:slight_smile:

Este tipo de post mostra um total desconhecimento de Java e de C.

Parta do começo: Sabe fazer um hello world em C? em Java?

Se não, aprenda-os. Se sim, então vá entender o seu program em C.

As diretivas include e define do C não tem correspondência direta em Java, pois java não usa preprocessador! Algumas coisas são obvias como converter uma macro para um atributo constante, entretanto se vc tiver uma macro com parâmetros a coisa muda de figura.

Outra coisa que muda, bastante, é a entrada/saida de dados. As estruturas de if, else, for, while switch/case são quase as mesmas, com a diferença que java tem um tipo de dado booleano explicito (enquanto em C são os valores 0 e não-zero). Em C as strings são arrays de chars e vc tem aritmetica de ponteiros explicita, ja em java vc tem Strings como objetos imutáveis.

Outra coisa, com algumas modificações o seu programa pode ser passado quase 100% pra java. Entretanto vc vai ganhar mais se entender o seu programa e entender o basico de C e Java para fazer esta conversão. E nem estamos falando de Orientação à Objetos!

esse aplicativo seu é facil de reescrever em java… estude um pouco de POO e fará belezinha