Tablice 1. Tablice jednowymiarowe
Transkrypt
Tablice 1. Tablice jednowymiarowe
Tablice Tablice pozwalają nam na przechowywanie wielu wartości tego samego typu w jednej zmiennej. Mogą mieć jeden lub więcej wymiarów. Maksymalna ilość wymiarów to 32. Trzeba pamiętać o tym, że niemożliwe jest deklarowanie dolnej granicy i jest ona równa zawsze 0. System Windows, a więc i Visual Basic korzysta z tablic statycznych i dynamicznych. Tablice statyczne – posiadaja stałą, niezmienną w trakcie działania programu wielkość, ustaloną w trakcie deklaracji. Tablice dynamiczne – posiadaja zmienną wielkość, w trakcie działania programu możemy zwiększać lub zmniejszać wielkość tablicy. W momencie deklaracji ustalamy tylko ilość wskaźników dla danej tablicy. 1. Tablice jednowymiarowe Deklaracja Dim tablica() As Integer Dim wektor(9) As Integer W pierwszym przypadku jest to tablica jednowymiarowa bez zadeklarowanego rozmiaru. Druga także oznacza tablicę jednowymiarową, lecz z określonym rozmiarem. Pamiętając o tym, że w VB.NET dolna granica jest zawsze równa 0, dlatego też liczba elementów tej tablicy jest równa 10 (kolejne wartości wskaźnika od 0 do 9). Elementy przechowywane w tych tablicach będą typu Integer. Inicjalizacja wartości elementów tablicy Podobnie jak w przypadku zmiennych można inicjować tablice podczas ich deklarowania tylko dla tablic o nieustalonych rozmiarach Dim tablica() As Integer={1,2,3} Ponieważ indeksowanie zaczyna się od 0 dlatego też element tablica(0)=1. 2. Tablice wielowymiarowe Deklarowanie Dim macierz(,) As Integer Dim tablica(9,9,9) As Integer Pierwsza deklaracja oznacza dwuwymiarową tablicę bez określenia rozmiaru, druga natomiast trójwymiarową o określonej wielkości (10*10*10). Inicjalizacja Dim tablica(,) As String = {{"a", "b"}, {"c", "d"}} Każda para nawiasów klamrowych wewnętrznych oznacza jeden wiersz (przyjmując umownie pierwszy wskaźnik jako wiersz). Zmiana rozmiaru tablicy Nowym udogodnieniem wprowadzonym do VB.NET jest możliwość zmiany statusu tablicy z statycznej na dynamiczną, przez użycie deklaracji Redim (pomimo iż podczas deklaracji podano już jakiś wymiar) np. Dim wektor(2) As Integer ReDim wektor(3) Należy pamiętać o tym, że zmiana rozmiaru powoduje utratę całej zawartości tablicy. Jeżeli chcemy zachować dotychczasowe elementy tablicy (lub ich część), stosujemy słowo kluczowe Preserve. Dim tablica() = {1, 2, 3, 4, 5, 6, 7} ‘zwiększenie rozmiaru tablicy Po tej deklaracji tablica będzie zawierać elementy: 1, 2, 3, 4, 5, 6, 7 ,0, 0, 0 i 0 (łącznie 11 elementów –zachowane wszystkie dotychczasowe elementy, a dodawane elementy umieszczane są na końcu). ReDim Preserve tablica(10) ‘zmniejszenie rozmiaru tablicy Po tej deklaracji tablica będzie zawierać dotychczasowe elementy: 1, 2, 3, 4 i 5 (łącznie 5 elementów – usuwane są elementy od góry tablicy). ReDim Preserve tablica(4) Zmiana rozmiaru tablic wielowymiarowych Możemy zmieniać tylko ostatni wymiar ! Dim tablica(,) As Integer = {{1, 2}, {3, 4}} W powyższym przykładzie zadeklarowana i zainicjowana została tablica dwuwymiarowa zawierająca dwa wiersze i dwie kolumny. Deklaracja: ReDim Preserve tablica(2, 10) jest niedozwolona bo próbuje zmienić wartość pierwszego wymiaru, ale: deklaracja ReDim Preserve tablica(1, 10) jest jak najbardziej poprawna bo wartość tego pierwszego wymiaru nie ulega zmianie. Badanie aktualnego rozmiaru tablicy Określić rozmiar (górny) tablicy można za pomocą metody GetUpperBound(numer_wymiaru): gdzie parametr numer_wymiaru oznacza numer badanego wymiaru (poczynając od zera). Rozmiar1= tablica.GetUpperBound(0) ‘rozmiar1 osiągnie 1 Rozmiar2= tablica.GetUpperBound(1) ‘rozmiar2 osiągnie 10 ReDim Preserve tablica(tablica.GetUpperBound(0), 10)