[Erledigt] Arbeiten mit 2 Dateien?



  • Hallihallo,
    ich arbeite gerade das Buche von Galileo Comupting durch (Visual C++ 2008)
    und da sind auch gute Übungen drinnen wie ich finde. Naja auf jeden Fall bin ich bei der Übung, welche aus zwei Zahlen die divsion ermittelt. Um die aufgabe aber interessanter zu machen will ich die rechnung in einer 2ten datei machen.
    Ich habe aber gerade schwierigkeiten die zwei zahlen die eingegeben werden an die datei "divsion.cpp" zu übergeben. und das ergebnis von division an die "main.cpp" zu übergeben.

    Das ganze sieht so aus:

    main.cpp:

    #include <iostream>
    #include <Windows.h>
    #include <tchar.h>
    #include "divison.h"
    
    using namespace std;
    
    int main(int x, int y){
    	SetConsoleTitle(_T("Divsion aus zwei Zahlen"));
    	cout << "Geben Sie die erste Zahl ein: ";
    	cin >> x;
    	cout << endl;
    	cout << "Geben Sie die zweite Zahl ein: ";
    	cin >> y;
    	return(x,y);
    	cout << "Die Divsion aus " << x << " und " << y << " betreagt: " << z;
    
    }
    

    Die divsion.cpp:

    #include <iostream>
    #include "divison.h"
    
    int division(int z){
    	int main(int y, int x);
    	z = (x+y)/2;
    	return(z);
    }
    

    Die division.h

    int main(int, int);
    int division(int);
    

    ich glaub ich habe nur beim buch irgendwas flsch verstanden...



  • Du hast vergessen die Funktion

    int division(...
    

    zuverwenden



  • okay das stimmt danke,

    aber was ich vergessen habe zu erwähnen, ist das in der divsion.cpp 2 fehler bei x und y. Da steht "die Variable x wurde nicht deklariert" bzw. "Die variable y wurde nicht deklariert" und in der main.cpp steht bei z: "Die Variable z wurde nicht deklariert". was habe ich falsch ge,macht?



  • Hier wäre eine gute Beschreibung:

    http://www.cplusplus.com/forum/articles/10627/

    Konkret würde ich es so schreiben:

    #include <iostream>
    #include <Windows.h>
    #include <tchar.h>
    
    using namespace std;
    
    inline double Division(double x, double y){
    
    	return x/y;
    
    }
    
    int main(){
    
    	double a, b;
    
    	SetConsoleTitle(_T("Divsion aus zwei Zahlen"));
    
    	while(true){ //Ersetzen durch beliebige Bedingung
    
    		cout << "Bitte geben Sie Dividend und Divisor ein (\"a b\"): ";
    		cin >> a >> b;
    
    		if(b==0) cout << "Nicht definiert." << endl;
    
    		else cout << "Ergebnis: " << Division(a, b) << endl;
    
    	}
    
    	return 0;
    
    }
    

    Und dann kannst die Division() auslagern. 😉



  • aber dann habe ich ja wieder alles in einer datei ^^
    und ich habe ja eig. nur das problem mit der daklaration von den variablen. obwohl sie ja angegeben sind, meckert der compiler bzw. der debugger das will ich ja weg haben



  • danke Thuruk
    dank dir und dem code konnte ich das so umändern, das es nun geht ^^



  • Zeig mal deinen Quelltext. Denn in deinen dreien sind alle noch Verbesserungsmöglichkeiten. Besser ist du lernst das nicht mit den Marotten, sondern eleganter.

    MfG f.-th.



  • Damit du siehst was ich meine:

    #include <iostream>  // wozu der header hier?
    #include "divison.h"
    
    int division(int z){
        int main(int y, int x); // diese Zeile sollte nur einmal im ganzen Projekt aber nicht hier zu sehen sein!
        z = (x+y)/2;     // Mittelwert oder Division? 
        return(z);
    }
    

    schreibe mal die Datei so:

    #include "divison.h"
    
    int division(int a, int b){
        int m;
        m = (a+b)/2;     // Mittelwert oder Division?
        return(m);
    }
    

    Zeige uns mal deine Folgerungen in Form des Quelltextes daraus, denn ich vermute, du hast da ein paar Fehlinterpretationen. Ob dein Buch die Ursache ist weiss ich nicht. Aber der Verlag hat ein paar Bücher im Angebot, die man trotz guter Bewertungen im Netz, nur mit Vorsicht geniessen sollte 😃

    MfG f.-th.


Anmelden zum Antworten