Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Sonstige Fragen » Erneut VBA Aufgabe » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Erneut VBA Aufgabe
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Tamara20
Grünschnabel


Dabei seit: 18.06.2011
Beiträge: 5

Erneut VBA Aufgabe Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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 :-)
24.06.2011 23:22 Tamara20 ist offline Beiträge von Tamara20 suchen Nehmen Sie Tamara20 in Ihre Freundesliste auf
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Tipp: Abbruchbedingung der Schleife.

VG,

Karlito
25.06.2011 08:10 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
Tamara20
Grünschnabel


Dabei seit: 18.06.2011
Beiträge: 5

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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:-)

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Tamara20: 25.06.2011 10:11.

25.06.2011 10:10 Tamara20 ist offline Beiträge von Tamara20 suchen Nehmen Sie Tamara20 in Ihre Freundesliste auf
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Karlito: 25.06.2011 12:53.

25.06.2011 12:51 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
Tamara20
Grünschnabel


Dabei seit: 18.06.2011
Beiträge: 5

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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 :-)
26.06.2011 21:10 Tamara20 ist offline Beiträge von Tamara20 suchen Nehmen Sie Tamara20 in Ihre Freundesliste auf
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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
26.06.2011 21:24 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Sonstige Fragen » Erneut VBA Aufgabe