myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   Funktion C++ (https://mygully.com/showthread.php?t=3172396)

Iliaz 19.01.14 18:50

Funktion C++
 
Hallo, ich versuche mich gerade an Funktionen, weiss jedoch nicht wie ich folgenden Unterschied interpretieren soll:

Code 1:


Code 2:



Meine Frage bezieht sich darauf, warum in den markierten Stellen formale Unterschiede vorhanden sind, wobei am Ende jedoch beides dasselbe ausgibt (Bis auf den Unterschied der Addition und Subtraktion). Außerdem verstehe ich nicht was mit ,,Rückgabewert" gemeint wird. Ich hoffe jemand kann mir helfen.

Edit: So, ich habe mir ein weiteres Beispiel angesehen.

int Algorithmus(int n)
{
while (n<0) n = n*n-2;
return n;
}

Das macht einiges klarer bzgl. dem Rückgabewert n. Ich habe hier also eine Variable n gegeben die z.b. als 5 initialisiert ist. Wenn ich nun die Schleife durchgehe wird am Ende ein anderer Wert für n vorhanden sein und der wird meinem Hauptprogramm übergeben damit er damit weiter arbeitet ?

spartan-b292 19.01.14 19:20

Der Unterschied bei der Ausgabe ist, das bei cout << substraktion der Rückgabewert (also das Ergebnis der Substraktion) der Funktion substraktion() ausgegeben wird. Bei addition() erfolgt die Ausgabe in der Funktion selbst über cout << zahl_1 + zahl_2

Der Rückgabewert ist der Wert den die Funktion an die aufrufende Funktion zurück gibt.

Iliaz 19.01.14 19:48

Vielen dank, das hilft mir weiter.

Ich habe eine Frage bzgl. folgender Funktion

#include <iostream>

using namespace std;

//Prototypen von allen Funtkionen im Programm
void multiplikation(float zahl_1, float zahl_2);/*ohne Rückgabewert,
mit Übergabeparameter*/

int main(void)
{

float zahl_1, zahl_2;

cout << "Zahl 1 eingeben: ";
cin >> zahl_1;
cout << "Zahl 2 eingeben: ";
cin >> zahl_2;
multiplikation(zahl_1, zahl_2);//ohne Rückgabewert, mit Übergabeparameter

cin.sync();
cin.get();
return 0;
}

void multiplikation(float a, float b)
{
cout << a * b;
}

Im Hauptprogramm werden zwei Variablen deklariert. Wieso wird im Unterprogramm mit ganz anderen Variablen gearbeitet, also wieso mit a und b anstatt mit zahl_ und zahl_". Kann mir das jemand bitte leicht & verständlich erklären? Ich hänge an diesem Problem seit ein paar Tagen und es ist wirklich sehr Zeit fressend. :( Ich habe mir auch bereits jegliche Youtube Tutorials + Lektüre angeschaut. Ich verstehe es einfach nicht wie das mit dem Übergabeparameter funktioniert.

spartan-b292 20.01.14 18:46

cout << foo ist ein Funktionsaufruf, deshalb gibt er eine 1 aus und verknüpft dann den Rückgabewert von cout, was glaube ich ein Zeiger ist, wenn der Stream in Ordnung ist, mit b.

Wenn du cout<<(a && b); schreibst werden a und b vorher UND-verknüpft und dann ausgegeben. Alternativ kannst du auch eine Variable c vom typ bool definieren, dann das Ergebnis der UND-Verknüpfung von a und b in c speichern und dann c ausgeben.

PS bitte editiere deine Posts und erstelle nicht immer neue Posts!


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:34 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.