Zahlenreihe mit hilfe einer Schleife

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von FAtheone.

    Zahlenreihe mit hilfe einer Schleife

    Guten Abend!

    Ich habe heute versucht die Schleife näher kennen zu lernen und habe versucht eine Reihe von Zahlen auszugeben (Aufgabe aus einem Aufgabenblatt).

    Die Zahlen die ausgegeben werden sollen sind folgende:1, 2, 4, 7, 11, 16, 22, 29, 37, 46, 56, 67, 79, 92)

    Diese Aufgabe lässt sich (nach meine Logik : )) leicht mit einer Schleife lösen und habe bisher folgenden Code ausgearbeitet.

    VB.NET-Quellcode

    1. Dim anfang As Byte
    2. Dim ende As Byte
    3. Dim abschnitt As Byte = 1
    4. 'übergabe
    5. anfang = Convert.ToByte(txtanfang.Text)
    6. ende = Convert.ToByte(txtende.Text)
    7. 'verarbeitung
    8. For i = anfang To ende Step abschnitt
    9. lstausgabe.Items.Add(i)
    10. abschnitt = abschnitt + 1
    11. Next


    Obwohl die Eingaben fest vorgegeben sind, habe ich hier eine Übergabe eingebaut falls sie doch noch abgeändert werden sollen ;)

    Ich habe gemerkt, wenn ich die Zahl 1 nehme und immer eine Zahl dazu zähle, geht der wert genau auf:
    1+1=2
    2+2=4
    4+3=7
    7+4=11
    etc.. weswegen ich vorhatte, den Zähler abschnitt (stepbefehl) immer um 1 Zahl zu erhöhen aber das Programm läuft leider nicht. Kann mir jemand erklären wo hier noch der Denkfehler zu finden ist?
    Ok super vielen Dank!
    habe den Code nun wiefolgt abgeändert:

    VB.NET-Quellcode

    1. While anfang <= ende
    2. lstausgabe.Items.Add(anfang)
    3. anfang = anfang + abschnitt
    4. abschnitt = abschnitt + 1
    5. End While


    Der Ablauf funktioniert nun 1a allerdings würde mich interessieren ob ich die letzten 2 zeilen nicht irgendwie zusammenfügen könnte (der letzte Abschnitt sieht irgendwie "komisch" aus : /)?

    Sendo - Takeshi schrieb:

    der letzte Abschnitt sieht irgendwie "komisch" aus

    Nein, Du veränderst ja 2 Variable, wie willst Du die in 1 Anweisung zusammenfügen ?

    Aber für den oft gebrauchten Ausdruck a = a + x kannst Du etwas abgekürzt schreiben a += x :

    VB.NET-Quellcode

    1. While anfang <= ende
    2. lstausgabe.Items.Add(anfang)
    3. anfang += abschnitt
    4. abschnitt += 1
    5. End While

    Dem Compiler ist das egal, er macht eh den gleichen Zwischencode daraus.
    Ggf. kannst du auch eine Funktion berechnen:

    Es ist ja
    f(0) = 1
    f(1) = 1+1
    f(2) = 1+1+2
    f(3) = 1+1+2+3
    f(4) = 1+1+2+3+4
    f(5) = 1+1+2+3+4+5

    Nun summieren wir

    Quellcode

    1. 1+2+3+4 =
    2. 1 2
    3. 3 4
    4. ----
    5. 5 5
    6. = (n+1)*(n/2)

    =>
    f(n) = 1 + (n+1)*(n/2)

    VB.NET-Quellcode

    1. Private Function Reihe(n As Integer) As Integer
    2. Return cint(1 + (n+1) * (n/2))
    3. End Function
    4. 'Ausgabe:
    5. For i = start To ende 'Step 1 (ist eh default)
    6. Ausgeben(Reihe(i))
    7. Next