Przeczytaj
Tablice – wprowadzenie
TabliceTablice są kontenerami służącymi do przechowywania dużej ilości danych tego samego typu. W tym e‑materiale zajmiemy się tablicami statycznymitablicami statycznymi.
Podczas tworzenia tablicy statycznej należy podać jej rozmiar; nie można go później zmienić na mniejszy ani większy. Niezbędne jest również określenie, jakiego typu dane będą przechowywane w tablicy. Podobnie jak to się dzieje w przypadku rozmiaru, typ danych nie może zostać zmieniony.
Gdy tworzymy tablicę, podajemy jej nazwę, rozmiar oraz wskazujemy typ danych, które chcemy przechowywać. Definicja tablicy zapisana w pseudokodzie ma następującą postać:
W przedstawionym przykładzie tablica nosi nazwę zbior
, ma rozmiar równy 5 oraz będzie służyć do przechowywania liczb całkowitych. Określenie ma rozmiar równy 5
oznacza, że w tablicy jest miejsce na zapisanie pięciu wartości.
![Grafika przedstawia napis "zbior = " a dalej znajduje się prostokątna długa tablica składająca się z pięciu prostokątnych pól.](https://static.zpe.gov.pl/portal/f/res-minimized/Rhcxq4b3M9ZGK/1645193398/2ORinrSDmrrLwlG4ROIdbSNfoDHC3yna.png)
Każdy prostokąt na rysunku wyżej reprezentuje jeden element w tablicy zbior
. Tablica nie zawiera jeszcze żadnych danych. Przyjmijmy, że chcielibyśmy w niej zapisać liczbę 10. Jak to zrobić?
Każde miejsce w tablicy ma własny numer, nazywany indeksem. Indeksy są kolejnymi liczbami naturalnymi. W wielu językach programowania (np. C++ lub Java) indeksowanie miejsc w tablicy zaczyna się od zera.
Jeżeli zapisujemy algorytm w postaci pseudokodu, mamy dowolność co do wyboru sposobu numerowania elementów tablic (nie istnieje określająca to jednoznacznie reguła). Możemy rozpoczynać indeksowanie od liczby 0 lub 1. My będziemy indeksować tablice zaczynając od 0; poszczególnym przechowywanym elementom odpowiadają zatem następujące indeksy:
![Grafika przedstawia napis "zbior = " a dalej znajduje się prostokątna długa tablica składająca się z pięciu prostokątnych pól. Pola są ponumerowane poniżej tablicy od lewej: od zera do czterech.](https://static.zpe.gov.pl/portal/f/res-minimized/RXiReReMvbR45/1645193401/ChYgPaMBZRMsQiE8y4l1sydel4KT7z30.png)
Zapiszemy liczbę 10 na pierwszym wolnym miejscu. Tablica jest pusta, więc będzie to element o indeksie równym 0. Żeby zapisać wartość w tablicy, musimy odwołać się do jej nazwy (w tym przypadku jest nią zbior
), a następnie wewnątrz pary nawiasów kwadratowych podać numer pola, do którego chcemy się dostać. Na końcu wpisujemy znak równości oraz liczbę, którą chcemy umieścić wybranym miejscu tablicy:
Po wykonaniu polecenia zawartość tablicy będzie wyglądała następująco:
![Grafika przedstawia napis "zbior = " a dalej znajduje się prostokątna długa tablica składająca się z pięciu prostokątnych pól. Pola są ponumerowane poniżej tablicy od zera do czterech, licząc od lewej strony. W pierwszym polu z indeksem 0 wpisano liczbę 10.](https://static.zpe.gov.pl/portal/f/res-minimized/R1N2HCrIUXqoz/1645193406/1fgFiaAD3HuAqYEZFeaVWshjtAdR0unk.png)
Umieśćmy w tablicy jeszcze kilka liczb:
![Grafika przedstawia napis "zbior = " a dalej znajduje się prostokątna długa tablica składająca się z pięciu prostokątnych pól. Pola są ponumerowane poniżej tablicy od zera do czterech, licząc od lewej strony. W pierwszym polu z indeksem 0 wpisano liczbę 10. W drugim polu z indeksem 1 wpisano liczbę 66. W trzecim polu z indeksem 2 wpisano liczbę 23.W czwartym polu z indeksem 3 wpisano liczbę 89.](https://static.zpe.gov.pl/portal/f/res-minimized/RTvw83fIsKtD5/1645193409/BNXacppPpQHGH3PW68ktrr9WSTpna8YI.png)
W jaki sposób z kolei odczytywać wartości zapisane już w tablicy? Należy podać nazwę tablicy oraz indeks elementu, który chcemy odczytać. A zatem wydanie polecenia:
spowoduje wypisanie liczby 23.
Oczywiście dane w tablicy można nadpisywać. Jeżeli na miejscu o indeksie 2 nie chcemy przechowywać już liczby 23, lecz 15, postępujemy tak samo, jakby miejsce to było puste:
![Grafika przedstawia napis "zbior = " a dalej znajduje się prostokątna długa tablica składająca się z pięciu prostokątnych pól. Pola są ponumerowane poniżej tablicy od zera do czterech, licząc od lewej strony. W pierwszym polu z indeksem 0 wpisano liczbę 10. W drugim polu z indeksem 1 wpisano liczbę 66. W trzecim polu z indeksem 2 wpisano liczbę 15. W czwartym polu z indeksem 3 wpisano liczbę 89.](https://static.zpe.gov.pl/portal/f/res-minimized/RQK0matCcUVpz/1645193412/24EYbiwigYsNYyj69hFnFZI2ym3WEvzs.png)
Poruszanie się po tablicy
Wiemy już, czym są tablice. Teraz zastanówmy się, w jaki sposób można się po nich poruszać, czyli przechodzić od jednego elementu do innego.
Do przeglądania i przetwarzania tablic zazwyczaj wykorzystywana jest pętla licznikowa dla
. Jeżeli chcemy odczytać lub zapisać elementy zbioru o znanym rozmiarze, taka pętla sprawdzi się idealnie. Ponieważ liczba elementów tablicy statycznej jest z góry określona, a indeksy są kolejnymi liczbami naturalnymi, dzięki pętli dla
możemy z łatwością przechodzić od jednego elementu zbioru do innego.
Najprostszym przykładem takiej operacji jest wypisanie wszystkich liczb znajdujących się w tablicy.
Używając pętli dla
musimy pamiętać o dwóch ważnych rzeczach. Po pierwsze, indeksy tablic w pseudokodzie mogą zaczynać się zarówno od zera, jak i jedynki. My zadecydowaliśmy, że tablica będzie indeksowana od wartości 0.
Drugie zagadnienie jest związane z pierwszym. Skoro indeksy zaczynają się od zera, ostatni element tablicy nie jest oznaczony numerem takim jak rozmiar tablicy, lecz mniejszym od tej wartości o 1. Jeżeli spróbujemy dostać się do elementu o nieistniejącym indeksie (większym niż długość tablicy minus 1), działanie programu zakończy się komunikatem o błędzie.
Słownik
fragment ciągu składający się z elementów ułożonych bezpośrednio po sobie, w kolejności rosnącej, czyli w ten sposób, że każdy kolejny element jest większy od poprzedniego
ciąg powstały przez wybranie określonej liczby elementów z ciągu występujących bezpośrednio po sobie
kontener (struktura danych) służący do przechowywania danych (wartości) tego samego typu; każdy element ma określony indeks (kolejny numer); w pamięci komputera elementy tablicy są ułożone kolejno jeden obok drugiego
tablica, której rozmiar jest definiowany w programie; rozmiar ten musi więc być podany jako wartość liczbowa, nazwa stałej (const) lub jako wyrażenie zbudowane z wartości liczbowych i stałych