GoTo www.visual-basic5.de
Back to Startpage
zurück zu Teil 1
zu Teil 3

Teil : 2

2.1 Beschreibung Programmschleifen : Mehrfache Schleifen

2.1.1      Mehrfache Programmschleifen

Beispiel :

Folgendermaßen kann mit Hilfe einer Schleife das Herausfinden der kleinsten Zahl aus einem Feld mit n Zahlen erfolgen :

Man vergleicht die erste der Zahlen der Reihe nach mit allen anderen Zahlen und vertauscht, sobald eine andere Zahl kleiner ist als die erste, diese beiden Zahlen. Auf diese Weise steht immer die kleinste der zum Vergleich herangezogenen Zahlen an erster Stelle. Nach dem Vergleich mit der letzten Zahl steht das Minimum vorn.

Strukturansicht :

Vorgehensstruktur : Bei Name des Feldes A Source Beispiel : Download Beispiel 6,23 KB
Strukturansicht Mehrfache Schleifen
Option Base 1

Private Sub sFirstLoop5()
    Dim A       As Variant
    Dim arrA    As Variant
    
    A = Array(4.5, -7, 3.8, -9.5, -10, 0, -16)
    For i = 2 To 7
        If A(1) <= A(i) Then GoTo NextLoop
        arrA = A(1)
        A(1) = A(i)
        A(i) = arrA
NextLoop:
    Next i
    For k = 1 To 7
        Picture1.Print A(k)
    Next k
End Sub

Hier wird in dem Quelltext beim vertauschen ein Hilfsspeicher (arrA) verwendet. Das Vertauschen darf nicht durch

da dann der Wert von A(1) auf beiden Speichern steht. Für die verschiedenen i-Werte ist der Inhalt des Feldes A am Ende der Schleife also bei (Next i). Ansicht der Ergebnisse in Tabelle 1.

Array Feld Am Beginn nach i = 2 nach i = 3 nach i = 4 nach i = 5 nach i = 6 nach i = 7
A(1) 4.5 -7 -7 -9.5 -10 -10 -16
A(2) -7 -4.5 -4.5 -4.5 -4.5 -4.5 -4.5
A(3) 3.8 3.8 3.8 3.8 3.8 3.8 3.8
A(4) -9.5 -9.5 -9.5 -7 -7 -7 -7
A(5) -10 -10 -10 -10 -9.5 -9.5 -9.5
A(6) 0 0 0 0 0 0 0
A(7) -16 -16 -16 -16 -16 -16 -10

Beispiel :

Will man ein Feld von Zahlen der Größe nach anordnen (sortieren), so kann das vorangegangene Beispiel dazu verwendet werden. Nachdem man die kleinste Zahl mit dem Beispiel auf die erste Position gebracht hat, bringt man auf die gleiche Weise die zweitkleinste Zahl auf den zweiten Platz des Feldes und danach die drittkleinste auf den dritten Platz usw. Wird als letztes die zweitgrößte Zahl auf den vorletzten Platz gespeichert, so steht automatisch die größte Zahl auf dem letzten Platz.

Das Schleifenbeispiel muß also ( n - 1 ) mal durchlaufen werden. Gibt k die Schleifendurchlaufanzahl der Schleife an dann läuft i

Auf diese Weise erhält man ein Programm mit einer Doppelschleife ( bzw. ein Programm mit 2 ineinandergeschachtelten Schleifen ).

Vorgehensstruktur : Source Beispiel : Download Beispiel 6,26 KB
Beispiel Strukturansicht
Option Base 1

Private Sub sFirstLoop6()
    Dim A        As Variant
    Dim arrA     As Variant
    
    A = Array(4.5, -7, 3.8, -9.5, -10, 0, -16)
    For k = 1 To 7
        For i = k To 7
            If A(k) <= A(i) Then GoTo NextLoop
            arrA = A(k)
            A(k) = A(i)
            A(i) = arrA
NextLoop:
        Next i
        Picture1.Print A(k);
    Next k
End Sub

Folgende Anzeige wird nach dem Start des Beispiels ausgegeben :

-16 -10 -9.5 -7 0 3.8 4.5

Kurzhinweis : Doppelschleifen werden vor allem beim Beschreiben und Verarbeiten von zweidimensionalen Datenfeldern verwendet.

Ende Teil 2.1. Laufanweisungen. Mehrfache Schleifen.





© by prelles basics - germany - heinz prelle - lenbachstrasse 42 - 30655 hannover


2894 Hits