• Lenguaje

    Pascal

  • Descripción

    Dado por teclado el día, mes y año de nacimiento de una persona, determinar cuántos años tiene, días y meses.

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

var ano_actual, ano_nacimiento, anos, dia_actual, dia_nacimiento : integer;
var dias, dias_del_mes, mes_actual, mes_nacimiento, meses : integer;
begin
    write ('Ingresa el valor de ano actual: ');
    readln (ano_actual);
    write ('Ingresa el valor de ano nacimiento: ');
    readln (ano_nacimiento);
    write ('Ingresa el valor de dia actual: ');
    readln (dia_actual);
    write ('Ingresa el valor de dia nacimiento: ');
    readln (dia_nacimiento);
    dias_del_mes := 0;
    writeln ('Selecciona el valor de mes actual.');
    writeln ('    1.- Enero');
    writeln ('    2.- Febrero');
    writeln ('    3.- Marzo');
    writeln ('    4.- Abril');
    writeln ('    5.- Mayo');
    writeln ('    6.- Junio');
    writeln ('    7.- Julio');
    writeln ('    8.- Agosto');
    writeln ('    9.- Septiembre');
    writeln ('    10.- Octubre');
    writeln ('    11.- Noviembre');
    writeln ('    12.- Diciembre');
    write ('    : ');
    repeat
        readln (mes_actual);
        if (mes_actual<1) or (mes_actual>12) then
            write ('Valor incorrecto. Ingr'#130'salo nuevamente.: ');
    until (mes_actual>=1) and (mes_actual<=12);
    writeln ('Selecciona el valor de mes nacimiento.');
    writeln ('    1.- Enero');
    writeln ('    2.- Febrero');
    writeln ('    3.- Marzo');
    writeln ('    4.- Abril');
    writeln ('    5.- Mayo');
    writeln ('    6.- Junio');
    writeln ('    7.- Julio');
    writeln ('    8.- Agosto');
    writeln ('    9.- Septiembre');
    writeln ('    10.- Octubre');
    writeln ('    11.- Noviembre');
    writeln ('    12.- Diciembre');
    write ('    : ');
    repeat
        readln (mes_nacimiento);
        if (mes_nacimiento<1) or (mes_nacimiento>12) then
            write ('Valor incorrecto. Ingr'#130'salo nuevamente.: ');
    until (mes_nacimiento>=1) and (mes_nacimiento<=12);
    if (mes_actual=1) or (mes_actual=3) or (mes_actual=5) or (mes_actual=7) or (mes_actual=8) or (mes_actual=10) or (mes_actual=12) then
        begin
            dias_del_mes := 31;
        end;
    if mes_actual=2 then
        begin
            dias_del_mes := 28;
        end;
    if (mes_actual=4) or (mes_actual=6) or (mes_actual=9) or (mes_actual=11) then
        begin
            dias_del_mes := 30;
        end;
    anos := ano_actual-ano_nacimiento;
    meses := mes_actual-mes_nacimiento;
    dias := dia_actual-dia_nacimiento;
    if dias<0 then
        begin
            dias := dias+dias_del_mes;
            meses := meses-1;
        end;
    if meses<0 then
        begin
            meses := meses+12;
            anos := anos-1;
        end;
    writeln ('Valor de anos: ', anos);
    writeln ('Valor de dias: ', dias);
    writeln ('Valor de dias del mes: ', dias_del_mes);
    writeln ('Valor de meses: ', meses);
    writeln;
    write ('Presiona una tecla para terminar . . . ');
    readkey;
end.