Pascal/Turbo Pascal - Ordenamiento de registro

 
Vista:
sin imagen de perfil

Ordenamiento de registro

Publicado por Horacio Daniel Belardita (53 intervenciones) el 22/11/2011 16:03:32
Hola Buenos dias .si me podrian ayudar para como ordenar este array de registro una vez cargado los datos primero por division y luego por numero de empleado.

[code
]const
MaxEmpleado = 5;
type
empleado = record
division : string[20];
numero : integer;
categoria : 1..15;
canthoras : 1..24;
end;
arrayempl = array[1..MaxEmpleado] of empleado;
var
regempleado:arrayempl;
[/code]

desde ya gracias.saludos
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

Ordenamiento de registro

Publicado por ramon (2158 intervenciones) el 22/11/2011 20:37:35
{Espero esto te ayude suerte}

uses
crt;
const
MaxEmpleado = 5;

type
empleado = record
division : string[20];
numero : integer;
categoria : 1..15;
canthoras : 1..24;
end;
arrayempl = array[1..MaxEmpleado] of empleado;

var
regempleado : arrayempl;
i : integer;


procedure entrada;
begin
i := 1;
regempleado[i].division := 'Comiendo Queso';
regempleado[i].numero := 10;
regempleado[i].categoria := 1;
regempleado[i].canthoras := 4;
i := i + 1;
regempleado[i].division := 'Veviendo Vino';
regempleado[i].numero := 23;
regempleado[i].categoria := 3;
regempleado[i].canthoras := 10;
i := i + 1;
regempleado[i].division := 'Poniendose Tivio';
regempleado[i].numero := 2;
regempleado[i].categoria := 6;
regempleado[i].canthoras := 20;
i := i + 1;
regempleado[i].division := 'Pasando de Todo';
regempleado[i].numero := 3;
regempleado[i].categoria := 9;
regempleado[i].canthoras := 10;
i := i + 1;
regempleado[i].division := 'Tanto Monta';
regempleado[i].numero := 50;
regempleado[i].categoria := 15;
regempleado[i].canthoras := 13;
end;

procedure presenta;
begin
for i := 1 to 5 do
begin
writeln(regempleado[i].division,' ',regempleado[i].numero,
' ',regempleado[i].categoria,' ',regempleado[i].canthoras);
end;
end;

procedure ordena_division;
var
tempo : empleado;
t, y : integer;
begin
for t := 1 to 4 do
for y := 5 downto t + 1 do
begin
if regempleado[y - 1].division > regempleado[y].division then
begin
tempo := regempleado[y];
regempleado[y] := regempleado[y - 1];
regempleado[y - 1] := tempo;
end;
end;
end;

procedure ordena_numero;
var
tempo : empleado;
t, y : integer;
begin
for t := 1 to 4 do
for y := 5 downto t + 1 do
begin
if regempleado[y - 1].numero > regempleado[y].numero then
begin
tempo := regempleado[y];
regempleado[y] := regempleado[y - 1];
regempleado[y - 1] := tempo;
end;
end;
end;


begin
clrscr;
entrada;
presenta;
ordena_division;
writeln;
presenta;
writeln;
ordena_numero;
presenta;
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
sin imagen de perfil

Ordenamiento de registro

Publicado por Horacio Daniel Belardita (53 intervenciones) el 23/11/2011 04:25:21
Buenisimo Gracias Roman una vez mas por tu ayuda.Exitos y que sigas bien
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