Hardware- Georg Geschrieben 8. November 2001 Geschrieben 8. November 2001 hi, bin grade am Funktionen verstehen... Erklärung: #include <iostream.h> #include <conio.h> float Convert(float); int main(int argc, char* argv[]) { float TempFer; float TempCel; cout << "Bitte Temperatur in Fahrenheit eingeben: "; cin >> TempFer; TempCel = Convert (TempFer); cout << "\nDie Temperatur in Grad Celsius ist: "; cout << TempCel << endl; getch(); return 0; } float Convert (float Fer) { float Cel; Cel = ((Fer - 32) * 5) / 9; return Cel; } Versteh' dieses Programm absolut net. Wie läuft die Funktion ab?? - Dass sie einen Wert zurückgibt an das Hauptprogramm main liefert is okay. Aber z. B.: lokale Variablen: Wie muss ich die bennen- bitte verständlich erklären. THX a lot, Hardware- Georg P.S.: Was will der Hardware- Freak in der C++ Section??? Programmieren!! :cool: Zitieren
DocMabuse Geschrieben 8. November 2001 Geschrieben 8. November 2001 Hi Georg! Also dann lass uns mal von oben anfangen: Die Zeilen mit "#include..." sind Präprozessoranweisungen. Hier werden Header-Dateien eingebunden. Im Prinzip wird hier nichts anderes gemacht, als Quelltext eingefügt. Danach kommt die Deklaration der Funktion "float Convert(float);". Das ist der Prototyp der Funktion, der dafür sorgt, dass die main die Funktion überhaupt kennt. Jetzt zur eigentlichen main-Funktion. Kann ja sein, dass ich bis jetzt nur Sachen erzählt habe, die Du schon weißt. Die ersten zwei Zeilen "float..." sind Variablen-Deklarationen. Sie werden hier allerdings nicht initialisiert (z.B. so: float tempFer = 0 . Würde ich allerdings immer machen, um Fehler zu vermeiden. Notwendig ist das aber nicht. Den Namen der Variablen würde ich auch mit einem kleinen Buchstaben anfangen, da später bei OOP die Klassen groß geschrieben werden. Das ist auch nicht notwendig, macht aber Sinn. Anschliessend erscheint eine Meldung auf dem Bildschirm (durch den Befehl "cout<<...."). Direkt hinter dieser Meldung kannst Du jetzt einen Wert eingeben, der in die Variable "TempFer" gespeichert wird (durch "cin>>..."). Nun wird die Funktion "Convert" aufgerufen (mit Call-by-value, d.h. dass nur eine Kopie des Wertes übergeben wird). Dazu schauen wir uns einmal den Prototypen an. Rückgabewert: float Funktionsname: Convert Übergabewert: float Das bedeutet, dass die Funktion den Namen "Convert" hat, einen Übergabewert vom Typ float benötigt und nach Ablauf der Funktion einen Wert vom Typ float zurückgibt. Da die Funktion Werte von Fahrenheit in Celsius umrechnen soll, übergebe ich ihr den vorher in "TempFer" gespeicherten Wert. Die Variable TempCel nimmt anschliessend den Wert auf, den die Funktion zurückliefert. Das "=" ist eine klassische Zuweisung. Diese Zuweisungen gehen immer von rechts nach links. Danach wird der Wert, den die Funktion zurückgegeben hat, auf dem Bildschirm ausgegeben (mit "cout<<..."). Das "getch();" sorgt dafür, dass der Benutzer noch eine Taste drücken muss, bevor das Programm mit "return 0;" beendet wird. Unter der main steht die Funktionsdefinition von "Convert". Hier steht der Quelltext, bzw. was mit dem Wert, der übergeben wurde, passiert. Innerhalb der Funktion wird einen temporäre float-Variable angelegt mit dem Namen "Cel". Temporär deshalb, weil sie nach dem Verlassen der Funktion nicht mehr existiert. Dann folgt die Formel zur Umrechnung von Fahrenheit in Celsius mit dem Wert, der übergeben wurde (hier heißt er "Fer"). Der ausgerechnete Wert wird schliesslich zurückgegeben (bzw. eine Kopie davon). Das wars eigentlich schon. Möchte hier auch nicht zu sehr ausschweifen. Grüsse! DocMabuse Zitieren
Hardware- Georg Geschrieben 8. November 2001 Autor Geschrieben 8. November 2001 Alles klar!!! THX a lot, Hardware- Georg Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.