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)
{