• Lenguaje

    Pascal

  • Descripción

    Un banco desea tener una herramienta informática para determinar si una persona puede lograr un préstamo. Para esto se han definido las siguientes condiciones de evaluación:
    1. La historia crediticia del solicitante debe ser buena. Si es mala, el préstamo es rechazado inmediatamente.
    2. Si la historia crediticia es buena debe, se debe sumar al menos 5 puntos usando la siguiente tabla:
    - 3 puntos si el salario es el 40% o más del préstamos solicitado.
    - 2 puntos si el salario es mayor o igual al 20% pero menor que el 40% del prestamo solicitado.
    - 1 punto si el salario es mayor o igual al 1% pero menor que el 20% del prestamo solicitado.
    - 5 puntos si el solicitante tiene alguna propiedad.
    - 3 puntos si el solicitante tiene un contrato a término definido.

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

var historia_crediticia, tiene_contrato_a_termino_definido : integer;
var numero_de_propiedades, prestamos_solicitado, puntos, salario : real;
begin
    write ('Ingresa el valor de numero de propiedades: ');
    readln (numero_de_propiedades);
    write ('Ingresa el valor de prestamos solicitado: ');
    readln (prestamos_solicitado);
    write ('Ingresa el valor de salario: ');
    readln (salario);
    writeln ('Selecciona el valor de historia crediticia.');
    writeln ('    1.- Buena');
    writeln ('    2.- Mala');
    write ('    : ');
    repeat
        readln (historia_crediticia);
        if (historia_crediticia<1) or (historia_crediticia>2) then
            write ('Valor incorrecto. Ingr'#130'salo nuevamente.: ');
    until (historia_crediticia>=1) and (historia_crediticia<=2);
    writeln ('Selecciona el valor de tiene contrato a termino definido.');
    writeln ('    1.- Si');
    writeln ('    2.- No');
    write ('    : ');
    repeat
        readln (tiene_contrato_a_termino_definido);
        if (tiene_contrato_a_termino_definido<1) or (tiene_contrato_a_termino_definido>2) then
            write ('Valor incorrecto. Ingr'#130'salo nuevamente.: ');
    until (tiene_contrato_a_termino_definido>=1) and (tiene_contrato_a_termino_definido<=2);
    puntos := 0;
    if salario>=prestamos_solicitado*0.4 then
        begin
            puntos := puntos+3;
        end;
    if (salario>=prestamos_solicitado*0.20) and (salario<prestamos_solicitado*0.4) then
        begin
            puntos := puntos+2;
        end;
    if (salario>=prestamos_solicitado*0.01) and (salario<prestamos_solicitado*0.2) then
        begin
            puntos := puntos+1;
        end;
    if numero_de_propiedades>0 then
        begin
            puntos := puntos+5;
        end;
    if tiene_contrato_a_termino_definido=1 then
        begin
            puntos := puntos+3;
        end;
    if (historia_crediticia=1) and (puntos>=5) then
        begin
            writeln ('Pr'#130'stamo aprobado.');
        end
    else
        begin
            writeln ('Pr'#130'stamo rechazado.');
        end;
    writeln ('Valor de puntos: ', puntos:0:6);
    writeln;
    write ('Presiona una tecla para terminar . . . ');
    readkey;
end.