Alg.java

414 palavras 2 páginas
int* percorreTetadeN(int ponto)

{

int x, y; // coordenadas cartesianas

int * retorno; // retorno das coordenadas

int v; // variavel de iteracao dos pontos

retorno = (int *) malloc (3 * sizeof(int));

int incOp = 1; // permissao de incrementar operacao

x = y = 0;

int op = 0; // operacao basica a ser executada

int conta = 0; // quantas vezes

int laco = 2; // numero de lacos de cada trajeto

int vezes = 0; // tamanho de caminhos de cada trajeto

for (v = 0; v 2) // se o ponto sendo percorrido for maior que 2

{

incOp = 0; // trava incremento de operacao

if (conta == laco) // se o laco ja rodou laco vezes

{

conta = 0; // zera contador

vezes ++;

++op; // proxima operacao

if (vezes == 2) // se um laco ja se repetiu 2 vezes

{

laco++; // increnta o numero de seus caminhos

vezes = 0;

}

}

else if (ponto != 0) incOp = 1;

conta ++;

incOp = 0;

}

if (op > 4) op = 1; // garante a existencia de apenas 4 operacoes

switch (op)

{

case 1:

y = incY(&y);

break;

case 2:

x = decX(&x);

break;

case 3:

y = decY(&y);

break;

case 4:

x = incX(&x);

break;

}

if (incOp)

{

++op;

}

}

retorno[0] = x;

retorno[1] = y;

retorno[2] = v; // passos

return retorno;

}

int incX(int* x)

{

Relacionados