Pascal/Turbo Pascal - Ordenar matriz

   
Vista:

Ordenar matriz

Publicado por Laura (2 intervenciones) el 12/12/2009 10:59:19
Hola!!
Necesito el código para ordenar una matriz nxm por filas y por columnas. Es decir, la matriz ordenada quedaría de la siguiente forma:

20 95 135
73 101 142
90 120 168
92 128 170

Si no es el codigo, tambien me vendria bien cualquier tipo de idea para realizarlo.

Gracias!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ordenar matriz

Publicado por Antonio (74 intervenciones) el 12/12/2009 16:59:28
Hola Laura.
En este momento no puedo entretenerme en implementar el algoritmo y explicartelo, pero te paso la URL de un tutorial muy bueno:
http://www.itlp.edu.mx/publica/tutoriales/pascal/organiza.html
Y también la página concreta de los arrays:
http://www.itlp.edu.mx/publica/tutoriales/pascal/u5_5_2_2.html
Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ordenar matriz

Publicado por Diego Romero (997 intervenciones) el 12/12/2009 21:48:11
Ninguno de los dos links funciona.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ordenar matriz

Publicado por Antonio (74 intervenciones) el 14/12/2009 13:58:37
Hola Laura
No se si habras obtenido la información por otra parte o si es demasiado tarde, pero es ahora cuando he podido desarrollar e implementar el programa y también probarlo; pues no soy un experto y las explicaciones tecnicas se me dan muy mal, y así evitar errores.
Al tratarse de un array unidimensional la forma de la tabla la conseguimos con la funcion "gotoxy" y las variables "k" y "l":

program Ordenacion_de_array;
uses crt;
const
Max = 32;
var
Ordenar : array[1..Max] of integer;
i,j,k,l,aux : integer;

begin
clrscr;
{cargar los valores en las posiciones del array}
for i := 1 to 14 do
begin
write('Introduce valor: ');
readln(Ordenar[i]);
clrscr;
end;
k := 10;
l := 4;

{es valor "14" puede ser otro mientras no rebases el
valor de la variable "MAX".Tambien se puede declarar una variable para
este valor y asi introducirlo a voluntad}

{ORDENACION DEL ARRAY}
for i := 1 to 14 do
begin
for j := i+1 to 14 do
begin
if ordenar[i]>ordenar[j] then
begin
aux := ordenar[i];
ordenar[i]:= ordenar[j];
ordenar[j]:= aux
end
{Ahora para presentar la tabla en pantalla empleamos las variables
"k" y "l" para situar los valores mediante la funcion "gotoxy"}
end;
gotoxy(k,l);
write(Ordenar[i]:5);
k := k+5;
if k = 25 then
begin
k := 10;
l := l+1
end
end;

end.

Un saludo y
Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar