Pascal/Turbo Pascal - Programa de viaje

 
Vista:

Programa de viaje

Publicado por Mauro (2 intervenciones) el 22/05/2013 00:13:47
hola amigos me pueden ayudar con este problema para pascal?

ViajaSiempre S.A. es una agencia de viajes que brinda servicios tanto nacionales como internacionales.
Requiere una aplicación que calcule el monto total que recibe la empresa en concepto de viajes para
las próximas vacaciones, para las que ofrece los siguientes paquetes turísticos para grupos de familia o
amigos:


Paquete costo por persona



10. Puerto Iguazú $250

11. Las Leñas $1000

12. Miami-Orlando u$s1700

13. Caribe All Inclusive u$s1500



El operador del sistema ingresará los siguientes datos para la facturación de los viajes: Número de
ticket, código de paquete, cantidad de personas, código de forma de pago (01-Efectivo, 02- Tarjeta de
Débito, 03-Tarjeta de Crédito).

Si se abona con efectivo o con tarjeta de débito, la empresa realiza un 10% de descuento, además
considera el valor del dólar oficial (u$s 5,20). Si se abona con tarjeta de crédito, la agencia toma el
valor del dólar blue o paralelo (u$s 9,50).

Además, se precisa detectar la cantidad de turistas que eligieron un destino en el extranjero y el
porcentaje que representan sobre todos los turistas que adquirieron algún paquete.

El fin de datos está dado con Número de ticket = 0

a) Indicar las entradas requeridas, el proceso y la salida resultante (análisis del problema).
b) Representar la solución del problema en pseudocódigo.
c) Escribir un programa en Pascal que implemente el algoritmo desarrollado en el punto b).
d) Realizar luego la comprobación del programa creando un lote de datos que contemple todas las
posibles alternativas del problema en cuestión.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Programa de viaje

Publicado por ramon (2158 intervenciones) el 24/05/2013 13:53:39
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
{A ver si esto ayuda}
 
 program viajes;
  uses
     crt;
  const
     codigospago : array[1..3] of string[2] = ('01','02','03');
     num = 100;
     descu = 10;
     dola1 = 5.20;
     dola2 = 9.50;
     codipaq : array[10..13] of string[20] = (
     'Puerto Iguazu','Las Le¤as','Miami-Orlando','Caribe All Inclusive');
     precio : array[10..13] of integer = (
     250,1000,1700,1500);
 
  type
     ficha = record
        Numticket : integer;
        codpaquete : integer;
        cantpersonas : integer;
        codipago : string[2];
        lugar : string[20];
        costo : real;
      end;
      string2 = string[2];
 
   var
     turistas : array[1..num] of ficha;
     cont : integer;
 
    function descuento(pag : string2; np : integer) : real;
    begin
        if (pag = '01') or (pag = '02') then
        descuento := (turistas[np].codpaquete * descu / 100)
      else
        descuento := 0;
    end;
 
    procedure entradadatos;
    var
       p, numt : integer;
    begin
        while numt > 0 do
        begin
        clrscr;
        writeln;
        writeln('   Entrada Fichas [0]=Finaliza');
        write('   Num. Ticket           : ');
        readln(numt);
        if numt > 0 then
        begin
        turistas[cont].Numticket := numt;
        write('   Codigo Paquete[10/11/12/13] : ');
        readln(p);
        if p > 13 then
        p := 13;
        if p < 10 then
        p := 10;
        turistas[cont].codpaquete := precio[p];
        turistas[cont].lugar := codipaq[p];
        write('   Num. Personas         : ');
        readln(turistas[cont].cantpersonas);
        write('   Codigo Pago[1/2/3]    : ');
        readln(p);
        if p <= 0 then
        p := 1;
        if p > 3 then
        p := 3;
        turistas[cont].codipago := codigospago[p];
        turistas[cont].costo := (turistas[cont].codpaquete -
      descuento(turistas[cont].codipago,cont)) * turistas[cont].cantpersonas;
        cont := cont + 1;
        if cont > 100 then
        cont := 100;
        end;
      end;
    end;
 
   procedure cuentaestrangero;
   var
     tt : integer;
     pais, ext : integer;
     procen : real;
     tr : char;
   begin
      pais := 0;
      ext := 0;
      for tt := 1 to cont - 1 do
      begin
         if (turistas[tt].codpaquete = 250) or
                    (turistas[tt].codpaquete = 1000) then
         begin
           pais := pais + 1;
         end
      else
         begin
            ext := ext + 1;
         end;
      end;
        procen := ((cont - 1) / ext) * 100;
        writeln(' Turistas Que Fueron Al Extranjero');
        writeln(' Son : ',ext);
        writeln(' Viajes Concertados : ',cont - 1);
        writeln(' Representan el Tanto Por % ',procen:0:2);
        writeln;
        writeln('  Pulse Tecla [Espacio]');
        repeat
            tr := readkey;
        until tr = #32;
   end;
 
 
 
 
 
   begin
       cont := 1;
       entradadatos;
       clrscr;
       cuentaestrangero;
   end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Programa de viaje

Publicado por Mauro (2 intervenciones) el 25/05/2013 21:55:06
gracias por responder y por ayudarme

cuando compilo me dice

"exitcode = 207" y no me deja hacer nada mas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Programa de viaje

Publicado por ramon (2158 intervenciones) el 28/05/2013 12:47:06
1
2
3
4
5
6
{Mira el error que te marca es que tienes que iniciarla variable  de
  procedure entradadatos;
    var
       p, numt : integer;
    begin
          numt := 1;


con esto arreglado el error suerte;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar