Copyright © 2014, Janusz Bonarowski 1
Ć wiczenie VB6.00b Tablice, ReDim, Preserve
Zadanie
Wykonać aplikację napełniającą tablicę jednowymiarową nieznaną (dowolną) liczbą elementów zawierającą liczby całkowite , np. dzienne przebiegi samochodu rejestrowane w nieznanym (dowolnie długim) okresie czasu. Tablicę napełniać za pomocą funkcji InputBox() liczbami całkowitymi,
a następnie wizualizować w obiekcie ListBox i/lub TextBox [1].
Rys. 1. Propozycja formularza Uwaga! Dla obiektu TextBox1 ustawić
• właściwość Multiline na True,
• właściwość ScrollBars na Vertical.
Kod aplikacji
Dim przebiegi() As Integer 'Deklaracja tablicy dynamicznej
Private Sub btnWczytajTydzien_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles btnWczytajTydzien.Click 'Wczytywanie dziennych przebiegów w tygodniu
Dim Odp As String Dim i As Integer = 0
'Zapełnianie tablicy przebiegi() danymi
Do While i >= 0 'Petla będzie wykonywana bez końca!
Odp = InputBox("Przebieg, pozycja " & (i + 1).ToString, _ "Anuluj - kończy wczytywanie")
If Odp = "" Then Exit Do
End If
'Zwiększanie rozmiaru tablicy bez kasowania zawartości ReDim Preserve przebiegi(i)
przebiegi(i) = CInt(Odp) i = i + 1
Loop
MsgBox("Koniec wczytywania, wczytano " & _ (i).ToString & " danych.")
End Sub
Copyright © 2014, Janusz Bonarowski 2 Private Sub btnSrednia_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _ Handles btnSrednia.Click
'Obliczanie wartości średniej liczb w tablicy Dim i As Integer
Dim suma, srednia As Single Dim N As Integer = 0
suma = 0
For i = 0 To UBound(przebiegi) suma = suma + przebiegi(i) N = N + 1
Next
'srednia = suma / (UBound(przebiegi) + 1), wtedy N=N+1 usunąć.
srednia = suma / N
txtSrednia.Text = srednia.ToString End Sub
Private Sub btnWyswietl_Lista_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles btnWyswietl_Lista.Click 'Wyswietlanie danych z tablicy przebiegi(6) w ListBox1
ListBox1.Items.Clear()
ListBox1.Items.Add("Przebiegi tygodniowe:")
For i = 0 To UBound(przebiegi)
ListBox1.Items.Add("Dzień " & (i + 1).ToString & ": " & _ vbTab & CStr(przebiegi(i)) & " km") Next
End Sub
Private Sub btnWyswietl_TextBox_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _ Handles btnWyswietl_TextBox.Click 'Wyswietlanie danych z tablicy przebiegi() w TextBox1
'Uwaga! Ustawić Multiline na True i ScrollBars na Vertical TextBox1.Clear()
TextBox1.Text = "Przebiegi tygodniowe:" & vbCrLf For i = 0 To UBound(przebiegi)
TextBox1.Text = TextBox1.Text & "Dzień " & _ (i + 1).ToString & ": " & _
vbTab & CStr(przebiegi(i)) & " km" & vbCrLf Next
End Sub
Bibliografia
[1] Microsoft Visual Basic .NET, Michael Halvorson, Wydawnictwo RM, Warszawa 2002.