Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program ejercicio1tp6;
- uses crt;
- type
- TventaLote = record
- numero: integer;
- nombre: String[30];
- costo: real;
- end;
- Tvector = array[1..100] of TventaLote;
- Tauxiliar = array[1..1] of TventaLote;
- var
- v1: Tvector;
- n1: integer;
- v2: Tvector;
- n2: integer;
- v3: Tvector;
- n3: integer;
- aux: Tauxiliar;
- Function OrdenarXCoste( var v: Tvector; n: integer; var aux: Tauxiliar):Tvector;
- var
- i, j, k: integer;
- begin
- for i:=1 to n-1 do
- begin
- k:= i;
- for j:=(i+1) to n do
- if (v[j].costo)>(v[i].costo) then
- begin
- k:=j;
- aux[1]:= v[j];
- v[k]:= v[i];
- v[i]:= aux[1];
- end;
- end;
- OrdenarXCoste:=v;
- end;
- procedure mostrar(v:Tvector; n:integer);
- var
- y, i : integer;
- begin
- //clrscr;
- gotoxy(2,2);write('Numero Nombre Costo ');
- y := 4;
- for i := 1 to n do
- begin
- gotoxy(2,y);write(v[i].numero);
- gotoxy(12,y);write(v[i].nombre);
- gotoxy(22,y);write('$',v[i].costo:3:2);
- y := y + 1;
- end;
- gotoxy(3,y + 1);write('**** next[enter] ****');
- readkey;
- end;
- Function Fusionar(var v3:Tvector; var n3:integer; v1: Tvector; v2: Tvector; n1:integer; n2:integer ):Tvector;
- var
- i, j, k,z:integer;
- begin
- i:= 1;
- j:= 1;
- k:= 1;
- while((i<=n1) and (j<=n2))do
- begin
- if(v1[i].costo > v2[j].costo)then
- begin
- v3[k] := v1[i];
- i := i+1;
- end
- else
- begin
- v3[k] := v2[j];
- j:= j+1;
- end;
- k:= k+1;
- end;
- if (i>n1) then
- begin
- for z:=j to n2 do
- begin
- v3[k]:=v2[z];
- k:= k+1;
- end;
- end
- else
- begin
- for z:=i to n1 do
- begin
- v3[k]:=v1[z];
- k:= k+1;
- end;
- end;
- n3:= n1+n2;
- Fusionar:=v3;
- end;
- function buscarN(v:Tvector; n:integer; c:integer):boolean;
- var
- i:integer;
- band: boolean;
- begin
- i:=1;
- band:=false;
- while((i<=n)and(band=false))do
- begin
- if(v[i].numero = c)then
- band :=true;
- i:=i+1;
- end;
- buscarN:=band;
- end;
- procedure nuevaVenta(var l: TventaLote; i:integer; v:Tvector;n:integer);
- var
- num:integer;
- b: boolean;
- begin
- clrscr;
- with l do
- begin
- b:=false;
- gotoxy(10,1);writeln('VENTA N',i);
- repeat
- begin
- gotoxy(5,3);write('Numero de venta: ');
- readln(num);
- if(buscarN(v,n,num)=false)then
- begin
- numero:=num;
- b := true;
- end
- else
- begin
- gotoxy(5,4);write('numero repetido en la misma lista');
- GotoXY(5,3);
- ClrEol;
- end;
- end;
- until(b=true);
- GotoXY(5,4);
- ClrEol;
- gotoxy(5,4);write('Nombre: ');
- readln(nombre);
- gotoxy(5,5);write('Costo: ');
- readln(costo);
- end;
- end;
- procedure cargarVentas(var v1: Tvector; var v2: Tvector; var n1:integer; var n2:integer);
- var
- i,j: integer;
- begin
- gotoxy(5,9);write('Cantidad de ventas para la LISTA 1? ');
- readln(n1);
- for i:= 1 to n1 do
- nuevaVenta(v1[i],i,v1,n1);
- clrscr;
- write('Cantidad de ventas para la LISTA 2? ');
- readln(n2);
- for j:= 1 to n2 do
- nuevaVenta(v2[j],j,v2,n2);
- end;
- procedure menu();
- var
- opc:integer;
- begin
- repeat
- clrscr;
- gotoxy(5,1);writeln('************MENU GENERAL*************');
- gotoxy(5,2);writeln('Cargar ventas..............[1]');
- gotoxy(5,3);writeln('Mostrar ventas.............[2]');
- gotoxy(5,4);writeln('Ordenar y fusionar ventas..[3]');
- gotoxy(5,5);writeln('SALIR......................[4]');
- gotoxy(5,7);write('Escoja una opcion: ');
- readln(opc);
- case opc of
- 1: cargarVentas(v1,v2,n1,n2);
- 2:begin
- clrscr;
- gotoxy(2,1);write(' **** LISTA 1**** ');
- mostrar(OrdenarXCoste(v1,n1,aux),n1);
- clrscr;
- gotoxy(2,1);write(' **** LISTA 2**** ');
- mostrar(OrdenarXCoste(v2,n2,aux),n2);
- end;
- 3:begin
- clrscr;
- gotoxy(2,1);write(' **** LISTAS FUSIONADAS**** ');
- mostrar(Fusionar(v3,n3,OrdenarXCoste(v1,n1,aux),OrdenarXCoste(v2,n2,aux),n1,n2),n3)
- end
- else
- writeln('Opción Incorrecta');
- end;
- until opc = 4 ;
- end;
- begin
- menu();
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement