Sie sind auf Seite 1von 8

Una empresa de av|ac|on rea||za S00 vue|os semana|es a d|st|ntos puntos

de| pa|s y requ|ere un programa para e| otorgam|ento de pasa[es.


ara e||o d|spone de un arch|vo de reg|stros, en e| que cada reg|stro
cont|ene |nformac|n de |os vue|os que rea||za y |a cant|dad de pasa[es
d|spon|b|es en cada uno de e||os segn se |nd|ca:
coJlqo Je voelo.
cootlJoJ Je posojes Jlspoolbles.
1amb|en se d|spone de otro arch|vo con |os datos de |os potenc|a|es compradores, en
e| que cada reg|stro t|ene:
coJlqo Je voelo sollcltoJo.
cootlJoJ Je posojes sollcltoJos.
uNl Jel sollcltoote.
Nombte Jel sollcltoote.
Desarro||ar estrateg|a, a|gor|tmos y cod|f|cac|n de| programa que determ|ne e
|mpr|ma:
1) ara los sollclLanLes a los cuales se les vende pasa[es.
unl nCM88L CAn1luAu uL ASA!LS CCulCC uL vuLLC
99999 xxxxxxxxxxxx 9999999 99999
99999 xxxxxxxxxxxx 9999999 99999
99999 xxxxxxxxxxxx 9999999 99999
2) Al flnal del proceso el slgulenLe llsLado:
CCulCC uL vuLLC ASA!LS Ll88LS SC88An1LS 8LCPAZAuCS(no vendldos)
99999 99999999 999999
99999 99999999 999999
99999 99999999 999999

4c/orocion: 5o/o se /e vende posojes o/ so/icitonte si /o contidod de
posojes so/icitodos esto disponib/e, en coso controrio se computo como
{c/iente) posojes no vendidos.
C:\Users\USER\Desktop\GRAFICAR.pas viernes, 18 de enero de 2013 10:57
type TRVuelos = record
codVuelo:integer;
disponibles:integer;
end; TAVuelos = File of TRVuelos;
type TRCompradores = record
codVuelo:integer;
solicitados:integer;
dni:longint;
nombre:string[20];
end; TACompradores = File of TRCompradores;
type TRVector = record
codVuelo:integer;
disponibles:integer;
noVendidos:integer;
end; TVector = array [1..500] of TRVector;
//******************************************************************************
procedure cerrar(var ACompradores:TACompradores;
var AVuelos:TAVuelos);
begin
close(ACompradores);
close(AVuelos);
end;
//******************************************************************************
procedure buscar(var Vector:TVector;
N:integer;
clave:integer;
var pos:integer);
var i:integer;
begin
i:=1;
while((i <= N) and (Vector[i].codVuelo <> clave))do begin
inc(i);
end;
if(i <= N)then begin
pos:=i;
end else begin
pos:=-1;
end;
end;
//******************************************************************************
procedure imprimirVectorFinal(Vector:TVector;
N:integer);
var i:integer;
begin
writeln('');
writeln('Muestro Los Datos Finales Del Vector De Vuelos.');
writeln('----------------------------------------------------');
writeln('');
writeln('CodigoVuelo Disponibles rechazados.');
writeln('----------- ---------------- ----------');
writeln('');
for i:=1 to N do begin
writeln(Vector[i].codVuelo,' ',Vector[i].disponibles,' ',Vector[i].noVendidos);
end;
readln
end;
//******************************************************************************
-1-
C:\Users\USER\Desktop\GRAFICAR.pas viernes, 18 de enero de 2013 10:57
procedure procesoEInformeInicial(var ACompradores:TACompradores;
var Vector:TVector;
N:integer);
var RCompradores:TRCompradores;pos:integer;
begin
writeln('');
writeln('Muestro los registros a quienes se les vendio el pasaje.');
writeln('--------------------------------------------------------');
writeln('');
writeln('DNI Nombre Solicitados codVuelo');
writeln('--- ------ ----------- --------');
while(not eof(ACompradores))do begin
read(ACompradores,RCompradores);
buscar(Vector,N,RCompradores.codVuelo,pos);
if(Vector[pos].disponibles >= RCompradores.solicitados)then begin
dec(Vector[pos].disponibles,RCompradores.solicitados);
writeln('');
writeln(RCompradores.dni,' ',RCompradores.nombre,' ',RCompradores.
solicitados,' ',RCompradores.codVuelo);
end else begin
inc(Vector[pos].noVendidos,RCompradores.solicitados);
end;
end;
end;
//******************************************************************************
procedure cargarVector(var AVuelos:TAVuelos;
var Vector:TVector;
var N:integer);
var RVuelos:TRVuelos;
begin
N:=0;
while(not eof(AVuelos))do begin
read(Avuelos,RVuelos);
inc(N);
Vector[N].codVuelo:=RVuelos.codVuelo;
Vector[N].disponibles:=RVuelos.disponibles;
Vector[N].noVendidos:=0;
end;
end;
//******************************************************************************
procedure crearArchivos(var ACompradores:TACompradores;
var AVuelos:TAVuelos);
var RVuelos:TRVuelos;RCompradores:TRCompradores;
begin
assign(AVuelos,'AVuelos.dat');
rewrite(AVuelos);
writeln('Empezamos creando el archivo de vuelos.');
writeln('');
write('Ingrese un codigo de vuelo: ');
readln(RVuelos.codVuelo);
while(RVuelos.codVuelo <> 0)do begin
write('Ingrese pasajes disponibles: ');
readln(RVuelos.disponibles);
writeln('');
write(AVuelos,RVuelos);
write('Ingrese otro codigo de vuelo: ');
readln(RVuelos.codVuelo);
-2-
C:\Users\USER\Desktop\GRAFICAR.pas viernes, 18 de enero de 2013 10:57
end;
reset(AVuelos);
writeln('');
writeln('Ahora creamos el archivo de compradores.');
assign(ACompradores,'ACompradores.dat');
rewrite(ACompradores);
writeln('');
write('Ingrese un codigo de vuelo: ');
readln(RCompradores.codVuelo);
while(RCompradores.codVuelo <> 0)do begin
write('Ingrese pasajes solicitados: ');
readln(RCompradores.solicitados);
write('Ingrese dni del solicitante: ');
readln(RCompradores.dni);
write('Ingrese nombre del solicitante: ');
readln(RCompradores.nombre);
writeln('');
write(ACompradores,RCompradores);
write('Ingrese otro codigo de vuelo: ');
readln(RCompradores.codVuelo);
end;
reset(ACompradores);
end;
//******************************************************************************
var ACompradores:TACompradores;AVuelos:TAVuelos;Vector:TVector;N:integer;
begin
crearArchivos(ACompradores,AVuelos);
cargarVector(AVuelos,Vector,N);
procesoEInformeInicial(ACompradores,Vector,N);
imprimirVectorFinal(Vector,N);
cerrar(ACompradores,AVuelos);
end.
-3-
C
crearArchivos(ACompradores,AVuelos)
cargarVector(AVuelos,Vector,N)
procesoEInformeInicial(ACompradores,Vector,N)
imprimirVectorFinal(Vector,N)
cerrar(ACompradores,AVuelos)
F
crearArchivos(var ACompradores:TACompradores;var AVuelos:TAVuelos)
assign(AVuelos,'AVuelos.dat')
rewrite(AVuelos)
'Empezamos creando el archivo de vuelos.'
'Ingrese un codigo de vuelo: '
RVuelos.codVuelo
(RVuelos.codVuelo <> 0)
'Ingrese pasajes disponibles: '
RVuelos.disponibles
AVuelos,RVuelos
'Ingrese otro codigo de vuelo: '
RVuelos.codVuelo
reset(AVuelos)
''
'Ahora creamos el archivo de compradores.'
assign(ACompradores,'ACompradores.dat')
rewrite(ACompradores)
'Ingrese un codigo de vuelo: '
RCompradores.codVuelo
(RCompradores.codVuelo <> 0)
'Ingrese pasajes solicitados: '
RCompradores.solicitados
'Ingrese dni del solicitante: '
RCompradores.dni
'Ingrese nombre del solicitante: '
RCompradores.nombre
ACompradores,RCompradores
'Ingrese otro codigo de vuelo: '
RCompradores.codVuelo
buscar(var Vector:TVector;N:integer;clave:integer;var pos:integer)
i <-- 1
((i <= N) and (Vector[i].codVuelo <> clave))
inc(i)
(i <= N)
pos <-- i pos <-- -1
R
C
N <-- 0
(not eof(AVuelos))
Avuelos,RVuelos
inc(N)
Vector[N].codVuelo <-- RVuelos.codVuelo
Vector[N].disponibles <-- RVuelos.disponibles
Vector[N].noVendidos <-- 0
F
procesoEInformeInicial(var ACompradores:TACompradores;var Vector:TVector;N:integer)
'Muestro los registros a quienes se les vendio el pasaje.'
'--------------------------------------------------------'
'DNI Nombre Solicitados codVuelo'
'--- ------ ----------- --------'
(not eof(ACompradores))
ACompradores,RCompradores
buscar(Vector,N,RCompradores.codVuelo,pos)
(Vector[pos].disponibles >= RCompradores.solicitados)
dec(Vector[pos].disponibles,RCompradores.solicitados)
RCompradores.dni,'',RCompradores.nombre,'',RCompradores.solicitados,'',RCompradores.codVuelo
inc(Vector[pos].noVendidos,RCompradores.solicitados)
R
imprimirVectorFinal(Vector:TVector;N:integer)
'Muestro Los Datos Finales Del Vector De Vuelos.'
'----------------------------------------------------'
'CodigoVuelo Disponibles rechazados.'
'----------- ---------------- ----------'
i <-- 1 to N
Vector[i].codVuelo,' ',Vector[i].disponibles,' ',Vector[i].noVendidos
R
cerrar(var ACompradores:TACompradores;var AVuelos:TAVuelos)
close(ACompradores)
close(AVuelos)
R

Das könnte Ihnen auch gefallen