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>

<eval id="4bc33121abedd" rows="10" rrows="10">
begin
  year := random(1000)+1900;
  writeln('In year '+intToStr(year)+' was eastern sunday on '+EasterSunday(year));
end.
</eval>

<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>

<eval id="4bc33121ac6ae">
begin
  writeln(intToStr(fib(8)));
end.
</eval>

<check>
result := (EasterSunday(1939) = '9.04.1939') AND (EasterSunday(1974) = '14.04.1974');
</check>

<code id="4d23aa2a3e3e2">
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>

<eval id="4d23aa2a3e463">
begin
  writeln(intToStr(fib(8)));
end.
</eval>