ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Pseudocodigo De Un Sudoku


Enviado por   •  19 de Noviembre de 2014  •  498 Palabras (2 Páginas)  •  995 Visitas

Página 1 de 2

Fun es_factible (i, j : Nat; sol[1..9, 1..9] de 0..9) DEV Bool

Var

valido : Bool;

k,l: Nat;

FinVar;

valido := True;

k := 1;

Mientras (k <= 9 ^ valido) Hacer //Comprobamos la columna

Si ( sol[i, j] = sol[k, j] ^ k != i ){

Valido := Falso;

FinSi;

k := k + 1;

FinMientras;

l := 1;

Mientras (l <= 9 ^ valido) Hacer //Comprobamos la fila

Si ( sol[i, j] = sol[i, l] ^ l != j ){

Valido := Falso;

FinSi;

l := l + 1;

FinMientras;

// Lo anterior podría compactarse así, en un solo while que comprueba filas y columnas..

// Mientras (k<=9 ^ valido) Hacer

// Si ( (sol[i, j] = sol[k, j] ^ k != i) v (sol[i, j] = sol[i, k] ^ k != j))

// Valido := Falso;

// FinSi;

// FinMientras;

k := correspondencia3x3(i);

l := correspondencia3x3(j); //Comprobamos el subgrupo de 3x3

Mientras ( k < correspondencia3x3(i) + 3 ^ valido ) Hacer //por razones de eficiencia puede antes de esta etapa, asignar a una variable

Mientras ( l < correspondencia3x3(j) + 3 ^ valido) Hacer // el valor de correspondencia3x3(x) sea x=i o = j; así se evitan 2 llamadas

Si ( sol[i, j] = sol[k, l] ^ i != k ^ j != l) Entonces // a dicha función traduciéndose en mejor eficiencia.

valido := Falso;

FinSi;

l := l + 1;

FinMientras;

k := k + 1;

l := correspondencia3x3(j);

FinMientras;

Devolver valido;

FinFun;

...

Descargar como (para miembros actualizados) txt (2 Kb)
Leer 1 página más »
Disponible sólo en Clubensayos.com