Tablice w wielu językach programowania są jednymi z najprostszych i najczęściej wykonywanych struktur służących do przetrzymywania danych.
Dowiedz się o nich kilku ciekawych rzeczy, a podczas nauki podstaw programowania nic Cię nie zaskoczy.
Wiesz już zapewne że zmienne służą do zapisywania pojedynczych danych, ale czasem trzeba zapisać kilka wartości tego samego rodzaju. Można oczywiście zapisać je w osobnych zmiennych i nie jest to nic złego, ale można też zrobić to sprytniej…
można użyć tablicy zmiennych.
Tablice służą do przechowywania kilku wartości jednocześnie, przy czym tych wartości może być 0, 1, lub więcej.
Przykład z życia
Tablica zmiennych jest jak segregator do wpinania dokumentów.
faktury=[];
można do niej włożyć dowolną liczbę wartości (elementów).
faktury = [ fakturaFV1_2018, fakturaFV2_2018 ];
Można do niego dowolną liczbę kopert dołożyć
faktury = faktury + [ fakturaFV3_2018, fakturaFV4_2018, fakturaFV5_2018 ];
można kilka kopert wyjąć
faktury = faktury - [fakturaFV3_2018, fakturaFV5_2018];
Z tablic warto skorzystać kiedy dla szeregu wartości chcemy wykonać jakieś operacje.
zaksieguj(faktury);
Trochę teorii
Zgodnie z definicją, tablica to taki kontener służący do przetrzymywania danych, zawierający zestaw par „klucz => wartość”, lub „indeks => wartość”.
nazwyPanstw = [ 'pl' => 'Polska', 'ru' => 'Rosja', 'cn' => 'Chiny' ];
W przykładzie wyżej kluczami są ‚pl’, ‚ru’ i ‚cn’, a odpowiadającymi im wartościami są nazwy państw.
Tworząc tablicę można pominąć podawanie kluczy i określić jedynie wartości. Wówczas nadane im zostaną klucze / indeksy automatycznie.
Tablice mogą mieć stałą liczbę elementów, z góry ustaloną (wtedy nazywamy taką tablicę statyczną):
dniTygodnia = [ 'poniedziałek', 'wtorek', 'środa', 'czwartek', 'piątek', 'sobota', 'niedziela' ];
lub tablica może być rozszerzalna i kurczliwa (tablica dynamiczna):
zadaniaDoWykonania = [ 'nauczyć się programować', 'zrobić kilka projektów', 'znaleźć fajną pracę' ];
Wartościami poszczególnych elementów mogą też być inne tablice. W takim przypadku mamy do czynienia z tablicą wielowymiarową:
danePanstw = [ 'pl' => [ 'nazwa' => 'Polska', 'waluta' => 'PLN', 'jezyk' => 'polski' ], 'de' => [ 'nazwa' => 'Niemcy', 'waluta' => 'EUR', 'jezyk' => 'niemiecki' ], 'at' => [ 'nazwa' => 'Austria', 'waluta' => 'EUR', 'jezyk' => 'niemiecki' ] ];
Definiowanie tablic
Do definiowania tablic używamy najczęściej słowa array (z angielskiego: tablica, szyk, szereg, lub macierz), lub samych nawiasów kwadratowych (choć jest kilka wyjątków).
W celu zdefiniowania tablicy musimy poinstruować komputer, że we wskazanej zmiennej będziemy trzymać tablicę, czyli zestaw zmiennych.
Aby to zrobić ustalamy typ zmiennej jako „tablicowy”.
dniMiesiaca = array();
lub
dniMiesiaca = [];
Możemy też od razu zdefiniować początkowe wartości tej tablicy
dniRobocze = array( 'poniedziałek', 'wtorek', 'środa', 'czwartek', 'piątek' );
W nawiasie najczęściej podajemy wartości oddzielone przecinkami.
Gdy nie podamy żadnych danych powstanie pusta tablica, bez zawartości, którą trzeba będzie uzupełnić.
Tablice ułatwiają życie
Wyobraź sobie sytuację, w której robisz mechanizm wysyłający wiadomość na wskazany e-mail z powiadomieniem o złożonym zamówieniu w sklepie internetowym.
wyslijPowiadomienieOZamowieniu(adresEmail)
Jak umożliwić wykorzystanie go do wysyłki powiadomienia na dowolną liczbę adresów email, a nie tylko jeden?
Dosyć często w pracy zawodowej programisty spotyka się przypadki, w których zamiast pojedynczej wartości w zmiennej warto zastosować mechanizm przekazania kilku wartości na raz.
Jeśli jest taka możliwość, warto w takich sytuacjach zastosować właśnie tablicę zmiennych zamiast pojedynczej zmiennej.
wyslijPowiadomienieOZamowieniu(tablicaAdresowEmail)
Wysyłając maila można dodać do wiadomości kilku adresatów, więc warto taką możliwość przewidzieć także mechanizmie z przykładu wyżej.
Jeśli tablica tablicaAdresowEmail zawierać będzie tylko jedną pozycję, wyśle się email tylko pod ten adres, jeśli więcej – wiadomości zostaną także inne osoby.
Reasumując, jeśli w dowolnym miejscu przewidujesz, że przekazywanych wartości może być więcej niż jedna, najlepiej jest zastosować tablicę.
Odczytywanie danych z tablicy
Wiesz już że tablicy używamy do przechowywania wartości. Skoro je tam zapisaliśmy, to czasem musimy je stamtąd odczytać.
Jak się to robi?
Podaje się klucz (lub indeks) elementu tablicy który nas interesuje.
Zapisując dane w tablicy „wkładamy” je w jej poszczególne szufladki oznaczone kluczami (jeśli je podaliśmy), lub indeksami.
Jeśli chcemy te dane odczytać, musimy wskazać identyfikator szufladki, której zawartość jest nam potrzebna.
Jeśli w tablicy znajdują się pary „klucz => wartość” sprawa jest prosta:
nazwaPanstwa = nazwyPanstw['pl'];
Jeśli tablica nie posiada narzuconych kluczy ani indeksów, wówczas zostały one nadane automatycznie zgodnie z kolejnością w której dodane zostały wartości. Pierwszy element tablicy znajduje się w szufladce o indeksie 0, drugi w szufladzie o indeksie 1 itd.
piatek = dniTygodnia[4];
Jeśli interesuje nas dziesiąty element, musimy podać indeks 9, jeśli 1560: podajemy indeks 1559, czyli zawsze o 1 mniejszy niż numer pozycji w tablicy.
Jeśli tablica dniTygodnia ma 7 elementów, to żeby wskazać ostatni z nich musimy poprosić o wartość dniTygodnia[6].
Ćwiczenie
Masz tablicę miesiacePoAngielsku zawierającą tłumaczenia nazw wszystkich miesięcy od stycznia do grudnia.
Jak wyciągnąć z tablicy tłumaczenie nazwy „czerwiec”?