Tablice jednowymiarowe można porównać do osi liczbowej. Aby odwołać się do jakiegoś elementu, wystarczy podać jedną współrzędną.
Tablice tego typu deklarujemy następująco:
typ_komórek_tablicy nazwa_tablicy [ ilość elementów tablicy ] ;
np.:
int tablica[1000];
czyli tablica, która może przechowywać tysiąc elementów typu całkowitego,
char znaki[1001];
czyli tablica, która może przechowywać 1000 znaków + znak końca tablicy.
Operację tą można zrobić tylko przy deklaracji tablicy (przy tworzeniu tablicy). Operację nadania wartości tablicy przedstawię na przykładzie pięcio-elementowej tablicy liczb całkowitych:
int tab[5] = {1, 3, 90, 100000, 9};
Oznacza to, że w pierwszej komórce przechowywana jest liczba 1, w drugiej 3 itd..
Jeśli przypiszemy do tablicy mniejszą ilość elementów niż wielkość tablicy, to pozostałe komórki będą miały wartość zero:
int tab[5] = {1, 3};
Powyższy zapis jest równoważny z zapisem:
int tab[5] = {1, 3, 0, 0, 0};
Przypisanie do tablicy pustego nawiasu oznaczać będzie, że wszystkie komórki będą miały wartość zero.
Warto wiedzieć, że jeśli tablicę zadeklarujemy jako globalną, to elementy tablicy zostaną także wyzerowane.
Najważniejszą zasadą jest to, że komórki numerujemy od zera. Numery te nazywamy indeksami tablicy. Oznacza to, że jeśli stworzyliśmy tablicę 10-elementową, to numer pierwszej komórki jest równy zero, drugiej jeden, ..., a ostatniej dziewięć:
$$\underbrace{[0][1][2]\cdots[n-1]}_{indeksy\ komorek\ n-elementowej\ tablicy}$$Odwołujemy się do komórek tablicy podając jej indeks w nawiasie kwadratowym, np:
int tab[10]; //deklaracja tablicy
tab[0] = 34; //przypisanie do pierwszej komórki wartość 34
tab[9] = 100; //przypisanie do ostatniej komórki wartość 100
cout<<tab[0]; //wyświetlenie zawartości pierwszej komórki
//tablicy (czyli 34)
Pamiętaj!!! Gdy odwołujesz się do ostatniej komórki tablicy n-elementowej, to jej indeks jest równy n-1.
Napisz program, który nada następujące wartości początkowe tablicy 5-elementowej: $$1,\ 2,\ 5,\ 0,\ 0$$ a następnie wyświetli najpierw wartości parzyste tej tablicy, a następnie nieparzyste.
Rozwiązanie
#include <iostream>
using namespace std;
int main()
{
int tab[5] = {1, 2, 5};
for(int i=0;i<5;i++)
//jeśli wartość tablicy jest parzysta
if(tab[i]%2==0)
cout<<tab[i]<<" ";
for(int i=0;i<5;i++)
//jeśli wartość tablicy jest nieparzysta
if(tab[i]%2)
cout<<tab[i]<<" ";
return 0;
}
Zauważ, że przeszukujemy tablicę o indeksach od 0 od 4, a więc w nawiasie kwadratowym tablicy wstawiliśmy licznik "i", który przyjmuje właśnie takie wartości.