Funktion richtig integrieren + Probleme mit ARRAYs



  • Servus! Ich hab montag meine Informatikprüfung für mein Studium und hab grad ein mehr oder weniger großes Problem. Ich komme mit dem integrieren einer Funktion nicht klar. die Funktion soll

    int istSchaltjahr (int jahr)

    heißen und in ein kleines Hauptprogramm eingebunden werden. Meine Frage ist nur wie ich das auch korrekt anstelle? Die Funktion selber läuft, denn wenn ich sie komplett in int main() schreibe funktioniert sie ohne Probleme. Wär euch echt dankbar für ne Lösung... ihr habt das sicher besser drauf als ich 😕

    habe noch ein Problem, welches wir auch in einer Gruppe nicht lösen konnten:

    Pascalsches Dreieck...
    ² Die Anzahl der Elemente von Zeile n ist n+1.
    ² Die erste und die letzte Zahl jeder Zeile ist stets 1.
    ² Das i-te Element der Zeile n entspricht der Summe des i-ten und des (i-1)-ten Elements der Zeile (n-1).
    Beispiel: Pascalsches Dreieck mit 5 Zeilen:

    a) Schreiben Sie eine nicht-rekursive C++-Funktion mit dem Namen pascalDreieck, die
    die ersten n Zeilen des Pascalschen Dreieck für ein vorzugebendes n in einem zweidimensionalen
    Feld der Größe 20 x 20 ablegt.

    b) Demonstrieren Sie die Verwendung der Funktion in einem kleinen Hauptprogramm. Dabei
    soll nach einer Bildschirmabfrage die Zeile n von der Tastatur eingelesen werden bis zu
    der das Pascal’sche Dreieck ausgewertet wird. Die Bildschirmausgabe soll folgendermaßen
    aussehen (Beispiel n = 4):
    Zeile 0: 1
    Zeile 1: 1 1
    Zeile 2: 1 2 1
    Zeile 3: 1 3 3 1
    Zeile 4: 1 4 6 4 1

    Hättet ihr hierzu vielleicht auch noch ne Lösung parat? 🙂



  • entweder:

    bool isschaltjahr (size_t jahreszahl)
    {
     return (jahreszahl%4); //sollte bis zum jahr 6000 oder so gehen, wenn ich das richtig in erinnerung habe, dann soll ja iwie nen schaltjahr ausfallen, weil wir jedes jahr 6 sekunden zu schnell sind oder so
    }
    
    int main ()
    {
    //...
    }
    

    oder:

    bool isschaltjahr (size_t jahreszahl);
    
    int main ()
    {
    //...
    }
    
    bool isschaltjahr (size_t jahreszahl)
    {
    //wenn die fkt länger ist...
    }
    

    oder:

    main.cpp

    #include "schaltjahr.hpp"
    
    int main ()
    {
    //...
    }
    

    schaltjahr.hpp

    #pragma once
    
    bool isschaltjahr (size_t);
    

    schaltjahr.cpp (zum projekt hinzufügen)

    #include "schaltjahr.hpp"
    
    /*inline*/ bool isschaltjahr (size_t jahr)
    {
    return (jahr%4);
    }
    

    musst du selbst wissen - aber ich würd bei so ner kurzen funktion vll eher die erste lösung nehmen...

    bb 🙂

    PS:
    Wär toll, wenn man iwann ma so was schreiben könnte:

    <code>
    

    so, wie beim quote halt auch...



  • habs hinbekommen! danke weiß zwar nicht wieso es jetzt funktioniert aber es funktioniert 😃 ich würde es sp schreiben wenn ich es 1. könnte und 2. net so ne null wär 😉



  • Tip:

    Die Frage ob ein Jahr ein Schaltjahr ist, ist noch etwas komplizierter. Es gibt da noch spezielle Regeln führ Jahre die durch 100 teilbar sind und für Jahre die durch 400 teilbar sind. Ich könnte die Regeln hier mal aufschreiben - will aber ja keine Hausaufgaben lösen 😃 .

    Das sollte sich aber einfach finden lassen.



  • tunichtgut schrieb:

    Tip:

    Die Frage ob ein Jahr ein Schaltjahr ist, ist noch etwas komplizierter. Es gibt da noch spezielle Regeln führ Jahre die durch 100 teilbar sind und für Jahre die durch 400 teilbar sind. Ich könnte die Regeln hier mal aufschreiben - will aber ja keine Hausaufgaben lösen 😃

    So ne sinnlosen Antworten immer ><
    Jz musste ich au noch selbst nachgucken, um meine Allgemeinbildung nicht völlig zu vernachlässigen ^^

    bb



  • für faule:
    meine funktion dafür sieht so aus 😉

    bool LeapYear (int intYear ) {
    	if (intYear%4 != 0) {
    		return false;
    	} else {
    		if (intYear%100 != 0) {
    			return true;
    		} else {
    			if (intYear%400 == 0) {
    				return true;
    			} else {
    				return false;
    			}
    		}
    	}
    }
    

  • Administrator

    Für die gaaaaanz faulen:
    http://www.boost.org/doc/libs/1_35_0/doc/html/date_time/gregorian.html#date_time.gregorian.gregorian_calendar

    boost::gregorian::gregorian_calendar::is_leap_year(2000);
    

    Wollte es nur hinzufgefügt haben, falls jemand drüber stolpert und ein gutes Zeit/Datum System braucht 😉

    Grüssli



  • Mehr war in der Aufgabe nicht verlangt also interessieren mich die zusätzlichen Kriterien , ob Schaltjahr oder nicht, nicht wirklich 😉 Danke für eure Hilfe


Anmelden zum Antworten