Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
10.07.2002, 22:47
Onkel Dittmeyer



Moin!

Ich hab da ein kleines Verständnisproblem zu einem Code Beispiel in "Die C++ Programmiersprache" auf Seite 32:
Quellcode:
float pow(float x, int n)
{

  if (n < 0) error("sorry, negative exponent to pow()");

  switch (n)
  {
      case 0: return 1;
      case 1: return x; //soweit so gut
      default: [b]return x*pow(x, n-1);[/b]
  }

}

Ok es läuft ja wie folgt ab:
[pseudo-code]
Falls n kleiner als 0 - exception ;

n durchswitchen
{
Falls 0 - 1 zurückgeben ;

Falls 1 - x zurückgeben ;

Ansonsten - zurückgeben x mal ...
}
[/pseudo-code]
Jetzt versteh ich net ganz:
Die Funktion gibt doch gar nix zurück weil ja wieder an den Anfang gesprungen wird mit n - 1 als neuen Operand !?
Erst wenn man bei 1 ankommt wird x schließlich zurückgegeben oder nicht?
Ich weiß das kann ja irgendwie net sein wenn es in einem solchen Buch steht aber es klingt für mich (noch) unlogisch.

Wie hab ich das zu verstehen?

MfG

--


Dieser Beitrag wurde am 10.07.2002 um 23:02 von [dP]ThEpOpE bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
001
10.07.2002, 23:06
Archangel



Quellcode:
float pow(float x, int n)
{

  if (n < 0) error("sorry, negative exponent to pow()");

  switch (n)
  {
      case 0: return 1;
      case 1: return x; //soweit so gut
      default: [b]return x*pow(x, n-1);[/b]
  }

}

gehn wir das mal durch für pow(2, 4):

Quellcode:
pow(2, 4) : 4 > 1: -> 2 * pow(2, 3)
    pow(2, 3) : 3 > 1: 2 * pow(2, 2);
        pow(2, 2) : 2 > 1: 2 * pow(2, 1);
            pow(2, 1) : 1 == 1: -> 2
also:
            pow(2, 1) = 2
        pow(2, 2) = 2 * pow(2, 1) = 2 * 2 = 4
    pow(2, 3) = 2 * pow(2, 2) = 2 * 4 = 8
pow(2, 4) = 2 * pow(2, 3) = 2 * 8 = 16

so, jetzt verfolg das mal nach

--

Mar 01 01:10:13 <voice> jo
Mar 01 01:10:40 <voice> bis dann ^^
Mar 01 01:11:20 <Archangel> jo
**** ENDING LOGGING AT Tue Mar 1 01:58:13 2005

zum Seitenanfang zum Seitenende Profil || Suche
002
10.07.2002, 23:10
Onkel Dittmeyer



Oh stimmt in der Richtung hab ichs net betrachtet... verfluxt! =)
Oh nein, ja natürlich *vorkopffass* war ich wieder zu voreilig...
Thx

Ja danke Kriz!

--


Dieser Beitrag wurde am 10.07.2002 um 23:20 von [dP]ThEpOpE bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
003
10.07.2002, 23:21
Kriz



Röfl

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)

zum Seitenanfang zum Seitenende Profil || Suche
004
10.07.2002, 23:26
Exec



hhääöö? der kriz hat doch gar nich geantwortet ?! hm, egal ... :D

--

"selbermachen rockt am meisten :D" - -LeJean-

zum Seitenanfang zum Seitenende Profil || Suche
005
10.07.2002, 23:48
Onkel Dittmeyer



Ähm doch guck mal über deiner Reply o_O

--

zum Seitenanfang zum Seitenende Profil || Suche
006
11.07.2002, 00:09
Tron



jo, rekurisive funktionen widerstreben den kleinen grauen dingern im kopf, da hilft nur viel experementieren und ausprobieren.
so die ganzen klassiker: dein pow, fakultaet, fibonacci oder gar ein 4gewinnt mir einer rekursiven KI

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett

zum Seitenanfang zum Seitenende Profil || Suche
007
11.07.2002, 11:08
Archangel



Zitat:
[dP]ThEpOpE postete
Ähm doch guck mal über deiner Reply o_O

uhm, aber dein edit war um 23:20, Kriz' post um 23:21 o_O

--

Mar 01 01:10:13 <voice> jo
Mar 01 01:10:40 <voice> bis dann ^^
Mar 01 01:11:20 <Archangel> jo
**** ENDING LOGGING AT Tue Mar 1 01:58:13 2005

zum Seitenanfang zum Seitenende Profil || Suche
008
11.07.2002, 11:44
Onkel Dittmeyer



Ähm ja hmmm komisch... aber guck dir mal im HL-Coding Board den Bug an
"kann man ohne c++ ne waffe progren"

--


Dieser Beitrag wurde am 11.07.2002 um 11:43 von [dP]ThEpOpE bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
009
11.07.2002, 12:58
Andy_



hmm, ich kapier zwar noch net ganz was hier los ist, aber ich schmeiß mal kurz die Bestätigung in die Menge, das dies kein Forumbug ist, sondern die Serverzeit des NGZ-Server's nicht alle Tassen im Schrank hat. Das Board hat damit nix zu tun, sondern leidet nur darunter...

von daher, guten Morgen...

--

42 Es gibt keinen Sinn des Lebens.

zum Seitenanfang zum Seitenende Profil || Suche