Więcej danych – czyli tablice jednowymiarowe w C++
Do tej pory w poprzednich artykułach na temat C++, operowaliśmy na zwyczajnych zmiennych które przechowywały jakieś dane. Zazwyczaj były to dane liczbowe, ciągi znaków lub wartości typu bool, true oraz false (prawda, fałsz). Ale co zrobić kiedy mamy napisać program operujący na tysiącu liczb? Przecież nie zadeklarujemy dla każdej z nich osobnej zmiennej… I właśnie w takim przypadku wykorzystuje się tablice.
Praktycznie każdy język programowania wysoko pozimowego pozwala wykorzystywać tablice, tak zwane struktury złożone z jednakowych elementów tego samego typu. Najprostszą jednowymiarową tablice w matematyce określa się mianem wektora. Można ją sobie wyobrazić w ten sposób (gdzie N to numer ideksu ostatniego elementu tablicy) UWAGA: Elementy tablicy indeksowane są od 0:
x1 | x2 | x3 | … | xN |
Tak samo są przechowywane dane w tak zwanych tablicach jednowymiarowych. W języku C++ deklaruje się je w następujący sposób:
typ_danych_jakie_bedziemy_przechowywac nazwa_tablicy[ilosc_elementow];
int tab[10]; //tablica przechowująca 10 liczb typu int
int a = 6; char tablica[a]; //tablica przechowująca 6 znaków typu char
int tab[10] = {1,2,3,4,5,6,7,8,9,10}; //deklaracja oraz inicjalizacja tablicy
Zadeklarowane powyżej tablice można sobie wyobrazić w następujący sposób:
x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | x10 |
Oczywiście nie będą one zawierały żadnych danych dopóki nie zostaną zainicjalizowane tak jak miało to miejsce w ostatnim przykładzie.
Do odczytu i zapisu danych w tablicach najczęściej używa się pętli iteracyjnej FOR. Przejrzyjmy na przykładzie jak to się odbywa:
#include <iostream> using namespace std; int main() { int tab[5] = {1,2,3,4,5}; for(int i = 0;i<5;i++) cout << tab[i]; return 0; }
Zapis danych w tablicy jednowymiarowej:
for(int i = 0;i<5;i++) cin >> tab[i]; //odczytaj liczbę z klawiatury i zapisz to tablicy o indeksie i (i oczywiście oznacza tutaj zmienną która przechowują jakąś liczbę, w naszym wypadku będą to liczby od 0 do 5)
Odczy danych z tablicy jednowymiarowej (w tym przypadku chcemy wypisać na ekranie liczby zapisane w poszczególnych komórkach):
for(int i = 0;i<5;i++) cout << tab[i];