Funktion



  • HAllo leute ich habe gerade probleme bei einer Aufgabe:

    Es ist eine Funktion double u(double t) für beliebige t vom Typ double zu
    programmieren, welche die Werte einer periodische „Sägezahnschwingung“ mit
    der Periode 1 berechnet für ein beliebiges t.
    Im Intervall [0,1) ist speziell u(t) = t .
    Verwenden Sie in u einen geeigneten Cast-Operator zur Umwandlung von double
    nach int und keine(!) Schleifen.
    Erstellen Sie ein dazu passendes Testprogramm, mit welchem man wiederholt den
    Wert von u für eingegebene Werte von t ausrechnen kann. Die Funktion u und das
    Testprogramm sollen in unterschiedlichen Quellcodedateien des Projekts
    gespeichert sein.

    Ich hab folgendes Programm erstellt:

    #include "andereDatei.cc"

    using namespace std;
    double u(double t)
    {
    int i = (int)t;
    return t-i;
    }

    #include<iostream>
    #include "andereDatei.cc"
    
    	using namespace std;
    
    	int main()
    	{
    	    while(true)
    	    {
    	        double somNum;
    	        cin >> somNum;
    	        cout << u(somNum) << endl;
    	    }
    	}
    

    Aber mir wird ein error gezeigt , dass es nicht diese andere datei derectory gibt.

    Könnt ihr mir sagen wie ich das korrigieren kann?


  • Mod

    Dann wird es diese andere Datei wohl nicht geben. Oder anderswo, als gesucht wird. Computer haben bei so etwas gewöhnlich Recht.

    Im übrigen ist es höchst verdächtig, wenn du eine Datei mit Endung .cc einbindest, das lässt nichts gutes ahnen. Lies dir in deinem Lehrbuch noch einmal durch, wie das mit mehreren Übersetzungseinheiten und Headern funktioniert.



  • Kannst du mir bitte sagen wie man das richtig macht.

    Ich hänge schon seit stunden fest.


  • Mod

    Moment mal. Diese Einstellung kenne ich doch! Du bist nicht nur aus dem Kurs von dem hier:
    http://www.c-plusplus.net/forum/311642
    Du bist der gleiche!

    Du wurdest bereits darauf verwiesen, warum dir keiner helfen möchte. Wenn du wieder anfängst, diesen Thread jede Stunde sinnlos zu pushen, anstatt die Ursachen abzustellen, dann setzt es beim nächsten Mal mehr als nur ein Schließen des Threads.



  • main.cpp

    #include<iostream> 
    #include "andereDatei.cpp" 
    
    using namespace std; 
    
    int main() { 
    	while(true) { 
    		double somNum; 
    		cin >> somNum; 
    		cout << u(somNum) << endl; 
    	} 
    }
    

    andereDatei.cpp

    double u(double t) { 
    	int i = (int)t; 
    	return t-i; 
    }
    

    Komplieren mit:

    g++ -o main main.cpp
    


  • und genau das ist nicht sinn des forums hier.

    erstens hast du ihm gerade die hausaufgaben gemacht (ohne gegenleistung)
    zweitens hilst du ihm quasi damit unrechtmässigerweise seinen kurs zu bestehen, was ihn als schlechten oder nichts-könnenden programmierer dann in naher zukunft wieder hierhin treibt

    und drittens ist auch dein quellcode schlecht.

    obwohl das geht was du da machst: man bindet keine source dateien ein, nur header



  • Hier wurde das Motto des Forums definitiv falsch angewandt.



  • und drittens ist auch dein quellcode schlecht.

    Ich hab ihn ja auch nur von oben kopiert. Übrigens funktioniert die Funktion nur für nicht-negative t.



  • uninteressantes zeug



  • task schrieb:

    Aber mir wird ein error gezeigt , dass es nicht diese andere datei derectory gibt. Könnt ihr mir sagen wie ich das korrigieren kann?

    Kannst du mir bitte sagen wie man das richtig macht.
    Ich hänge schon seit stunden fest.

    So geht's richtig: Schlaues C++ Buch schnappen und nachschauen, wie das mit der getrennten Übersetzung richtig geht. Dabei solltest du lernen, was und wofür

    • Quelldateien,
    • Header-Dateien
    • Übersetzungseinheiten
    • interne/externe Bindung
    • Deklaration
    • Definition
    • Eine-Definition-Regel (ODR, one definition rule)
    • Include-Wächter

    sind.



  • SeppJ schrieb:

    Computer haben bei so etwas gewöhnlich Recht.

    😃


Anmelden zum Antworten