Seite 1 von 1

Schaltjahr Funktion

Verfasst: Sa Jan 14, 2012 9:03 pm
von namdlef
Hallo allerseits,

ich habe mich kürzlich hier angemeldet, weil ich wieder angefangen habe C++ zu programmieren. Und nun kam ich auf die Idee einfach mal eine Funktion nach einem Struktogramm zu entwerfen. Ich finde das gehört schließlich auch dazu. :)
Auf http://www.it-didaktik.de/ae/Kap4/A5B.htm fand ich dann die Wenn - Dann Entscheidung zur Berechnug von Schaltjahren und habe danach eine Funktion geschrieben.
Und nun möchte ich den Einen oder Anderen mal bitten und zu schauen, ob meine Funktion dem Struktogramm einigermaßen entspricht, ich hab wirklich nirgends abgeschrieben. Zum schnelleren Testen gebe ich euch auch die main Funktion mit. So ... hier mal das Programm:

Vielen Grüße und einen schönen Abend

Code: Alles auswählen

#include <iostream>
using namespace std;

bool teste_schaltjahr(int jahr)
{
    if((jahr % 4) != 0)
    {
        return false;
    }

    if( (jahr % 4 == 0) && (jahr % 100 != 0))
    {
        return true;
    }

    if( (jahr % 4 == 0) && (jahr % 100 == 0) && (jahr % 400 == 0))
    {
        return true;
    }

    return false;

}

int main()
{
    int j = 0;

    for(int i = 1800; i < 2400; i++)
    {
        if(teste_schaltjahr(i) == true)
        {
            j++;
            cout << i << "  ";
            if(j == 8)
            {
                cout << endl;
                j = 0;
            }
        }
    }

    return 0;
}

Re: Schaltjahr Funktion

Verfasst: Sa Jan 14, 2012 9:49 pm
von cloidnerux
Und nun möchte ich den Einen oder Anderen mal bitten und zu schauen, ob meine Funktion dem Struktogramm einigermaßen entsprich
Das tut es an einigen Ecken noch nicht und zwar weil:

Code: Alles auswählen

 if((jahr % 4) != 0)
    {
        return false;
    }

    if( (jahr % 4 == 0) && (jahr % 100 != 0))
    {
        return true;
    }
Du testest hier wiederholt ob sich das Jahr durch 4 Teilen lässt, wo doch die Funktion sich beenden würde wäre es nicht der Fall. Daher ist das (jahr % 4 == 0) absolut unnötig, sowie in den nachfolgenden Zeilen die Wiederholungen der Bedingungen.

Ansonsten macht es das, was das Struktogramm beschreibt.

Re: Schaltjahr Funktion

Verfasst: So Jan 15, 2012 11:35 am
von Xin
Für eine exakte Abbildung des Struktogramms müssten die Bedingungen verschachtelt sein.

Struktogramme sind eine Veranschaulichung für Programmkonstrukte, wie if und while. An der Stelle endet ihre Nützlichkeit auch schon. Ansonsten gibt es vermutlich mehr Quellcodes, um Struktogramme erklären, als es Struktogramme gibt, um Quellcode zu erklären. Anders formuliert... sie sind nett zu kennen, aber spielen bei der Programmierung keine Rolle.