[ Foro de Pascal ]
Hola tengo que hacer una funcion en la cual me dan una matriz de 9*9, esta matriz la tengo que dividir en 9 regiones de 3*3 y ver que cada elemento sea distinto, alguien me puede tirar una idea?
¿Cada elemento de las submatrices deben ser distintos dentro de cada submatriz?. Por ejemplo, si consideramos la primera submatriz, esta ¿podría ser la siguiente?:
1 2 3
4 5 6
7 8 9
Si :)
Para las sub-matrices podes hacer una función que te devuelva boolean, osea recorres la matriz elemento a elemento y donde encuentres uno repetido terminas la función.
PodrÃa ser:
Function Recorre: boolean;
For i:=1 to n do
for j:=1 to n do
if a[i]=a[j] then
recorre:=true;
end;
Algo asÃ, vos obviamente ponle los parámetros adecuados y demás cosas.
Con un doble "for" te bastaría para comparar cada elemento con todos los demás si fuera una matriz unidimensional (un vector).
Al ser una matriz de dos dimensiones, necesitarás un doble "for" para acceder a cada elemento y otro doble "for" para compararlo con todos los demás (excepto él mismo).
Piensa cómo lo habías para una matriz de 3x3. Cuando lo tengas claro, aplicarlo a las 9 submatrices de una de 9x9 es muy sencillo:
columnaDeSubmatriz := columna div 3;
posicionEnSubmatriz := columna mod 3;
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)