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