Avatar billede adamjen Nybegynder
12. december 2006 - 20:09 Der er 7 kommentarer og
1 løsning

Rekursiv funktion

Hej

Kan man lave nedenstående løkke om til en rekursiv funktion i f.eks. VB, og i så fald hvordan ???

For i = 1 To 3
    Debug.Print i
   
    For j = 1 To 3
        Debug.Print i & j
       
        For k = 1 To 3
            Debug.Print i & j & k
        Next k
    Next j
Next i

Ovenstående resultat vil blive:
1
11
111
112
113
...
333

På forhånd tak - AJ
Avatar billede kabbak Professor
12. december 2006 - 22:04 #1
nu har jeg ikke den store eksamen, så jeg ved ikke hvad du mener med "rekursiv funktion".

Kan du forklare lidt mere.
Avatar billede adamjen Nybegynder
12. december 2006 - 22:31 #2
En rekursiv funktion, er en funktion der kalder sig selv. F.eks.

Function MyFunction(ByVal i As Integer)
    If i < 5 Then
          MyFunction(i + 1) 'Funktionen kalder sig selv.
    End If
End Function
Avatar billede kjulius Novice
13. december 2006 - 00:34 #3
Function RekursivtLoop(Optional strPrint As Variant) As String
    Dim i As Integer
    Dim strPrintOut As String
    For i = 1 To 3
        If Not IsMissing(strPrint) Then
            strPrintOut = strPrint
        End If
        strPrintOut = strPrintOut & CStr(i)
        Debug.Print strPrintOut
        If Len(strPrintOut) < 3 Then
            strPrintOut = rekursiv(strPrintOut)
        End If
    Next
End Function
Avatar billede kjulius Novice
13. december 2006 - 00:35 #4
Function RekursivtLoop(Optional strPrint As Variant) As String
    Dim i As Integer
    Dim strPrintOut As String
    For i = 1 To 3
        If Not IsMissing(strPrint) Then
            strPrintOut = strPrint
        End If
        strPrintOut = strPrintOut & CStr(i)
        Debug.Print strPrintOut
        If Len(strPrintOut) < 3 Then
            strPrintOut = RekursivtLoop(strPrintOut)
        End If
    Next
End Function
Avatar billede adamjen Nybegynder
13. december 2006 - 15:17 #5
Mange tak :)
Avatar billede adamjen Nybegynder
13. december 2006 - 15:54 #6
Lige et spørgsmål... Hvis jeg løber igennem flere tal end blot 3, f.eks. 5 og ændre længden til 4, får jeg ikke alle kombinationerne med. Kan jeg ændre din rutine således at jeg kan løbe igennem disse?

På forhånd tak :)
Avatar billede stry Nybegynder
13. december 2006 - 17:41 #7
Det er fordi immediate-vinduet, som du skriver til, ikke kan vise så mange linier (den viser de sidste) - hvis du skriver til en fil kommer det hele med.
Avatar billede adamjen Nybegynder
13. december 2006 - 18:37 #8
Det er derfor... Tak for hjælpen Stry :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester