Algorytmy i struktury danych
Laboratorium 3
Tablice
Tablica jest złożoną strukturą danych, zawierającą elementy tego samego typu i zajmującą
ciągły obszar w pamięci.
Na rys.1 jest pokazana tablica liczb całkowitych o nazwie c.
-45
6
0
-89
1465
c[0]
c[1]
c[2]
c[3]
c[4]
Nazwa tablicy
numer elementu
wewnątrz tablicy
Rys.1 Tablica składająca się z 5-ciu elementów
Tablica zawiera 5 elementów. Pierwszy element każdej tablicy (w języku C) , to jest element
zerowy. Pierwszy element tablicy c wybieramy podając c[0], drugi element – c[1], piąty
element – c[4], więc ogólnie odwołanie się do i – tego elementu tablicy c jest zapisywane jako
c[i-1].
Numer pozycji elementu (podawany w nawiasach kwadratowych) nazywamy
indeksem. Indeks powinien być liczbą całkowitą lub wyrażeniem całkowitym.
Wartość c[0] jest równa –45, wartość c[1] jest 6, c[4] jest 1465. Żeby wydrukować
sumę wartości pierwszych trzech elementów tablicy c, trzeba napisać :
cout << c[0] + c[1] + c[2] << endl;
Żeby podzielić wartość piątego elementu tablicy c przez 2 i wynik przypisać zmiennej x,
trzeba napisać
x = c[4] / 2;
Deklaracja tablicy
typ_elementu_tablicy nazwa_tablicy [rozmiar];
np.:
int tab[8];
// 8-mio elementowa tablica liczb całkowitych
float b[20];
// 20-to elementowa tablica liczb rzeczywistych
char tekst[5];
// 5-cio elementowa tablica znaków
Elementy tablicy
Jeżeli zdefiniujemy tablicę:
int tab[5];
Algorytmy i struktury danych
Laboratorium 3
Tablice
to do jej poszczególnych elementów odwołujemy się następująco:
tab[0] tab[1]
tab[2]
tab[3]
tab[4]
Numeracja poszczególnych elementów tablicy zaczyna się od zera. Tablica n-elementowa
ma elementy o indeksach od 0 do n-1.
Inicjalizacja wartości tablicy
Podczas deklaracji tablicę można zainicjalizować dowolnymi wartościami.
np.:
int tab[5] = {2, 8, 4, -2, 10};
//rozmiar tablicy równa się liczbie elementów na liście inicjalizującej
int tab[5] = {2, 8, 2};
//rozmiar tablicy jest większy od liczby elementów na liście
inicjalizującej – pozostałe elementy tablicy uzupełnione są wartością 0
int tab[5] = {2, 8, 2, -2, 3,8,12};
// BŁĄD - rozmiar tablicy jest mniejszy od liczby elementów na liście
inicjalizującej – przekroczenie rozmiaru tablicy.
Elementy tablicy można również wypełnić za pomocą operacji przypisania.
np.:
int tab[5];
tab[0]=2;
tab[1]=8;
tab[2]=4;
tab[3]=-2;
tab[4]=10;
Do inicjalizacji elementów tablicy można zastosować pętle for.
np.:
int tab[8];
for(int i=0;i<8;i++)
{
tab[i]=i+1;
i++;
}
cout<<”Wartość i= ”<<i<<endl;
Algorytmy i struktury danych
Laboratorium 3
Tablice
Zadania
1. Narysuj schemat blokowy algorytmu wpisującego do tablicy 100 elementowej
wartości: 0,10,20,30,…
2. Napisz program w C++ do schematu blokowego z powyższego zadania.
3. Stwórz tablicę 10-cio elementową i zainicjalizuj ją dowolnymi wartościami. Napisz
program
obliczający sumę wszystkich elementów tablicy,
obliczający sumę tylko parzystych elementów tablicy,
obliczający średnią arytmetyczną dodatnich elementów tablicy,
zmieniający znak poszczególnych elementów tablicy,
znajdujący minimalną wartość spośród wszystkich elementów tablicy oraz
podający jej pozycję,
znajdujący maksymalną wartość spośród wszystkich elementów tablicy oraz
podający jej pozycję,
obliczający ilość nieparzystych elementów tablicy.
int tab[8], i
i = 0
i < 8
tab[i] = i+1
i++
start
stop
i ,tab[i]
NIE
TAK