Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Osterformel nach Carl Friedrich Gauß
Jezzy
myCSharp.de - Member



Dabei seit:
Beiträge: 2

Themenstarter:

Osterformel nach Carl Friedrich Gauß

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
Coffeebean
myCSharp.de - Team

Avatar #avatar-3295.gif


Dabei seit:
Beiträge: 2461
Herkunft: Deutschland/Schweiz

beantworten | zitieren | melden

Ich denke das findest du mit dem Debugger schnell raus.

[Artikel] Debugger: Wie verwende ich den von Visual Studio?
private Nachricht | Beiträge des Benutzers
Cat
myCSharp.de - Member

Avatar #avatar-3070.jpg


Dabei seit:
Beiträge: 790

beantworten | zitieren | melden

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
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Cat am .
private Nachricht | Beiträge des Benutzers
Coffeebean
myCSharp.de - Team

Avatar #avatar-3295.gif


Dabei seit:
Beiträge: 2461
Herkunft: Deutschland/Schweiz

beantworten | zitieren | melden

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

Naja, die Berechnung sind "simple" Formeln. Die Frage
Zitat
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
private Nachricht | Beiträge des Benutzers
Jezzy
myCSharp.de - Member



Dabei seit:
Beiträge: 2

Themenstarter:

beantworten | zitieren | melden

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!

Moderationshinweis von Coffeebean (22.06.2015 - 14:51:57):

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

private Nachricht | Beiträge des Benutzers