Rekursive Funktion Hilfe
-
return (base,expo-1);
return potenz(base,expo-1);Funktionsaufruf Syntax ist immer gleich:
funktionsname(argumente)
-
Ah mann!
Natürlich!
Wie konnte ich das übersehen... dankesehr!
-
Cabooze schrieb:
Ah mann!
Natürlich!
Wie konnte ich das übersehen... dankesehr!Man schreibt schon mal Blödsinn. Mit nem Debugger kommt man oft schnell dahinter ...
-
int potenz(int base, int expo){ if(expo==1){ return (base); } return base*potenz(base,expo-1); } int main() { int basis,exp; int ergebnis; cout << "Basis: " , cin >> basis; cout <<endl; cout << "exponent: ", cin >> exp; cout <<endl; ergebnis=potenz(basis, exp); cout << "Ergebnis: " <<ergebnis; return 0; }So passt!

-
manni66 schrieb:
Cabooze schrieb:
Ah mann!
Natürlich!
Wie konnte ich das übersehen... dankesehr!Man schreibt schon mal Blödsinn. Mit nem Debugger kommt man oft schnell dahinter ...
Der Debugger von Netbeans funktioniert öfter nicht. Wie jetzt gerade auch...
Krieg ständig ne fehlermeldung.
Sonst hätt ich es längst gemacht.
-
Nebenbei als Anmerkung noch die Antwort auf die eigentliche Frage, auch wenn sie nicht mehr benötigt wird
:Obwohl ich mich schon seit etlichen Jahren mit C++ befasse und ich eigentlich dachte, dass diese Sprache nicht mehr allzu viele Geheimnisse vor mir haben kann, habe ich mir die selbe Frage gestellt wie Cabooze: "Was passiert da und warum?".
Man lernt bei C++ doch nie wirklich aus. Ich dachte tatsächlich immer solche durch Komma separierte Ausdrücke könnte man nur bei for-Schleifen verwenden - tatsächlich ist das Komma tatsächlich ein Operator, bei dem der linke und der rechte linke Ausdruck mit allen Nebeneffekten ausgewertet werden und der Gesamtausdruck den Wert des Ausdrucks rechts vom Komma erhält:
return (base,expo-1);Wertet also
basemit Nebeneffekten aus (Das hätte z.B. Relevanz wenn dortbase++stünde undbaseglobal wäre. So wird es wahrscheinlich eh nur rausoptimiert) und gibtexpo-1zurück. Womit sich auch die Rückgabewerte in der ersten Version erklären.Da habe ich wieder etwas dazgelernt. Hab das Komma bei den "anderen Operatoren" wohl nie so richtig wahrgenommen... was mir allerdings ein wenig Angst macht, ist, dass man das Komma sogar überladen (!) kann

Gruss,
Finnegan
-
Finnegan schrieb:
Da habe ich wieder etwas dazgelernt. Hab das Komma bei den "anderen Operatoren" wohl nie so richtig wahrgenommen... was mir allerdings ein wenig Angst macht, ist, dass man das Komma sogar überladen (!) kann

Ja, genau wie && und || und Scott Meyers schreibt kapitelweise darüber, dass man es kann und wieso man es nicht machen sollte.
-
Übrigens bringt mich das Debugger Problem langsam auf die Palme. ich weiß auch gar nich unter welchem Thema ich das hier reinschreiben müsste wenn ich ein neuen Thread aufmachen wollte.
Bei vielen (nicht bei allen) programmen die ich mit Neatbeans debuggen will kommt ein Error mit : C:/nutzer/dokumente/netbeansprojects/projektname/debug/cygwin_4.x-windows/projektname: no such file or directory.
Was kann ich da machen?
-
Unter Windows ist die Visual Studi IDE ungeschlagen, was das Debugging betrifft, wie ich finde. Da kommt nix dran. Empfehle daher das Visual Studio. Allerdings ist der Microsoft Compiler nur so lala, alelrdigns oll, wie ich gehört habe, in der neuen Version die Toolchain austauschbar sein.

-
Das bringt mir leider nix.
Wir müssen Netbeans und Cygwin Compiler für die Uni benutzen. Ich brauch das ja auch auf meinem Laptop für die Praktikas.
-
Cabooze schrieb:
Übrigens bringt mich das Debugger Problem langsam auf die Palme. ich weiß auch gar nich unter welchem Thema ich das hier reinschreiben müsste wenn ich ein neuen Thread aufmachen wollte.
Wie wäre es mit "'no such file or directory' beim Debuggen mit Netbeans" im Compiler & IDE Forum?