Funktionen
-
Hallo liebe Gemeinde.
Vor ca. drei Wochen habe ich folgenden Thread zum Thema Funktionen geöffnet:
http://www.c-plusplus.net/forum/301637
Ich muss ehrlich zugeben, dass ich das immer noch nicht ganz geschnallt habe.
Dazu ein Beispiel:
#include <iostream> using namespace std; void Elvis () { cout << endl; cout << "Wie alt ist Elvis, unser Hund?" << endl; cout << "Elvis ist 19 Monate alt!" << endl; cout << endl; } double Division(double x, double y) { cout << "Funktion Division" << endl; double z = x / y; return z; } int main() { cout << endl; cout << "Verwendung von Funktionen!" << endl; cout << endl; Elvis(); //Aufruf der Funktion Elvis cout << "Zwei Zahlen bitte!" << endl; double x, y, z; cin >> x >> y; z=Division(x,y); //Aufruf der Funktion Division cout << "z nach Division: " << z << endl; return 0; }Prinzipiell den Unterschied zwischen der Funktion Elvis und der Funktion Division habe ich schon verstanden.
Bloß die Funktion Division habe ich noch nicht verstanden.
Wenn ich
double Division(double , double ) { cout << "Funktion Division" << endl; double z = x / y; return z; }debugge, kommt die Fehlermeldung, dass x und y nicht deklariert und definiert sind.
Wenn ich
double Division(double , double ) { cout << "Funktion Division" << endl; double x, y; double z = x / y; return z; }debugge, dann kommt die Meldung
Run-Time Check Failure #3 - The variable 'x' is being used without being initializid.Erst wenn ich
double Division(double x, double y) { cout << "Funktion Division" << endl; double z = x / y; return z; }debugge, läuft es so, wie ich es haben möchte.
Woran liegt das?
Für die Antworten schon einmal Danke im Voraus.
Gruß
Max
P.S.: Hier ein Link mit Bilder von den Fehlermeldungen:
http://www.elektronik-kompendium.de/forum/forum_entry.php?id=166563&page=0&category=all&order=time
-
silent_max schrieb:
Woran liegt das?
Es sind Parameter meine Güte, hattest du nie Funktionen in der Schule? (Auch wenn das hier keine Funktion im mathematischen Sinne ist, die hatten auch Parameter.)
Das ist doch gerade der Sinn, dass du die Funktion mit Werten aufrufst, die du von außen festlegst. Du schiebst Werte rein, und es kommt nen neuer Wert raus, und dazwischen ist irgendwas passiert. Das ist doch nicht so schwer zu verstehen? So langsam gehen mir die Erklärungen auch aus.
-
Guck mal, ich hab dir ein Bild gemalt: http://postimage.org/image/jd4zwgbzl/

-
Jetzt habe ich es glaube ich verstanden:
Also wenn ich einer Funktion Werte übergeben möchte, die irgendetwas mit diesen Werten machen und einen anderen Wert ausgeben, so muss ich im Funktionskopf Parameter festlegen. Beispiel Division: Ich lege 2 Parameter x und y, die über die Tastatur eingelesen werden, fest, diese werden der Funktion übergeben und werden in der Funktion miteinander dividiert und über z dann wieder der main() übergeben.
-
cooky, deine pädagogischen Lehrfähigkeiten sind der Hammer!