Erneut VBA Aufgabe

Neue Frage »

Auf diesen Beitrag antworten »
Tamara20 Erneut VBA Aufgabe

Hallo Leute :-)

Frage:
Schreiben Sie eine Funktion, welche das nte Element der Collatzfolge liefert.Das Anfangselement wird dabei mitgezählt.

Also ich gebe z.b zahl 6 ein und nte zahl 3
6,3,10,5,16,8,4,2,1
dann muss die zahl 10 rauskommen.

Soweit habe ich es.

Public Function nte(ByVal a As Integer, ByVal n As Integer) As Integer
Do Until a = 1
If a Mod 2 = 0 Then
a = a / 2
Else
a = 3 * a + 1
End If
Loop
nte = a

End Function

Hier bekomme ich nun die 1 was bei collatz ja zum schluss rauskommen soll.
Wie und was muss ich hier einbauen?
Ich hatte mal versucht einen leeren string einzugeben und dann mit Mid(s,i,1) die nte stelle rauszubekommen.

Vielen dank schonmal :-)
 
Auf diesen Beitrag antworten »
Karlito

Tipp: Abbruchbedingung der Schleife.

VG,

Karlito
Auf diesen Beitrag antworten »
Tamara20

Eine Abbruchsbedingung ist doch Do Wihle oder so? hab ich recht?
und wenn ja soll ich do until wegmachen oder kann man sowas kombinieren.

danke karlito:-)
Auf diesen Beitrag antworten »
Karlito

In deinem Quelltext steht auch eine Abbruchbedingung

code:
1:
2:
3:
4:
5:
Do Until Abbruchbedingung
  Schleifenkörper
Loop


Du musst dir jetzt nur was einfallen lassen, wie du die Abbruchbedingung so anpasst, dass die Schleife auch stoppt, wenn dein n erreicht ist. Dazu musst du in der Schleife noch was mit dem n machen.

VG,

Karlito
 
Auf diesen Beitrag antworten »
Tamara20

Public Function nte(ByVal a As Integer, ByVal n As Integer) As Integer
Do Until a = n
If a Mod 2 = 0 Then
a = a / 2
Else
a = 3 * a + 1
End If
Loop
nte = a

End Function

so habe ich das gemacht aber ich meinte das ist doch total faslch. so macht er ja nur wenn ich für n z.b 2 eingebe so lange geht die collatzschleife.

ich weiss nicht wie ich die funktion für n schreiben muss, das wenn ich collatz 1,5,6,7,9,16 und n 2 eingebe die 5 rauskommt.

die zündende idee fehlt mir ohhhh manooooo
versuch schon seit 1-2 tagen das hinzubekommen :-)
Auf diesen Beitrag antworten »
Karlito

Nicht verzweifeln smile

Ich möchte dir nur ungern die Lösung verraten, da es dir aus meiner Sicht wenig hilft.

1. Frage: ist es wirklich wichtig, dass die schleife bei a=1 abbricht? Was passiert wenn man sie weiter ausführt.
2. Frage: Wenn du das n-te Glied der Folge berechnen willst, musst du die Bildungsvorschrift n mal ausführen. Wie könntest du das erreichen?

VG,

Karlito
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »