[ Foro de Pascal ]

Como comparar regiones de una matriz

09-Oct-2012 19:50
Pepe Dantil
4 Respuestas

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?


10-Oct-2012 06:03
Luis Torres (+18)

¿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


10-Oct-2012 20:29
Pepe Dantil

Si :)


11-Oct-2012 01:46
Sebastian Saldaño

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.
   


12-Oct-2012 03:12
Nacho Cabanes (+84)

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