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
Antwort Antwort
Seite 1 von 3  1 23      
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
Miniaturansicht angehängter Grafiken
computus_115.jpg  
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
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Osterformel nach Computus ecclesiasticus

  Alt 9. Mär 2010, 19:46
[OT] Du hast einen Knall mit Deinen Kalenderfunktionen. (SCNR^^)[/OT]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

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

Re: Osterformel nach Computus ecclesiasticus

  Alt 9. Mär 2010, 19:54
Naja, ich forsche halt seit längerer Zeit
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
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#4

Re: Osterformel nach Computus ecclesiasticus

  Alt 9. Mär 2010, 20:24
Hallo,

ich glaube wir hatten das schonmal in einem anderen Thread von dir, aber ich möchte trotzdem meine Meinung dazu sagen. Ich finde, man sollte der Funktion noch aussagekräftige Variablennamen verpassen. Auch die Formatierung ist nicht gerade schön, auch wenn da jeder seinen eigenen Stil hat. Das Beispiel im Form des ButtonClick-Events sollte man meiner Meinung nach auch entfernen.

Ansonsten kann auch sowas in die CL, wenn es nach mir ginge. Natürlich gehört der Algorithmus zu jenen, die kaum jemand brauchen wird, aber ich wäre trotzdem um jeden halbwegs ordentlichen Beitrag froh. =)
Liebe Grüße,
Valentin
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

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

Re: Osterformel nach Computus ecclesiasticus

  Alt 9. Mär 2010, 20:46
@Valle:

- Den Thread hatten wir noch nicht
- Über die Formatierung kann man diskutieren
- Den Button1Click kann man natürlich entfernen,
war als Hilfe für Anfänger gedacht
- Die Variablennamen habe ich bewusst aus dem Original
übernommen, Interessierte sollen schon selbst forschen,
was sie bedeuten (alles vorkauen bringt nichts)
- Dass den Code keiner braucht, ist auch klar

Was du unter einem halbwegs ordentlichen Beitrag verstehst,
ist mir unklar

LG

Wolfgang
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
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Osterformel nach Computus ecclesiasticus

  Alt 9. Mär 2010, 20:49
Zitat von Wolfgang Mix:
- Die Variablennamen habe ich bewusst aus dem Original
übernommen, Interessierte sollen schon selbst forschen,
was sie bedeuten (alles vorkauen bringt nichts)
Das ist aber nicht Sinn und Zweck der Codelib, dass man sich erst extrene Quellen zum Verständnis des Codes suchen muss. Und was mache ich, wenn ich eine andere als deine Quelle mit anderen Variablennamen finde? Was spricht dagegen, den Code durch aussagekräftige Variablenname lesbar, verständlich und nachvollziehbar zu machen?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Osterformel nach Computus ecclesiasticus

  Alt 9. Mär 2010, 20:52
Tja Wolfgang, die Algorithmen nach Delphi zu übersetzen kann im Prinzip jeder. Sie sauber aufzubereiten ist schon etwas aufwändiger.
Wenn du den Code verstanden hast, dann ändere bitte die Variablen. Aktuell finde ich den persönlich auch sehr unleserlich und die Code-Library soll ja eine gewisse Vorbildfunktion haben.
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#8

Re: Osterformel nach Computus ecclesiasticus

  Alt 9. Mär 2010, 20:53
Mh.

Also ich bin mir recht sicher, irgendwo mal jemanden deine Variablen-Namen kritisieren gesehen zu haben. Aber wenn du meinst das hat bisher keiner gemacht, dann glaube ich dir das - du wirst es besser wissen als ich.

Mit der Begründung "alles vorkauen bringt nichts" bin ich dann ehrlich gesagt aber nicht mehr einverstanden. Dein Code ist bereits vorgekaut. Jemanden der einfach nur vorran kommen will, braucht ihn nur noch zu kopieren. Für Leute die ihn wirklich verstehen wollen, sind deine Variablen nur noch ein Hindernis. Wenn du nicht vorkauen möchtest, dann bist du in der CL glaube ich falsch.

Zitat von Wolfgang Mix:
Was du unter einem halbwegs ordentlichen Beitrag verstehst, ist mir unklar
Es gab (diesmal bin ich mir sicher ) schon einige Leute, die meinten, deine CL-Beiträge wären sinnlos. Was ich damit sagen wollte ist, dass ich der Meinung bin, dass jeder CL-Eintrag willkommen ist, solange er halbwegs ordentlich ist. Also eine Funktion die Hello World ausgibt wollte ich damit ausschließen. Ansonsten finde ich den Beitrag doch super, ist doch schön dass sich Leute damit befassen.

Liebe Grüße,
Valle
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

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

Re: Osterformel nach Computus ecclesiasticus

  Alt 9. Mär 2010, 21:00
Tja Matze, dazu müsste man jetzt die mitteralterlichen Kirchenbücher studieren,
dann wäre man etwas schlauer.

Wenn jemand Lust hat ..., ich erst nach meiner Pension im Sommer
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
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: Osterformel nach Computus ecclesiasticus

  Alt 9. Mär 2010, 21:05
Wolfgang hat mit keinem Wort die Codelibrary erwähnt. Also muss er überhaupt nichts. Er hat 100%ig Recht, wenn er sagt: Schaut selbst nach, es macht Spass, zu recherchieren.

Nur leider ist der Beitrag dann in der falschen Sparte.

Wirklich Wolfgang. Du bist der Einzige, der tolle Beiträge und vergessene Algorithmen auskramt, aber dann zu beratungsresistent ist, den Rest noch beizusteuern. Das fing bei so einer Kalenderfunktion an, ging über diverse Beiträge, die ich vergessen konnte bis zu den quadratische Gleichungen (was war das für ein Heck-Meck) und nun wieder so ein mal wieder sehr interessanter Beitrag, der aber wieder an der Form scheitern wird und -denke ich- keinen Weg in die CL finden wird.

Wenn Dir ein Schüler mit einer Sauklaue und niedergepfuscht auf zerknülltem Papier stichpunktartig eine Hausarbeit abliefert... Wird so eine Arbeit dann prämiert, oder kommt in die Mappe: "Hausarbeiten: Exzellente Beispiele?" Und sag bloß nicht 'Ja', das glaubt man nämlich einem echten Lehrer nicht.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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