AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Osterformel nach Computus ecclesiasticus
Thema durchsuchen
Ansicht
Themen-Optionen

Osterformel nach Computus ecclesiasticus

Ein Thema von Wolfgang Mix · begonnen am 9. Mär 2010 · letzter Beitrag vom 11. Mär 2010
 
Benutzerbild von Wolfgang Mix
Wolfgang Mix

Registriert seit: 13. Mai 2009
Ort: Lübeck
1.222 Beiträge
 
Delphi 2005 Personal
 
#1

Osterformel nach Computus ecclesiasticus

  Alt 9. Mär 2010, 19:40
Osterformel nach Computus ecclesiasticus

Heute stelle ich einen Algorithmus vor, der schon fast in Vergessenheit
geraten ist. Wie wir alle wissen, hat sich Gauss 1800 mit seinem Osteralgorithmus
verewigt, der heute immer noch in julianischen und gregorianischen
Kalendern Anwendung findet. Der ist hier in der DP mehrfach zu finden.
In den Jahren davor war es hohen Priestern vorbehalten, sich mit
Algorithmen zum Kalender zu beschäftigen. Aus diesen Zeiten stammt der
Computus ecclesiasticus zur Bestimmung des Ostersonntags eines Jahres,
namentlich auf Aloysius Lillius und dem Jesuiten Christopher Clavius
zurückzuführen. Die Quellen zu dem Pseudocode sind im Internet sehr rar.
Ich habe diesen Pseudocode bei Helmut Herold gefunden:
Die Programmiersprache C, Teil 2 S.266 (im Anhang)

Der Pseudocode liefert Daten für Ostersonntage im gregorianischen
Kalender.

Einige werden wieder fragen: Was soll das?

Ich meine:

- Delphi liefert, zumindest bis zur Version 7 keine Unterstüzung

- Der Code ist wieder plattformunabhängig und lässt sich einfach
in jede Programmiersprache portieren

- Wieder ein hervorragendes Beispiel, um Pseudocode in Code umzusetzen
(vor allem für Anfänger ein riesengrosses Problem)

- Interesse zu wecken, den Code zu verstehen
(erfordert viel Recherche-Arbeit)

- Ergebnisse mit dem Gauss-Algorithmus vergleichen

- Der Pseudo-Code hat historische Bedeutung


Nach Delphi umgesetzter Code (Vorschlag):

Delphi-Quellcode:
implementation

{$R *.dfm}

//Osterformel mit computus ecclesiaticus
function computus(y:integer):TDate;
var C,G,X,Z,D,E,N,T,M:integer;
    mydate:TDate;
begin
  G:=(Y mod 19) +1;
  C:= Y div 100 +1;
  X:= 3*C div 4 - 12;
  Z:= (8*C+5) div 25 - 5;
  D:= (5*Y) div 4 - X - 10;
  E:= (11*G + 20 +Z-X) mod 30;
  if (E=25) and (G>11) or (E=24) then inc(E);
  N:=44-E;
  if n<21 then inc (N,30);
  N:=N+7- (D+N) mod 7;
  if (N>31) then
  begin
    T:= n-31; //(n-31).April
    M:=4;
  end
  else
  begin
    T := N;//n.März
    M:=3;
  end;
  {------Soweit der Originalcode----------}
  mydate:=EncodeDate(Y,M,T);
  result:=mydate;
end;

procedure TForm1.Button1Click(Sender: TObject);
var Y:integer;
begin
  Y:=StrToInt(Spinedit1.Text);
  Edit1.Text:=DateToStr(computus(Y));
end;

end.
Gruss

Wolfgang
Angehängte Grafiken
Dateityp: jpg computus_115.jpg (22,3 KB, 31x aufgerufen)
Wolfgang Mix
if you can't explain it simply you don't understand it well enough - A. Einstein
Mein Baby:http://www.epubli.de/shop/buch/Grund...41818516/52824
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz