Seite 3 von 3

Verfasst: 16.12.2006 16:44
von #NULL
es wird glaub ich einfach bei jeder unterschiedlichen länge von _ oder __ oder ___ ect. eine neue (verschiedene) variable angelegt (und mit 0 initialisiert). _ und __ sind also einfach zwei variablen.

Code: Alles auswählen

A <= AA!((1|AA)!AAA) 
ist also nix weiter als

Code: Alles auswählen

param <= 1
..also die gewöhnliche einstiegs-/rekursions-bedingunge für eine fakul-funktion.

Code: Alles auswählen

ProcedureReturn AA!1|AAA|AAAA|AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 
-> procedure return 1
(rekursion beenden)
..u.s.w.u.s.f

also überall wo _ länger als 1 zeichen vorkommt, 0 einsetzen..




<edit>
"param > 0" war falsch meinerseits, ..korrigiert.
...
immernoch falsch :roll:
"param <= 1" muß es heißen, wobei auch
"param < 1" gehen würde ,weil 3*2*1 ja dasgleiche ist wie 3*2*1*1.

Verfasst: 16.12.2006 16:46
von Kaeru Gaman
also doch :mrgreen:
tricky versteckt die rekusion :allright:
ich hab se echt nicht gesehen...

gute güte...

glückwunsch an Froggerprogger: hast mich voll geleimt. :mrgreen: :allright:

Verfasst: 16.12.2006 16:55
von #NULL
hier nochmal eine lesbare rekursions-variante

Code: Alles auswählen

Procedure fakul(n)
  If n <= 0
    ProcedureReturn 1
  Else
    ProcedureReturn n*fakul(n-1)
  EndIf
EndProcedure
4!
= 1 * 2 * 3 * 4
= 4 * 3 * 2 * 1
= 4 * (4-1) * ((4-1)-1) * (((4-1)-1)-1)
= 24

Verfasst: 16.12.2006 17:38
von DarkSoul
dann ist ja ales klar :allright: :allright: :allright: :allright: :allright: :allright: :allright: :allright: :allright: :allright: :allright:

Verfasst: 17.12.2006 23:10
von Froggerprogger
:wink:

Ich war übers Wochenende leider in einer internetfreien Zone, aber ihr habt das ja alles sehr schön gelöst!

Also frohe Weihnachten!