Pascal
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Pascal</language>
===An welchem Datum war Ostern in den vergangenen Jahren?===
<code id="4bc33121aaf3d" rows="30" hidden>
var year: integer;
function EasterSunday(year: Integer): String;
var
a,b,c,d,f,g : Real;
e: Integer;
begin
if year < 100 then year := year + 1900;
a := year mod 19;
b := year mod 4;
c := year mod 7;
f := 19*a + 24;
d := f - (trunc(f/30) * 30);
g := (5 + 2*b + 4*c + 6*d);
e := Trunc((g - (trunc(g/7) * 7)) + d + 22);
if e <= 31 then
Result := IntToStr(e) + '.' + '03.' + IntToStr(year)
else
begin
if e - 31 >= 26 then e:=19 else e:= e - 31;
Result := IntToStr(e) + '.' + '04.' + IntToStr(year)
end;
end;
</code>
<run id="4bc33121abedd" rows="10" rrows="10">
begin
year := random(1000)+1900;
writeln('In year '+intToStr(year)+' was eastern sunday on '+EasterSunday(year));
end.
</run>
<check>
result := (EasterSunday(1939) = '9.04.1939') AND (EasterSunday(1974) = '14.04.1974');
</check>
===Fibonacci-Berechnung===
<code id="4bc33121ab70f">
function fib(n: integer): integer;
var tmp: integer;
begin
if n=1 then result := 1
else if n=2 then result := 1
else begin
tmp := fib(n-1);
result := tmp + fib(n-2);
end;
end;
</code>
<check>
result := (fib(5) = 5) AND (fib(8) = 21);
</check>
<run id="4bc33121ac6ae">
begin
writeln(intToStr(fib(8)));
end.
</run>