• Nie Znaleziono Wyników

Ćwiczenie VB6.00 Tablice, wstęp Gdy ro

N/A
N/A
Protected

Academic year: 2021

Share "Ćwiczenie VB6.00 Tablice, wstęp Gdy ro"

Copied!
3
0
0

Pełen tekst

(1)

Copyright © 2014, Janusz Bonarowski 1

Ćwiczenie VB6.00 Tablice, wstęp

Gdy rośnie liczba danych do przechowywania (i przetworzenia, analizy, ...) - pojawiają się nowe struktury danych (moŜna by powiedzieć nowe „pojemniki” na dane, bardziej pojemne niŜ zwykła zmienna) zwane tablicami.

Tablica moŜe przechowywać wiele danych.

• Wszystkie one będą tego samego typu,

• będą miały tę samą nazwę (nazwę tablicy),

a do poszczególnych danych zawartych w tablicy odwołujemy się za pomocą nazwy tablicy i indeksów (kolejnych numerów tych danych w tablicy: nazwa_tablicy(index)).

Tablice mogą być jednowymiarowe (np. wektor), dwuwymiarowe (np. szachownica) i wielowymiarowe (np.

trójwymiarowy prostopadłościan, ...).

Tworzenie tablicy

Tablicę tworzymy przez jej deklarowanie.

Tablicę deklarujemy tak jak zmienną,

• musimy określić jej nazwę,

• liczbę wymiarów,

• rozmiary tych wymiarów,

• typ danych w tablicy.

Elementy tablicy w kaŜdym wymiarze numerowane są od zera, 0.

Składniki deklaracji tablicy:

• Dim – słowo kluczowe,

• nazwa_tablicy - zasada ta sama jak przy tworzeniu nazwy zmiennej.

• liczba wymiarów – wynika z liczby elementów w nawiasie oddzielonych przecinkami.

nazwaTablicy(9) – tablica jednowymiarowa, nazwaTablicy(3, 5) – tablica dwuwymiarowa, nazwaTablicy(3,10,18) – tablica trójwymiarowa.

• rozmiary tych wymiarów – wartości liczb w nawiasie

nazwaTablicy(9) – jednowymiarowa o 10 elementach numerowanych od 0 do 9, nazwaTablicy(5, 4) dwuwymiarowa o 6 wierszach od 0 do 5 i 5 kolumnach od 0 do 4.

nazwaTablicy(3,10,19) – trójwymiarowa (jakby prostopadłościan) o 4 wierszach numerowanych od 0 do 3, 11 kolumnach numerowanych od 0 do 10 i 20 warstwach (poziomach) od 0 do 19.

Przykłady

• Dim studenci(14) As String

Tablica jednowymiarowa, przechowująca nazwiska UWAGA: 15 studentów.

Odwołanie do pierwszego elementu tablicy to: studenci(0).

• Dim przebieg(6) As Integer

tablica jednowymiarowa, 7 (siedmio) elementowa, przechowująca przebiegi dzienne samochodu w km, rejestrowane w kolejnych dniach tygodnia. Odwołanie do przebiegu w pierwszym dniu tygodnia to: przebieg(0).

• Dim Dane(5, 4) As Integer

tablica dwuwymiarowa, 6 (sześciu) wierszach i 5 (pięciu) kolumnach, przechowująca liczby całkowite, rys. 1.

Rysunek 1. Tablica Dane(5, 4) 6 wierszy i 5 kolumn;

element Dane(3,2) przechowuje wartość 16

(2)

Copyright © 2014, Janusz Bonarowski 2

Tablice statyczne, tablice dynamiczne

Tablice statyczne

Tablice deklarowane jak w przykładach powyŜszych:

Dim studenci(14) As String Dim przebieg(6) As Integer Dim Dane(5, 4) As Integer

nazywamy deklaracją statyczną tablic, posiadają one z góry określoną i niezmienną liczbę elementów – tablica studenci(14) ma 15 elementów, tablica przebieg(6) ma 7 elementów, a tablica Dane(5,4) ma 30 elementów (6 wierszy x 5 kolumn = 30).

Bywają jednak sytuacje, w których nie potrafimy z góry określić ile elementów będzie trzeba zgromadzić (przechowywać) podczas pracy programu - czyli nie wiemy jaki rozmiar tablicy trzeba zadeklarować.

Rozwiązaniem „brutalnym” moŜe być zadeklarowanie tablicy z nadmiarem.

Np. rozmiar tablicy przechowującej nazwiska studentów w pojedynczej grupie studenckiej moŜna przyjąć za 100, czyli deklaracja tablicy na nazwiska będzie miała postać:

Dim studenci(99) As String

Przyjmowanie takiej strategii (na wszelki wypadek zadeklarować większą tablicę) wiąŜe się jednak

z niepotrzebnym zwiększaniem rozmiaru pliku wykonawczego (exe), poniewaŜ deklarując tablicę 100 elemen- tową na stałe - powiększamy (na stałe) rozmiar zarezerwowanej dla programu pamięci na dane.

Aby uzyskać największy index tablicy naleŜy uŜyć funkcji UBound(studenci).

Funkcja ta zwraca liczbę elementów zawartych w tablicy – 1.

Dla tablic wielowymiarowych moŜemy uzyskać największy index w kaŜdym wymiarze.

Np. dla tablicy Dane(10, 7, 15) naleŜy posłuŜyć się funkcją UBound w następujący sposób:

UBound(Dane, 1) – zwraca 10, UBound(Dane, 2) – zwraca 7, UBound(Dane, 3) – zwraca 15,

Tablice dynamiczne - instrukcja ReDim i słowo kluczowe Preserve

Gdy nie znamy liczby elementów w tablicy moŜemy zadeklarować tablicę dynamiczną. Aby pracować z tablicą dynamiczną naleŜy

1. zadeklarować jej nazwę i typ, bez podawania rozmiaru, np.

Dim studenci() As String

2. a dalej w programie ustalić wielkość tablicy instrukcją ReDim, np. ustalenie wielkości tablicy na 20 elementów:

ReDim studenci(19) ‘Tablica zostanie opróŜniona ReDim Preserve studenci(19) ‘Tablica zachowa wartości

Przykład

Powiększ tablicę dynamiczną kolejno do 3 elementów i napełnij ją danymi: Jan, Adam, Piotr

Dim studenci() As String ReDim studenci(0)

studenci(0) = ”Jan”

ReDim studenci(1) studenci(1) = ”Adam”

ReDim studenci(2) studenci(2) = ”Piotr”

Dim studenci() As String ReDim studenci(0)

studenci(0) = ”Jan”

ReDim Preserve studenci(1) studenci(1) = ”Adam”

ReDim Preserve studenci(2) studenci(2) = ”Piotr”

Wersja zła!

KaŜda instrukcja ze słowem kluczowym ReDim powoduje utratę uprzednio umieszczonych w tablicy wszystkich danych, a kaŜdy element tablicy

otrzymuje wartość zero lub null.

Wersja dobra!

KaŜda instrukcja ReDim ze słowem kluczowym Preserve powoduje powiększenie tablicy

i zachowanie wartości uprzednio umieszczonych.

(3)

Copyright © 2014, Janusz Bonarowski 3 Jeśli potrafimy z góry określić nowy rozmiar tablicy wtedy zamiast krokowo powiększać jej rozmiar o 1 jak w przykładzie powyŜej, moŜna powiększyć tablicę jednym poleceniem:

Dim studenci() As String

ReDim studenci(0) studenci(0) = ”Jan”

ReDim Preserve studenci(2) ‘Preserve uŜyto aby zachować w tablicy ”Jan”

studenci(1) = ”Adam”

studenci(2) = ”Piotr”

Uwaga! Instrukcja ReDim nie wymaga podawania typu wartości.

Podajemy jedynie nowy maksymalny indeks.

Decyzja, którą wersję instrukcji ReDim wybrać (ze słowem lub bez słowa kluczowego Preserve) zaleŜy od tego, czy zamierzamy - czy nie zamierzamy opróŜniać tablicę przy zmianie jej wielkości.

Inną waŜną uwagą przy zwiększania rozmiaru tablic jest to, Ŝe zmianie moŜe ulegać tylko ostatni wymiar tablicy, tzn. tablicę Dane(3, 4, 5) moŜemy zwiększyć tylko do np. Dane(3, 4, 100).

Instrukcja: ReDim Dane(300, 4, 5) nie jest moŜliwa.

Cytaty

Powiązane dokumenty

[r]

Jeśli jednak szukamy tylko wartości funkcji w określonym punkcie z , to prostsza jest metoda Lagrange’a:..

Tablicę napełniać za pomocą funkcji InputBox() liczbami całkowitymi, a następnie wizualizować w obiekcie ListBox i/lub TextBox [1]. Propozycja formularza

Wykonać aplikację napełniającą tablicę jednowymiarową nieznaną (dowolną) liczbą elementów zawierającą liczby całkowite , np!. dzienne przebiegi samochodu rejestrowane

Wszystkie one będą tego samego typu, będą miały tę samą nazwę (nazwę tablicy), a do poszczególnych danych zawartych w tablicy odwołujemy się za pomocą indeksów

Ć wiczenie VB6.00 Tablice, listy, instrukcja cyklu

[r]

W przypadku podania błędnej danej skrypt ma wyświetlić komunikat ”Bledne dane!” Dla wczytanej cyfry 1 skrypt ma obliczać sumę 2 liczb wczytanych z klawiatury. 2 tak, aby