Example #1
0
unsigned char proximo(unsigned char *a, unsigned int i, unsigned int j, unsigned char regla, unsigned int n){
	unsigned char prox;
	unsigned char actual = *(a + n * i + j);
	//Determino el estado de los vecinos
	unsigned char vecino_izq;
	unsigned char vecino_der;
	if(j == 0){
		vecino_izq = *(a + n * i + n - 1);
		vecino_der = *(a + n * i + 1);
	}
	else if (j == (n - 1)){
		vecino_izq = *(a + n * i + j - 1);
		vecino_der = *(a + n * i);
	}
	else{
		vecino_izq = *(a + n * i + j - 1);
		vecino_der = *(a + n * i + j + 1);
	}

	unsigned int buffer[MAX_BINARIO];
	decimal_binario(buffer,regla,MAX_BINARIO);
	//Caso 111
	if ((vecino_izq == 1) && (actual == 1) && (vecino_der == 1)){
		prox = buffer[0];
	}
	//Caso 110
	else if ((vecino_izq == 1) && (actual == 1) && (vecino_der == 0)){
		prox = buffer[1];
	}
	//Caso 101
	else if ((vecino_izq == 1) && (actual == 0) && (vecino_der == 1)){
		prox = buffer[2];
	}
	//Caso 100
	else if ((vecino_izq == 1) && (actual == 0) && (vecino_der == 0)){
		prox = buffer[3];
	}
	//Caso 011
	else if ((vecino_izq == 0) && (actual == 1) && (vecino_der == 1)){
		prox = buffer[4];
	}
	//Caso 010
	else if ((vecino_izq == 0) && (actual == 1) && (vecino_der == 0)){
		prox = buffer[5];
	}
	//Caso 001
	else if ((vecino_izq == 0) && (actual == 0) && (vecino_der == 1)){
		prox = buffer[6];
	}
	//Caso 000
	else if ((vecino_izq == 0) && (actual == 0) && (vecino_der == 0)){
		prox = buffer[7];
	}
	return prox;
}
Example #2
0
void recebe(int *vetor){
  int i, j, *par, retorno;
  par = malloc(sizeof(int));

  for(i=0,j=0;i<10;i++){
    if(vetor[i] % 2 == 0){
      retorno = decimal_binario(&vetor[i]);
      par[j] = retorno;
      j++;
    }
  }

  printf("\nVETOR DOS BINARIOS:\n");
  for(i=0;i<j;i++){
    printf("Valor: %d ", par[i]);
  }
  printf("\n\n");
}