SHARE
TWEET

Untitled

LeandroJavierCepeda Oct 12th, 2017 51 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. {Se tienen los datos de los vuelos de un aeropuerto para un determinado dia. De cada uno se lee:
  2. numero de vuelo, destino, hora de salida, duracion, linea aerea y costo del pasaje.
  3. Se pide:
  4. a- Mostrar todos los vuelos cuyo destino es Amsterdam e indicar si aerolineas argentinas vuela a ese destino.
  5. b- Listado ordenado por linea aerea y por destino.
  6. c- Determinar si el vuelo AA900 tiene como destino a Roma y mostrar todos sus datos.
  7. d- Dado un incremento en el combustible en España, se debe actualizar en un 10%, todos los pasajes de la linea aerea Iberia. }
  8.  
  9. Program PAE_Vuelos;
  10. uses crt;
  11. const n=2;
  12. type t_vuelos=record
  13.      numero_de_vuelo:string;
  14.      destino:string;
  15.      costo_del_pasaje,duracion,hora_de_salida:real;
  16.      linea_aerea:string;
  17.      end;
  18.      t_vector=array[1..n]of t_vuelos;
  19.      
  20. var
  21.      vector_vuelos_amsterdam,vector:t_vector;
  22.      posicion,lim,lim2:integer;
  23.      precio_combustible_espania:real;
  24.      buscado:string;
  25.      vuelo_ams_x_ae_ar:boolean;
  26.      
  27.      procedure inicializar(var v:t_vector;var l:integer);
  28.      var i:integer;
  29.      begin
  30.       for i:=1 to n do
  31.       with v[i] do
  32.       begin
  33.            numero_de_vuelo:='';
  34.            destino:='';
  35.            costo_del_pasaje:=0;
  36.            duracion:=0;
  37.            hora_de_salida:=0;
  38.            linea_aerea:='';
  39.       end;
  40.       l:=0;    
  41.      end;
  42.      
  43.      procedure cargar(var v:t_vector;var l:integer);
  44.      var aux:char;
  45.      begin
  46.       write('¿Desea comenzar a cargar datos? "s" o "n".');
  47.       readln(aux);
  48.       writeln;
  49.       while (aux<>'n') and (l<=n) do
  50.       begin
  51.            inc(l);
  52.            writeln('Ingrese: ');
  53.            with v[l] do
  54.            begin
  55.             write('Numero de vuelo: ');
  56.             readln(numero_de_vuelo);
  57.             write('Destino: ');
  58.             readln(destino);
  59.             write('Costo del pasaje: $');
  60.             readln(costo_del_pasaje);
  61.             write('Duracion: ');
  62.             readln(duracion);
  63.             write('Hora de salida: ');
  64.             readln(hora_de_salida);
  65.             write('Linea aerea: ');
  66.             readln(linea_aerea);
  67.            end;
  68.            writeln;
  69.            write('¿Desea continuar? "s" o "n".');
  70.            readln(aux);
  71.       end;
  72.      end;  
  73.    
  74.      procedure vuelos_amsterdam(var va,v:t_vector;var l2:integer;l:integer);
  75.      var i:integer;
  76.      begin
  77.       for i:=1 to l do
  78.       begin
  79.            if((v[i].destino)='Amsterdam')or((v[i].destino)='amsterdam')then
  80.            va[i]:=v[i];
  81.            l2:=i;
  82.       end;
  83.      end;
  84.      
  85.      procedure listado_ordenado_x_linea_aerea(var v:t_vector;l:integer);
  86.      var i:integer;
  87.      aux:t_vuelos;
  88.      orden:boolean;
  89.      begin
  90.       orden:=false;
  91.       while not(orden) do
  92.       begin
  93.            orden:=true;
  94.            for i:=1 to l-1 do
  95.            begin
  96.             if (v[i].linea_aerea+v[i].destino)>(v[i+1].linea_aerea+v[i+1].destino)then
  97.             orden:=false;
  98.             aux:=v[i];
  99.             v[i]:=v[i+1];
  100.             v[i+1]:=aux;
  101.            end;
  102.            
  103.       end;
  104.      end;
  105.      
  106.      Procedure busqueda_binaria (var v:t_vector;lim:integer;busca2:string;var pos:integer);
  107.      Var  pri,ult,med:integer;
  108.      Begin
  109.       Pri:=1;
  110.       Ult:=lim;
  111.       Pos:=0;
  112.       While (pri<=ult) and (pos=0) do
  113.       Begin
  114.            Med:=(pri+ult)div 2;
  115.            If ((v[med].numero_de_vuelo)='AA900')and((v[med].destino)=busca2) then
  116.            begin
  117.             Pos:=med;
  118.            end
  119.            Else if ((v[med].linea_aerea)>busca2)and((v[med].destino)>busca2) then
  120.            begin
  121.             Ult:=med-1;
  122.            end
  123.            Else
  124.            begin
  125.             Pri:=med+1;
  126.            End;
  127.       End;
  128.      End;
  129.  
  130.      procedure actualizar_pasajes_iberia(var v:t_vector;l:integer;pce:real);
  131.      var i:integer;
  132.      begin
  133.       if pce>20.626 then
  134.       begin
  135.            for i:=1 to l do
  136.            begin
  137.             if ((v[i].linea_aerea)='Iberia')or((v[i].linea_aerea)='iberia')then
  138.             (v[i].costo_del_pasaje):=(v[i].costo_del_pasaje)+(v[i].costo_del_pasaje*0.10);
  139.            end;    
  140.       end;
  141.      end;
  142.      
  143.      procedure mostrar_lapi(var v:t_vector;l:integer);
  144.      var i:integer;
  145.      begin
  146.       for i:=1 to lim do
  147.       begin
  148.            if ((v[i].linea_aerea)='Iberia')or((v[i].linea_aerea)='iberia')then
  149.            begin
  150.             with v[i] do
  151.             begin
  152.              writeln('Numero de vuelo: ',numero_de_vuelo);
  153.              writeln('Destino: ',destino);
  154.              writeln('Costo del pasaje: $',costo_del_pasaje:2:2);
  155.              writeln('Duracion: ',duracion:2:2);
  156.              writeln('Hora de salida: ',hora_de_salida:2:2);
  157.              writeln('Linea aerea: ',linea_aerea);
  158.             end;
  159.            end;
  160.       end;
  161.      end;
  162.      
  163.      procedure mostrar_vuelo_AA900(var v:t_vector;l:integer;pos:integer);
  164.      begin
  165.       with v[pos] do
  166.       begin
  167.            writeln('Numero de vuelo: ',numero_de_vuelo);
  168.            writeln('Destino: ',destino);
  169.            writeln('Costo del pasaje: $',costo_del_pasaje:2:2);
  170.            writeln('Duracion: ',duracion:2:2);
  171.            writeln('Hora de salida: ',hora_de_salida:2:2);
  172.            writeln('Linea aerea: ',linea_aerea);
  173.       end;
  174.      end;
  175.      
  176.      procedure mostrar_vuelos_amsterdam(var va:t_vector;l2:integer);
  177.      var i:integer;
  178.      begin
  179.       for i:=1 to l2 do
  180.       begin
  181.            with va[i] do
  182.            begin
  183.             writeln('Numero de vuelo: ',numero_de_vuelo);
  184.             writeln('Destino: ',destino);
  185.             writeln('Costo del pasaje: $',costo_del_pasaje:2:2);
  186.             writeln('Duracion: ',duracion:2:2);
  187.             writeln('Hora de salida: ',hora_de_salida:2:2);
  188.             writeln('Linea aerea: ',linea_aerea);
  189.             writeln;
  190.             if ((va[i].linea_aerea)='Aerolineas Argentinas') or ((va[i].linea_aerea)='Aerolineas argentinas')then
  191.             vuelo_ams_x_ae_ar:=true;
  192.            end;
  193.       end;
  194.       writeln;
  195.       if vuelo_ams_x_ae_ar=true then
  196.       writeln('Aerolineas argentinas posee vuelos con destino a Amsterdam.');
  197.      end;
  198.      
  199.      procedure mostrar(var v:t_vector;l:integer);
  200.      var i:integer;
  201.      begin
  202.       for i:=1 to l do
  203.       begin
  204.            with v[i] do
  205.            begin
  206.             writeln('Numero de vuelo: ',numero_de_vuelo);
  207.             writeln('Destino: ',destino);
  208.             writeln('Costo del pasaje: $',costo_del_pasaje:2:2);
  209.             writeln('Duracion: ',duracion:2:2);
  210.             writeln('Hora de salida: ',hora_de_salida:2:2);
  211.             writeln('Linea aerea: ',linea_aerea);
  212.             writeln;
  213.         end;
  214.       end;
  215.      end;
  216.      
  217.      
  218. begin
  219.      buscado:='Roma';
  220.      inicializar(vector,lim);
  221.      inicializar(vector_vuelos_amsterdam,lim2);
  222.      cargar(vector,lim);
  223.      mostrar(vector,lim);
  224.      
  225.      vuelos_amsterdam(vector_vuelos_amsterdam,vector,lim2,lim);
  226.      writeln;
  227.      writeln('Vuelos con destino a Amsterdam:');
  228.      writeln;
  229.      mostrar(vector_vuelos_amsterdam,lim2);
  230.      
  231.          
  232.      listado_ordenado_x_linea_aerea(vector,lim);
  233.      writeln;
  234.      writeln('Listado ordenado por linea aerea y destino:');
  235.      writeln;
  236.      mostrar(vector_vuelos_amsterdam,lim2);
  237.      
  238.      writeln;
  239.      buscado:='AA900';
  240.      busqueda_binaria(vector,lim,buscado,posicion);
  241.      writeln('Datos del vuelo AA900: ');
  242.      mostrar_vuelo_AA900(vector,lim,posicion);
  243.      
  244.      
  245.      writeln;
  246.      write('Ingrese el precio actual del combustible en España en pesos: $');
  247.      readln(precio_combustible_espania);
  248.      actualizar_pasajes_iberia(vector,lim,precio_combustible_espania);
  249.      writeln('Lista actualizada de pasajes con destino a Iberia: ' );
  250.      mostrar_lapi(vector,lim);
  251.      
  252.      
  253. readkey;
  254. end.
RAW Paste Data
Top