Pascal/Turbo Pascal - ordenar matriz

 
Vista:

ordenar matriz

Publicado por lc (4 intervenciones) el 04/08/2005 20:30:18
necesito ordenar una matriz de 10 x 10 acendentemente puede ayudarme alguien???
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 juan (209 intervenciones) el 06/08/2005 10:38:56
{
MICROPAIS 29 de julio 2005
Algoritmo de ordenacion bastante rapido, parecido al QUIT SORT de basic
ojo se parecen pero no son iguales (este es de fabricacion casera)
en listas de ordenacion de mas de 10.000 elementos deberas implementar
algun oto algoritmo mas eficiente.
}
uses crt;

var maximo:integer;
matriz:array[1..10]of string[10];
cnt:integer;
{****************************************************************************}
{
El procedimiento ordenar necesita tener la variable global maximo ,actua
sobre el array global MATRIZ en este caso es de cadenas de texto, pero puede
ser numerico, actuar sobre registros etc , para ello deberas cambiar
tambien la variable interna T ,este procedimiento parece simple pero es mas
complicado de lo que parece , lo que si es facil es exportarlo a otras
aplicaciones con cambios minimos.
puedes cambiar el signo de ordenacion directamente.
}
procedure ordenar(var maximo:integer);
var
longitud,salto:integer;
terminado:boolean;
alto,bajo:integer;
a,b:integer;
t:string;

contador:integer;
begin { procedure }
longitud:=maximo;
salto:=1;
while salto <=longitud do begin salto:=salto * 2;end;
while salto >1 do
begin {salto}
{--------------------------------------------------------------------------}
salto:=((salto-1) div 2)+1;
{...........................................}
repeat
terminado:=true;
for alto:=1 to longitud-salto do
begin{for}
bajo:=alto+salto;
{*****************************************************}
{ para una ordenacion inversa cambia de signo de > a <}
{ aqui es donde deberas efectuar cambios para exportar}
{ este procedimiento a tus programas. }
if matriz[alto]> matriz[bajo] then
begin
t:=matriz[alto];
matriz[alto]:=matriz[bajo];
matriz[bajo]:=t;
terminado:=false;
end;
{*****************************************************}

end;{for}
until (terminado);
end;{salto}
end;{ procedure }

{////////////////////////////////////////////////////////////////////////////}

begin
matriz[1]:='enrique';
matriz[2]:='alfonso';
matriz[3]:='daniel';
matriz[4]:='pedro';
matriz[5]:='jorge';
matriz[6]:='felipe';
matriz[7]:='dani';
matriz[8]:='paco';
matriz[9]:='gregorio';
matriz[10]:='sancho';

clrscr;
writeln('___________ Contenido de la MATRIZ Antes de ordenar');
for cnt:=1 to 10 do writeln( matriz[cnt]);
maximo:=10; { Total de elementos en la matriz }
ordenar(maximo); { llamada al procedimiento ordenar }
writeln('___________ Contenido de la MATRIZ Despues de ordenar');
for cnt:=1 to 10 do writeln( matriz[cnt]);
writeln(' Pulsa una tecla para continuar');
readln;

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

MATRIZ

Publicado por diana (1 intervención) el 06/08/2005 19:37:05
ejercicio
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:MATRIZ

Publicado por estefani rivas (1 intervención) el 01/03/2006 20:41:34
por fa necesito un programa que ordene matrices
puede ser tambien una factura es decir arreglos bidimensionales
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