![]() |
| zurück
zu Teil 2 |
Teil : 3
3.1 Beschreibung Programmschleifen : Mehrfache Schleifen
3.1.1 Mehrfache Programmschleifen
Beispiel : Einlesen einer Matrix
n = . . . . . Dim A(n,n) A = . . . . . oder mit einer Doppelschleife n = . . . . . Dim A(n,n) For i = 1 To n For k = 1 To n A(i,k) = . . . . . Next k Next i |
Beide vorangegangenen Beispiele lesen der Reihe nach ein :
a11, a12,a13, ....., a1n, a21, a22, ..... , a2n, a31, ..... ann.
Beispiel :
Erzeugen und Ausgeben einer (9,9) - Matrix A mit Aik = j * k. Ziel : Ausgabe des in der Tabelle gezeigten "Kleine Einmaleins".
| * | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 2 | 2 | 4 | 6 | 8 | 10 | 12 | 14 | 16 | 18 |
| 3 | 3 | 6 | 9 | 12 | 15 | 18 | 21 | 24 | 27 |
| 4 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | 32 | 36 |
| 5 | 5 | 10 | 15 | 20 | 25 | 30 | 35 | 40 | 45 |
| 6 | 6 | 12 | 18 | 24 | 30 | 36 | 42 | 48 | 54 |
| 7 | 7 | 14 | 21 | 28 | 35 | 42 | 49 | 56 | 63 |
| 8 | 8 | 16 | 24 | 32 | 40 | 48 | 56 | 64 | 72 |
| 9 | 9 | 18 | 27 | 36 | 45 | 54 | 63 | 72 | 81 |
Strukturansicht mit Quelltext :
| Programmstruktur : | Source Code : Download Beispiel 6,22 KB |
![]() |
Option Base 1
Private Sub sFirstLoop7()
Dim A(9, 9) As Variant
Picture1.Print " * | "; 1; 2; 3; 4; 5; 6; 7; 8; 9
Picture1.Print String$(40, "-")
For i = 1 To 9
For k = 1 To 9
A(i, k) = i * k
Next k
Picture1.Print i; "|"; A(i, 1); A(i, 2); A(i, 3); A(i, 4);
Picture1.Print A(i, 5); A(i, 6); A(i, 7); A(i, 8); A(i, 9)
Next i
End Sub |
Beispiel : Pascalsches Dreieck.
Bei der Auswertung von Binomen
spielen
die Binomialkoeffizienten eine Rolle, z.B. gilt :
![]()
Sie können diese Faktoren selbst im Pascalschen Dreieck ( siehe Tabelle )
| 1 | |||||||
| 1 | 1 | ||||||
| 1 | 2 | 1 | |||||
| 1 | 3 | 3 | 1 | ||||
| 1 | 4 | 6 | 4 | 1 | |||
| 1 | 5 | 10 | 10 | 5 | 1 | ||
| 1 | 6 | 15 | 20 | 15 | 6 | 1 | |
| . . | . . | . . |
durch Beachtung folgender Regeln erzeugen :
Wir denken uns diese Zahlen in einer quadratischen Matrix angeordnet. Dann interessieren die Werte rechts oberhalb der "Diagonalen" nicht. Gibt n die Zeilennummer und k die Spaltennummer an, so erhält man die ersten zehn Zeilen des Pascalschen Dreiecks durch folgendes Beispiel :
| Strukturansicht : | Source Code : Beispiel Downloaden 6,22 KB |
![]() |
Option Base 1
Private Sub sFirstLoop8()
Dim A(10, 10) As Variant
For i = 1 To 10
A(i, 1) = 1
A(i, i) = 1
Next i
For i = 3 To 10
For k = 2 To i - 1
A(i, k) = A(i - 1, k) + A(i - 1, k - 1)
Next k
Next i
For i = 1 To 10
For k = 1 To i
Picture1.Print A(i, k);
Next k
Picture1.Print
Next i
End Sub |
Bei
der Ausgabe interessieren die Elemente in einer Zeile nur bis zum
Diagonalelement
(
siehe obrige Tabelle Pascalschen Dreieck )
Ende Teil 3.1. Laufanweisungen. Mehrfache Schleifen.