0 Daumen
604 Aufrufe

Hallo liebe Community,

Könnte mir jemand bitte bei folgender aufgabe helfen wie diese lösen muss.

Sub aufgabe6()

        MsgBox  "ergebnis:      "  &    berechne (6)

End Sub



Function berechne (n As Long)  As Long

      If  n  <=  1  Then

              berechne  =  1

      Else

              berechne  =  n  * berechne (n  -  1)

      End if

End Function

a) Welche Ausgabe liefert das Programm,,,aufgabe6" ?

Avatar von

1 Antwort

+2 Daumen
Könnte mir jemand bitte bei folgender aufgabe helfen wie diese lösen muss.

Du hast hier mehrere Möglichkeiten, um an die Lösung zu kommen:

1.) Du probierst das Programm auf dem Rechner aus.

2.) Du führst das Programm händisch aus (z. B. für den gegebenen Wert \(n=6\)).

3.) Du analysierst Die Struktur des Programms. Woran erinnert Dich der Ausdruck

\( n \cdot \text{berechne}(n  -  1)\)

Tipp: Am Ende kommt \(720\) heraus. Kommst Du drauf?

Avatar von

Ne leider nicht komme nicht drauf.

Weiterer Tipp: Für 5 als Eingabe käme 120 als Ausgabe. Kommt Dir das bekannt vor?

Wo siehst du genau die Schleife?

Ich lese "as long" als Format der In- und Out-Variabeln: Longinteger oder so was.

Daher hätte ich hier nur einen Durchgang erwartet.

berechne(6) = 6 * 5 = 30.

Allerdings müsste klaus sagen können, was "as long" bedeutet.

Wo siehst du genau die Schleife?

Ich sehe keine Schleife, sondern eine Rekursion:

berechne  =  n  * berechne (n  -  1)
Ich lese "as long" als Format der In- und Out-Variabeln

So habe ich das auch verstanden.

berechne (n As Long)  As Long

Das ist wahrscheinlich falsch abgetippt.

Allerdings müsste klaus sagen können, was "as long" bedeutet.

Das bezweifle ich ...

Ah. Natürlich. Jetzt sehe ich die Rekursion auch.

berechne (n As Long)  As Long
Das ist wahrscheinlich falsch abgetippt.

Warum meinst du ? Eine Funktion muss eine Eingabe (das n) mit Format und eine Ausgabe mit Format (das berechne(n)) haben.

Allerdings müsste klaus sagen können, was "as long" bedeutet.
Das bezweifle ich ...

Ich auch...

Warum meinst du ? Eine Funktion muss eine Eingabe (das n) mit Format und eine Ausgabe mit Format (das berechne(n)) haben.

Stimmt ... so könnte man es auch sehen :-)

Ich ging davon aus, dass er sich an den Bildbeispielen zu seinen anderen "Fragen" (https://www.stacklounge.de/2033/geben-ist-folgender-programmcode-mit-loop-if-und-else) orientiert.

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community