| abcdd a întrebat:

Cum sa calculez virsta unei persoane in ani, luni si zile in limbajul de programare PASCAL? Funda pentru raspunsul corect.

Răspuns Câştigător
| AlexC a răspuns:

Pur si simplu nu inteleg intrebarea. Ce date ai de intrare si ce date de iesire vrei? Daca te referi sa transformi zilele in ani, luni, zile e simplu:
Imparti numarul de zile la o constanta (366 zile) iar restul il imparti la alta constanta(30 zile)
Sa zicem: x-numarul de zile
Program data;
Var X:loonglint;
a, b, c:byte;
Begin
write('introduceti numarul de zile');
read(x);
a:=x div 366;
b:=(x mod 366) div 30;
c:= (x mod 366) mod 30;
Write('aveti',x,'ani,', b,'luni si', c,'zile');
END.

1 răspuns:
| AlexC a răspuns:

Program pascal
begin
const: ianuarie=31;
februarie=28;
martie= 31;
aprilie=30;
mai=31;
iunie=30;
iulie=31;
august=31;
septembrie=30;
octombrie=31;
noimbrie=30;
decembrie=31;
Var luna1, luna2, luna, X, z1,, a1, z2, a2, a, z,, a : byte;
l1, l2, l, : string;

Begin
Wirteln ('introduceti ziua nasterii);
read (z1);

Writeln ('introduceti luna nasterii, denumirea');
read (luna1);
write ('intoduceti luna nasterii, cifra');
read(l1);
writeln ('introduceti anul nasterii');
read (a1);
writeln ('introduceti ziua curenta',);
read (z2);

writeln('introduceti luna curenta, denumirea');
read(luna2);
writeln('introduceti luna curenta, cifra')
read(l2)
writeln('introduceti anul curent');
read(a2);

if l2>l1 then begin Do
a:=a2-a1-1;
luna:=luna2-luna1+12;
else a:=a2-a1;
luna:=luna2-lluna1;

if z2>z1 then Do begin
x:=l2;
luna:=luna-1;
z:=z2-z1+x;
else z:=z2-z1;

END.