• Lenguaje

    Pascal

  • Descripción

    Una compañía de seguros para autos ofrece 2 tipos de póliza: cobertura amplia (A) y daños a terceros (B).
    Para el plan A, la cuota base es de $1,200.
    Para el plan B, la cuota base es de $950.
    A ambos planes se les carga 10% del costo si el conductor tiene el hábito de beber alcohol, 5% si utiliza lentes, 5% si padece alguna enfermedad como deficiencia cardiaca o diabetes, además si tiene más de 40 años se le carga 20%, de lo contrario sólo 10%.
    Todos estos cargos se realizan sobre el costo base.
    Determine el costo de la póliza de seguro.

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
program SeguroPorCoberturaAmpliaYDanosATerceros;
uses crt;

var padece_enfermedad, tipo_de_poliza, toma_alcohol, utiliza_lentes : integer;
var cargos, costo_de_la_poliza, cuota, edad : real;
begin
    write ('Ingresa el valor de edad: ');
    readln (edad);
    writeln ('Selecciona el valor de tipo de poliza.');
    writeln ('    1.- A cobertura amplia');
    writeln ('    2.- B da'#164'os a terceros');
    write ('    : ');
    repeat
        readln (tipo_de_poliza);
        if (tipo_de_poliza<1) or (tipo_de_poliza>2) then
            write ('Valor incorrecto. Ingr'#130'salo nuevamente.: ');
    until (tipo_de_poliza>=1) and (tipo_de_poliza<=2);
    writeln ('Selecciona el valor de toma alcohol.');
    writeln ('    1.- si');
    writeln ('    2.- no');
    write ('    : ');
    repeat
        readln (toma_alcohol);
        if (toma_alcohol<1) or (toma_alcohol>2) then
            write ('Valor incorrecto. Ingr'#130'salo nuevamente.: ');
    until (toma_alcohol>=1) and (toma_alcohol<=2);
    writeln ('Selecciona el valor de utiliza lentes.');
    writeln ('    1.- si');
    writeln ('    2.- no');
    write ('    : ');
    repeat
        readln (utiliza_lentes);
        if (utiliza_lentes<1) or (utiliza_lentes>2) then
            write ('Valor incorrecto. Ingr'#130'salo nuevamente.: ');
    until (utiliza_lentes>=1) and (utiliza_lentes<=2);
    writeln ('Selecciona el valor de padece enfermedad.');
    writeln ('    1.- si');
    writeln ('    2.- no');
    write ('    : ');
    repeat
        readln (padece_enfermedad);
        if (padece_enfermedad<1) or (padece_enfermedad>2) then
            write ('Valor incorrecto. Ingr'#130'salo nuevamente.: ');
    until (padece_enfermedad>=1) and (padece_enfermedad<=2);
    if tipo_de_poliza=1 then
        begin
            cuota := 1200;
        end
    else
        begin
            cuota := 950;
        end;
    cargos := 0;
    if toma_alcohol=1 then
        begin
            cargos := cargos+cuota*0.1;
        end;
    if utiliza_lentes=1 then
        begin
            cargos := cargos+cuota*0.05;
        end;
    if padece_enfermedad=1 then
        begin
            cargos := cargos+cuota*0.05;
        end;
    if edad>40 then
        begin
            cargos := cargos+cuota*0.2;
        end
    else
        begin
            cargos := cargos+cuota*0.1;
        end;
    costo_de_la_poliza := cuota+cargos;
    writeln ('Valor de cargos: ', cargos:0:6);
    writeln ('Valor de costo de la poliza: ', costo_de_la_poliza:0:6);
    writeln ('Valor de cuota: ', cuota:0:6);
    writeln;
    write ('Presiona una tecla para terminar . . . ');
    readkey;
end.