![]() |
![]() ![]() ![]() ![]()
Autor artykułu: mgr Jerzy Wałaszek, wersja 1.0 |
©2008 mgr
Jerzy Wałaszek |
Tablica (ang. array) jest zmienną złożoną, która składa się z ciągu elementów tego samego typu. W pamięci komputera tablica zajmuje jeden, spójny obszar a jej elementy są ułożone kolejno obok siebie. Element tablicy nazywamy komórką (ang. cell). Komórki w tablicy są ponumerowane. Numer komórki nazywamy indeksem (ang. index). W języku C++ wszystkie indeksy komórek tablic rozpoczynają się zawsze od zera.
Tablicę tworzymy następująco:
typ_elementów nazwa_tablicy[liczba_komórek];
Przykłady:
int a[10];
Utworzyliśmy tablicę przechowującą 10 liczb całkowitych typu int. Tablica nazywa się a. W tablicy a mamy następujące komórki:
a[0] - pierwsza komórka ma indeks równy 0
a[1] - druga komórka
a[2]
a[3]
...
a[8] - przedostatnia komórka
a[9] - ostatnia komórka
double x[1000];
Utworzyliśmy tablicę przechowującą 1000 liczb zmiennoprzecinkowych. Tablica nosi nazwę x. Mamy w niej następujące komórki:
x[0] - pierwsza komórka
x[1] - druga komórka
...
x[998] - przedostatnia komórka
x[999] - ostatnia komórka
Zauważ, iż tworząc tablicę n elementową, indeks ostatniej komórki wynosi n-1, a nie n. Należy na ten fakt zwrócić szczególną uwagę, ponieważ początkujący programiści w C++ często popełniają ten błąd i odwołują się w swoich programach do nieistniejącej komórki. W jej miejscu komputer mógł umieścić inną zmienną, co w efekcie prowadzi do trudnych do wykrycia błędów. |
Po utworzeniu tablicy do jej komórek odwołujemy się jak do zwykłych zmiennych:
a[5] = 137; // w komórce o indeksie 5 umieszczamy
liczbę 137
a[8] = a[0] + a[2] * 3;
cout << x[12] << endl;
W porównaniu do zwykłych zmiennych tablice posiadają większą pojemność informacyjną. Mogą jednocześnie przechowywać wiele liczb (lub innych danych). Drugą zaletą jest to, iż indeksy komórek mogą być dowolnym wyrażeniem całkowitym, co pozwala automatyzować przetwarzanie danych w tablicy. Poniżej przedstawiamy przykładowe algorytmy tablicowe.
Zadanie polega na wpisaniu do wszystkich komórek tablicy tej samej wartości. Realizujemy je w pętli, która przebiega przez indeksy kolejnych komórek:
|
|
W tym przypadku do komórek tablicy zapisujemy wartość uzależnioną od wartości indeksu komórki. Poniższy przykład umieszcza w komórkach tablicy kolejne wielokrotności liczby 5.
|
|
Element e chcemy wstawić do tablicy a[] na pozycję p. Jednocześnie nie chcemy tracić elementu, który już jest na tej pozycji. Jeśli to możliwe, elementy tablicy poczynając od pozycji p w górę powinny być rozsunięte, a nowy element wstawiony na zwolnioną w ten sposób pozycję. Ostatni element tablicy jest zawsze tracony - nie ma go gdzie przesunąć.
Dane wejściowe:
n - liczba elementów tablicy
a[] - tablica
e - wstawiany element
p - pozycja wstawiania
Dane wyjściowe:
a[] - tablica z elementem e wstawionym na pozycji p
Lista kroków:
K01: Dla i = n-2, n-3,...,p:
wykonuj a[i + 1] ← a[i]
K02: a[p] ← e
K04: Zakończ
Program:
|
|
Zwróć uwagę, iż 18 oraz następne wielokrotności 3 wciąż pozostały w tablicy po wstawieniu 127 na pozycji 5. Zniknął natomiast element 30.
Z pozycji p w tablicy a[] chcemy usunąć element. Elementy o indeksach większych od p przesuwamy o jedną pozycję w dół. W ostatniej komórce tablicy umieszczamy 0.
Dane wejściowe:
n - liczba elementów tablicy
a[] - tablica
p - pozycja usuwania
Dane wyjściowe:
a[] - tablica z usuniętym elementem na pozycji p
Lista kroków:
K01: Dla i = p, p+1,...,n-2:
wykonuj a[i] ← a[i + 1]
K02: a[n - 1] ← 0
K04: Zakończ
Program:
|
|
![]() | 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