Prezentowane materiały są przeznaczone dla uczniów szkół ponadgimnazjalnych Autor artykułu: mgr Jerzy Wałaszek |
©2014 mgr
Jerzy Wałaszek
|
Tablica (ang. array) lub wektor (ang. vector) jest złożoną strukturą danych (ang. compound data structure) zbudowaną z ciągu elementów tego samego typu. W pamięci komputera elementy tablicy są ułożone kolejno jeden obok drugiego. Dostęp do elementu odbywa się poprzez numer zwany indeksem. Na podstawie indeksu, rozmiaru elementu oraz adresu początku tablicy komputer oblicza adres elementu i w ten sposób uzyskujemy do niego dostęp. We współczesnych językach programowania tablice są stosowane powszechnie do przechowywania danych podobnego rodzaju. Przy ich pomocy można zapisywać ciągi liczbowe, wyniki pomiarów różnych wielkości oraz tworzyć złożone bazy danych. Liczba zastosowań tablic jest w zasadzie ograniczona jedynie naszą wyobraźnią. Podstawową zaletą tablic jest prostota przetwarzania ich elementów. Dzięki dostępowi poprzez indeksy, elementy tablic daje się łatwo przetwarzać w pętlach iteracyjnych. |
|||||||||||
Deklarowanie tablic
Przed pierwszym użyciem każda tablica musi być zadeklarowana tak jak
wszystkie zmienne używane w programie – tablica jest zmienną
złożoną.
Deklarację tablicy umieszczamy w języku C++ na liście deklaracji zmiennych. Składnia jest następująca:
typ_danych nazwa_tablicy[liczba_elementów];
Poniżej podajemy kilka przykładów deklaracji tablic w C++:
... int a[3]; // tablica zawierająca 3 elementy typu int double x[10]; // tablica przechowująca 10 liczb typu double char c[6]; // tablica przechowująca 6 wartości znakowych ... W języku C++ indeksy tablic rozpoczynają się od 0. Ma to sens, ponieważ nazwa tablicy jest traktowana zawsze jak adres początku obszaru pamięci, w którym tablica przechowuje swoje elementy. Naturalne zatem jest, iż pierwszy element leży właśnie pod adresem tablicy. Stąd jego indeks wynosi 0, czyli nic nie musimy dodawać do adresu początku tablicy, aby uzyskać dostęp do jej pierwszego elementu. W powyższym przykładzie zadeklarowano trzy tablice a, x oraz c. Posiadają one elementy o następujących indeksach:
Tablica a : a[0] a[1] a[2]
– 3 elementy typu integer
Tablica x : x[0] x[1] x[2] x[3] x[4] x[5] x[6] x[7] x[8] x[9] – 10 elementów typu double Tablica c : c[0] c[1] c[2] c[3] c[4] c[5] – 6 elementów typu char
Zwróć uwagę, iż tablica nie posiada elementu o indeksie równym ilości elementów. Zatem jeśli zadeklarujemy np. tablicę: double Tlk[168];
to jej ostatnim elementem jest Tlk[167], a nie Tlk[168]. Odwołanie się w programie do Tlk[168] jest błędem, którego kompilator zwykle nie zgłosi, zakładając, iż programista wie co robi. Niestety, język C++ nie był tworzony z myślą o amatorach. |
|||||||||||
Inicjalizacja tablic
Często zdarza się, iż chcemy utworzyć tablicę z zadaną z góry
zawartością (np. tablica zawierająca początkowe
liczby pierwsze).
Składnia inicjalizacji tablicy w języku C++ jest następująca:
typ_elementów nazwa_tablicy = {lista_wartości_dla_kolejnych_elementów};
Zwróć uwagę, iż nie musimy podawać liczby elementów. Kompilator utworzy tyle elementów, ile podamy dla nich wartości na liście inicjalizacyjnej. Poniższy przykład tworzy tablicę 10 liczb całkowitych i wypełnia ją kolejnymi liczbami Fibonacciego. ... int fib[] = (0,1,1,2,3,5,8,13,21,33); ... |
|||||||||||
Operacje tablicowe – ćwiczenia w programowaniu
Podstawowe operacje na tablicach (poniższe
ćwiczenia zakładają, że tablica T zawiera n komórek):
Wypełnianie stałą zawartością x i wyświetlenie zawartości tablicy:
Wypełnienie tablicy kolejnymi liczbami naturalnymi:
Wypełnienie tablicy kolejnymi liczbami parzystymi:
Odczyt zawartości tablicy ze standardowego wejścia:
Przesunięcie elementów tablicy o 1 pozycję w kierunku końca:
Przesunięcie elementów tablicy o 1 pozycję w kierunku początku:
Obrót elementów tablicy w kierunku końca (ostatni element staje się pierwszym):
Obrót elementów tablicy w kierunku początku (pierwszy element staje się ostatnim):
Odwracanie kolejności elementów w tablicy:
Wstawienie nowego elementu na wybranej pozycji:
Usunięcie wybranego elementu z tablicy:
|
I Liceum Ogólnokształcące |
Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl
W artykułach serwisu są używane cookies. Jeśli nie chcesz ich otrzymywać,
zablokuj je w swojej przeglądarce.
Informacje dodatkowe