Podręcznik
2. Tablice wielowymiarowe
W języku C++ możliwa jest także implementacja tablic wielowymiarowych. Tablice wielowymiarowe statyczne w języku C++ to struktury danych pozwalające przechowywać elementy tego samego typu w wielu wymiarach. Możliwe jest tworzenie tablic o w zasadzie dowolnym zagnieżdżeniu.Ogólna postać definicji tablic wielowymiarowych jest następująca:
typ_elementów nazwa_zmiennej [rozmiar 1] [rozmiar 2]...[rozmiar n];
gdzie rozmiar 1, rozmiar 2, ... , rozmiar n - są odpowiednimi zakresami indeksów dla poszczególnych wymiarów. Czyli, jak wspomnieliśmy - nic nowego.
int tab[4][5][8];
Tablicę dwuwymiarową możemy zdefiniować w następujący sposób:
typ_danych nazwa_tablicy[liczba_wierszy][liczba_kolumn];
gdzie liczba_wierszy - liczba wierszy w tablicy, liczba_kolumn - liczba kolumn w tablicy.
Inicjalizacja tablicy może być połączona z jej definicją analogicznie jak w przypadku tablicy jednowymiarowej.
const int w=3, k=4;
int tab[w][k]={2,3,8,6,4,2,9,0,7,1,12,5};
const int w=3, k=4;
int tab[w][k]={0};
Poniżej przedstawiono nagranie demonstrujące deklarację tablicy dwuwymiarowej, wypełnianie jej przykładowymi danymi oraz drukowanie zawartości tablicy na ekranie.
Szczególnym przypadkiem tablic dwuwymiarowych są tablice kwadratowe, które mają tyle samo kolumn i wierszy, więc można wyróżnić w nich dwie przekątne: główną przekątna i drugą przekątną.
Możemy wyróżnić elementy znajdujące się na głównej przekątnej.
oraz elementy znajdujące się na drugiej przekątnej.
Poniżej przedstawiono przykładową aplikację, która umożliwia wydrukowanie na ekranie wartości z głównej przekątnej tablicy oraz z drugiej przekątnej.
Wartość możemy wydrukować przy pomocy pojedynczej pętli for. Nie ma konieczności wykorzystywania dwóch pętli. Jeśli mamy tablicę tab[n][n] i chcemy wydrukować elementy jej głównej przekątnej, robimy to tak:
for (int i = 0; i < n; i++)
cout << a[i][i] << "\t";
for (int i = 0; i < n; i++)
cout << a[i][n-1-i] << "\t";
- elementy leżące nad główną przekątną,
- elementy leżące pod główną przekątną,
- elementy leżące pod drugą przekątną,
- elementy leżące nad drugą przekątną,
- elementy leżące nad obiema przekątnymi,
- elementy leżące pod obiema przekątnymi,
- elementy leżące na prawo od obu przekątnych,
- elementy leżące na lewo od obu przekątnych,
- elementy leżące na obwodzie tablicy oraz poza obwodem.
To te najbardziej charakterystyczne. Zapewne jest dużo więcej możliwości. W kolejnym przykładzie zademonstrujemy w jaki sposób "przechodzić" po tych charakterystycznych elementach. Przykład demonstruje w jaki sposób wydrukować elementy znajdujące się nad główną przekątną.
Analogicznie jak w przedstawionym przykładzie można "przechodzić" po innych charakterystycznych elementach tablicy kwadratowej. Należy przeprowadzić w każdym przypadku analizę w jaki sposób zmieniają się indeksy kolumn oraz wierszy.