#include 
#include 
#include 
#include 
#include 

using namespace std;

// Headers
string toString (double);
int toInt (string);
double toDouble (string);

int main() {

    // Bei den Jahreszahlen handelt es sich um ganzzahlige Zahlen. Zum Speicher der Jahreszahl wird die Variable jahr deklariert.
    int jahr;
    
    // Hierbei geht es darum zu entscheiden, ob das Jahr ein Schaltjahr ist oder nicht, daher wird für das Ergebnis eine boolesche Variable verwendet, da diese nur die Werte richtig oder falsch besitzt. Im Folgenden wird daher die boolesche Variable schaltjahr deklariert.
    bool schaltjahr;
    
    cout << "Geben Sie die Jahreszahl an:" << endl;
    cin >> jahr;
    
    // Im ersten Schritt wird geprüft, ob die Jahreszahl größer gleich 0 ist.
    if (jahr <= 0) {
        cout << "Bitte geben Sie nur eine Jahreszahl größer 0 an." << endl;
    } else {
        
        // Um zu bestimmen, ob ein Jahr ein Schaltjahr ist, gibt es folgende Möglichkeiten.
        // Ein Jahr ist ein Schaltjahr, wenn die Jahreszahl durch 4 teilbar, aber nicht durch 100 teilbar ist. Ein Jahr ist auch ein Schaltjahr, wenn die Jahreszahl durch 400 teilbar ist. Das lässt formal so schreiben:
        // Wenn die Jahreszahl durch 4 teilbar ist UND nicht durch 100 ODER wenn die Jahreszahl durch 400 teilbar ist.
        // 
        // Vereinfacht formuliert, von den Jahrhundert Jahreszahlen abgesehen (nicht teilbar durch 100), ist jedes vierte Jahr (Teilbarkeit durch vier) ein Schaltjahr. Und bei den Jahrhunderten Jahreszahlen ist nur jedes vierte (Teilbarkeit durch 400) ein Schaltjahr.
        // 
        // Zum Beispiel war das Jahr 1900 kein Schaltjahr, 2000 hingegen war ein Schaltjahr.
        // In der nachfolgenden Fallunterscheidung wird die Teilbarkeit mithilfe der Modulo Funktion geprüft. Um eine spätere Verwendung, zum Beispiel als Rückgabewert zu ermöglichen, wird das Ergebnis der Fallunterscheidung in der Variable schaltjahr gespeichert.
        if (jahr % 4 == 0 && jahr % 100 != 0 || jahr % 400 == 0) {
            schaltjahr = true;
            cout << "Das angebene Jahr ist ein Schaltjahr." << endl;
        } else {
            schaltjahr = false;
            cout << "Das angebene Jahr ist kein Schaltjahr." << endl;
        }
    }
    return 0;
}

// Im Folgenden werden Funktionen zur Typumwandlung implementiert.
string toString (double value) { //int auch
    stringstream temp;
    temp << value;
    return temp.str();
}

int toInt (string text) {
    return atoi(text.c_str());
}

double toDouble (string text) {
    return atof(text.c_str());
}
        
        
akzeptieren ablehen

Diese Website verwendet Cookies und Zählpixel, um Ihnen die bestmögliche Nutzung dieser Website zu ermöglichen.Learn more about cookies sehen Sie auch Datenschutz