Laden...

Osterformel nach Carl Friedrich Gauß

Erstellt von Jezzy vor 8 Jahren Letzter Beitrag vor 8 Jahren 5.431 Views
J
Jezzy Themenstarter:in
2 Beiträge seit 2015
vor 8 Jahren
Osterformel nach Carl Friedrich Gauß

Hallo Leute,

ich versuche gerade ein Programm zu schreiben(Osterformel nach Carl Friedrich Gauß) und benötige dringend Hilfe da ich nicht weiterkomme.

Das Programm soll berechnen, an welchem Tag Ostersonntag ist. Habe dazu folgenden Code:

using System;

public class osterformel {

public static void Main(string[] args) {

int zahl, k, m, s, r, og, os, a, d, sz, oe;

zahl = Int32.Parse(args[0]);

k = zahl / 100;

m = 15 + (3 * k + 3) / 4 - (8 * k + 13) / 25;

s = 2 - (3 * k + 3) / 4;

a = zahl % 19;

d = (19 * a + m % 30);

r = d / 29 + (d / 28 - d / 29) * a / 11;

og = 21 + d - r;

sz = 7 - (zahl + zahl / 4 + s % 7);

oe = 7 - (og - sz % 7);

os = og + oe;

Console.WriteLine("Ostersonntag im Jahr " + zahl + " war am {0}", os);

}

}

Leider wirft das Programm mir nicht die richtigen Ergebnisse aus. Z.B. wenn ich den Ostersonntag im Jahr 2001 wissen möchte berechnet mir das Programm den 4.April und richtig wäre der 15.April. Was ist falsch? Hat es was mit Mod zu tun, das Mod irgendwie falsch berechnet wird? Danke.

2.207 Beiträge seit 2011
vor 8 Jahren

Ich denke das findest du mit dem Debugger schnell raus.

[Artikel] Debugger: Wie verwende ich den von Visual Studio?

771 Beiträge seit 2009
vor 8 Jahren

Schau dir mal Gaußsche Osterformel: Eine ergänzte Osterformel an. Deine Formeln für d, sz und oe stimmen nicht (beachte die Klammern bzgl. mod).

@Coffeebean: mit dem Debugger alleine wird es schwer, wenn man nicht weiß, welche Formeln dahinter stehen bzw. welche Werte zu erwarten sind 🤔

2.207 Beiträge seit 2011
vor 8 Jahren

@Coffeebean: mit dem Debugger alleine wird es schwer, wenn man nicht weiß, welche Formeln dahinter stehen bzw. welche Werte zu erwarten sind 👶

Naja, die Berechnung sind "simple" Formeln. Die Frage

Hat es was mit Mod zu tun, das Mod irgendwie falsch berechnet wird? lässt sich mit dem Debugger wunderbar beantworten wenn man sich das Ergebnis anschaut und mit dem vergleicht, was man erwartet. Dass man sich den Mod anschaut bevor man ihn verwendet setzen wir aufgrund der Eigeninitiative voraus.

Gruss

Coffeebean

J
Jezzy Themenstarter:in
2 Beiträge seit 2015
vor 8 Jahren

Toll nun hat es geklappt. Klammern waren wie gesagt wurde falsch gesetzt. Der richtige Code:

using System;

public class osterformel
{

    public static void Main(string[]args)
    {

        int zahl, k, m, s, r, og, os, a, d, sz, oe;

        zahl = Int32.Parse(args[0]);

        k = zahl / 100;

        m = 15 + (3 * k + 3) / 4 - (8 * k + 13) / 25;

        s = 2 - (3 * k + 3) / 4;

        a = zahl % 19;

        d = (19 * a + m) % 30;

        r = d / 29 + (d / 28 - d / 29) * a / 11;

        og = 21 + d - r;

        sz = 7 - (zahl + zahl / 4 + s) % 7;

        oe = 7 - (og - sz) % 7;

        os = og + oe;

        if (os > 31)
            Console.WriteLine("Ostersonntag im Jahr " + zahl + " war am {0} April. ", os - 31);
        else
            if (os <= 31)
                Console.WriteLine("Ostersonntag im Jahr " + zahl + " war am {0} März. ", os);

    }

}

Danke!

Hinweis von Coffeebean vor 8 Jahren

Bitte benutze Code Tags!
[Hinweis] Wie poste ich richtig? Punkt 6