if ((Jahr % 4) == 0)

„Richtig. Ein Jahr ist dann ein Schaltjahr, wenn es durch vier ohne Rest teilbar ist. Notieren Sie bitte diese Regel in c. Wir wollen eine allgemeingültige function erstellen, die logisch wahr zurückliefert, wenn ein Jahr ein Schaltjahr ist. Schreiben Sie es an die Tafel.“

Missmut hat einen Namen
Ich verstehe den MIst nicht!

if ((Jahr % 4) == 0 )
return true;

„Was bedeutet das ‚%’?“

„Das ist der Modulo Operator in c. Der liefert den Rest einer Division. 2012 % 4 ergibt 0, 2011 % 4 ergibt 3.“

„Reicht unsere Regel, alles was durch vier ohne Rest teilbar ist, ist ein Schaltjahr?“

„War 1800 ein Schaltjahr? 1700?“

„Wir ergänzen also unsere Schaltjahrberechnung wie folgt: Wenn ein Jahr durch vier ohne Rest teilbar ist, dann ist das Jahr ein Schaltjahr, außer es ist durch 100 ohne Rest teilbar.“

„Sie sagen 2000 war ein Schaltjahr, obwohl es durch 100 ohne Rest teilbar ist?“

„Weil es durch 400 ohne Rest teilbar ist. Also lautet unsere Regel: Ist das Jahr durch 100 ohne Rest teilbar und durch 400 ohne Rest teilbar, dann haben wir ein Schaltjahr.“

„Bitte, was meinen Sie? Den Schrott mit ‚durch 100 und 400 teilen’ können wir uns sparen?“

„Ich wiederhole es nochmal, das alle es mitbekommen. Papst Gregor XIII. reformierte den julianischen Kalender. Diese Reform bewirkte, das Ostern immer zwischen dem 22. 3. und dem 24. 4. fällt. Ohne seine Kalenderreform wären mittlerweile Ostertermine im Februar möglich. Lesen Sie bitte dazu diese Basics.“

„Sie haben die function schon codiert? Darf ich mal sehen?“

istSchaltjahr(int Jahr)
{
if ((Jahr % 400) == 0 )
return true;
else if ((uahr % 100) == 0 )
return false;
else if ((Jahr % 4) == 0 )
return true;

return false;
}

„Der Code sieht gut aus: Wenn durch 400 teilbar, dann ist es ein Schaltjahr. Wenn nicht durch 400 teilbar, dann prüfen, ob es durch 100 teilbar ist. Ist es durch 100 teilbar, dann liegt kein Schaltjahr vor und false wird zurückgegeben. Ist das Jahr nicht durch 100 teilbar, dann liegt ein Schaltjahr vor, wenn es durch vier teilbar ist.

Schreiben Sie ein kleines Testprogramm, korrigieren Sie die Compilerfehler und testen dann mit den Zahlen 2013, 2008, 2100 und 2400.

In der nächsten Stunde werden wir den Schaltjahresalgorithmus implizit brauchen, wenn wir die Ostertermine berechnen. Ich danke Ihnen!“

Nach oben scrollen