Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program ejemploPacial;
- uses crt;
- //van los registros , los vectores matrices,
- type
- Fecha=record
- dia:integer;
- mes:integer;
- anio:integer
- end;
- Empleado=record
- legajo:integer;
- nombre:String[20];
- sueldo:real;
- fechaIngreso:Fecha
- end;
- tvEmpleados=array[1..100] of Empleado; //es el vector
- //declaran las var del algoritmo principal
- var
- opc,n,legajoBus,pos:integer;
- resp:char;
- v:tvEmpleados;
- //procedimientos y funciones
- procedure menu(var opc:integer); //por referencia cambia .. var
- begin
- writeln('1-cargar el vector de empleados');
- writeln('2-mostrar vector de empleado');
- writeln('3-buscar un empleado por legado');
- writeln('4-ordenar el vector en forma CRECIENTE por SUELDO');
- writeln('ingrese una opcion: ');
- readln(opc);
- end;
- procedure cargarUnEmpleado(var e:Empleado );
- begin
- writeln('*********************');
- WriteLn('ingrese legajo:');
- readln(e.legajo);
- WriteLn('ingrese nombre:');
- readln(e.nombre);
- WriteLn('ingrese sueldo:');
- readln(e.sueldo);
- WriteLn('ingrese dia de ingreso:');
- readln(e.fechaIngreso.dia);
- WriteLn('ingrese MES de ingreso:');
- readln(e.fechaIngreso.mes);
- WriteLn('ingrese ANIO de ingreso:');
- readln(e.fechaIngreso.anio);
- end;
- procedure mostrarUnEmpleado( e:Empleado);
- begin
- writeln('*********************');
- writeln('LEGAJO= ', e.legajo);
- writeln('NOMBRE=', e.nombre);
- writeln('SUELDO=', e.sueldo:4:2);
- writeln('FECHA ING DIA=', e.fechaIngreso.dia);
- writeln('FECHA ING MES=', e.fechaIngreso.mes);
- writeln('FECHA ING ANIO=', e.fechaIngreso.anio);
- end;
- procedure cargarVectorDeEmpleados(var v:tvEmpleados;var N:integer);
- var
- i:integer;
- begin
- writeln('Ing la cantida de empleado N: ');
- readln(N);
- for i:=1 to N do
- begin
- cargarUnEmpleado(v[i]);
- end;
- end;
- procedure mostrarVectorDeEmpleados( v:tvEmpleados; N:integer);
- var
- i:integer;
- begin
- for i:=1 to N do
- begin
- mostrarUnEmpleado(v[i]);
- end;
- end;
- function buscarXLegajo(v:tvEmpleados;n:integer; legajoBuscado: integer): integer;
- var
- pos,i:integer;
- begin
- pos:=0;
- for i:=1 to n do
- begin
- if(v[i].legajo = legajoBuscado) then
- begin
- pos:=i;
- end;
- end;
- buscarXLegajo:=pos;
- end;
- Procedure Swap(Var x, y : Empleado);
- Var
- //este es le procedimiento de intercambio intercambio 2 registro personas
- aux: Empleado;
- Begin
- aux:= x;
- x:= y;
- y:= aux;
- End;
- Procedure BubbleSortCreciente(Var X:tvEmpleados; N : Integer);
- Var
- i, j : Integer;
- Begin
- //ordenacion por metodo de burbuja
- For i := 2 To N Do
- Begin
- For j := N Downto i Do
- begin
- //aqui elijo el campo por el que quiero ordenar < Creciente
- If (X[j].sueldo < X[j - 1].sueldo) Then//esta parte es importante para ver si es creciente o decreciente ORDEN POR SUELDO
- Swap(X[j - 1], X[j]);//intercambio
- end;
- End;
- mostrarVectorDeEmpleados(X,N);
- End;
- //el principal
- begin
- repeat
- ClrScr;//limpio la pantalla
- menu(opc);
- case opc of
- 1:cargarVectorDeEmpleados(v,n);
- 2:mostrarVectorDeEmpleados(v,n);
- 3:begin
- writeln('ING un legajo que desea buscar: ');
- readln(legajoBus); //legajoBus es el legajo que el usuario desea buscar...
- pos:=buscarXLegajo(v,n,legajoBus); //capturo el resultado de la busqueda en la variable pos
- if(pos<>0)then //evaluamos la variables pos si es <>0 entonces se encontro el legajo , en caso contranio no
- begin
- writeln('LEGAJO ENCONTRADO EN POSICION: ', pos);
- end
- else
- begin
- writeln('LEGANO NO ENCONTRADO ERROR......');
- end;
- end;
- 4:BubbleSortCreciente(v,n); //ordenamos en forma creciente por legajo .. ej.. .100 101 102
- end;
- writeln('DESEA CONTINUAR S/N: '); //la repeticion es apedido del operador
- readln(resp);
- until (resp='N')or(resp='n');
- readKey; //hace una pausa a la ejecucion y tiene que estar..
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement