This blog post has been published on 2010-10-22 and may be out of date.
ALGORITHMUS Schaltjahr
Beschreibung:
- das Programm soll testen, ob eine Folge von Jahren jeweills ein Schaltjahr ist
- wenn das Jahr größer 1582 ist
- wenn das Jahr durch 4, aber nicht durch 100 teilbar ist, handelt es sich um ein Schaltjahr
- ist das Jahr durch 400 teilbar, handelt es sich ebenfalls um ein Schaltjahr
Daten:
- Jahr (Startwert)
- Jahr (Endwert)
- Schrittweite
Kern-(Algorithmus):
Einlesen von "Startwert" + "Endwert" + "Schrittweite"
WENN "Startwert" < 1582 ODER "Startwert" >= "Endwert" ODER Schrittweite <= 0
DANN Fehler-Meldung
ANSONSTEN
FÜR "Startwert" BIS "Endwert"
WENN ("Startwert" / 4 ohne Rest UND "Startwert / 100 mit Rest) ODER ("Startwert" / 400 ohne Rest)
DANN Ausgabe: "Ja"
ANSONSTEN
Ausgabe: "Nein"
ENDE WENN
ENDE FÜR
ENDE WENN
C-Programm:
#include "stdio.h"
int main(void) {
int jahr_startwert,jahr_endwert,schrittweite;
printf("\n\tK a l e n d e r\n");
printf("\nBitte den Startwert (Jahrszahl) eingeben: ");
scanf("%d", &jahr_startwert);
printf("Bitte den Endwert (Jahreszahl) eingeben: ");
scanf("%d", &jahr_endwert);
printf("Bitte die Schrittweite (Jahre) eingeben: ");
scanf("%d", &schrittweite);
/* Beginn des gregorianischen Kalerndes - 1582*/
if (jahr_startwert < 1582 || jahr_startwert >= jahr_endwert || schrittweite <= 0) {
printf("\nFalsche Angabe!");
} else {
printf("\nJahr | Schaltjahr?");
printf("\n------------------");
for (jahr_startwert; jahr_startwert <= jahr_endwert; jahr_startwert=jahr_startwert+schrittweite) {
if ((jahr_startwert % 4 == 0) && (jahr_startwert % 100 != 0) || (jahr_startwert % 400 == 0)) {
printf("\n%d | Ja",jahr_startwert);
}
else {
printf("\n%d | Nein",jahr_startwert);
}
}
printf("\n\n");
}
return (0);
}