TABLICE C++
Definicja tablicy
Deklaracja tablicy Typ_elementow nazwa_tablicy [liczba elementów]
Przykłady int tablica_liczb [10]; int tablica [6] = {3,5,2,1}; //dokonanie inicjalizacji
Zapis int tablica[6] = {3,5,2,1}; jest jednoznaczny z: int tablica[6] = {3,5,2,1,0,0};.
int tablica [6] = {0};
int tablica [ ] = {2,4,8,16}; Otrzymamy cztero-elementową tablicę wypełnioną odpowiednimi wartościami.
Sposoby odnoszenia się do konkretnych elementów tablicy: int tablica_liczb [4] = {0}; //tablica zawiera same zera tablica_liczb [0] = 34; //zapisanie wartości 34 pod indexem 0 tablica_liczb [1]++; //inkrementacja wartości spod indexu 1
tablica_liczb [2] -= 23; //zmniejszenie wartości zapisanej pod indexem 2 o 23 tablica_liczb [3] = tablica_liczb [0] + 7; //pod indexem 3 umieszczamy wartość elementu z indexu 0 powiększonego o 7 //tablica_liczb [4] = 34; UWAGA!! tablica zawiera tylko 4 elementy!
Tablice znakowe Tradycyjnie: char string [30];
Aby wstawić do stringu jakiś konkretny text należy podstawić pod każdy z jego indexów odpowiednie znaki. string [0] = 'd'; string [14] = 'e'; string [1] = 'o'; string [15] = 'g'; string [2] = 'w'; string [16] = 'o'; string [3] = 'o'; string [17] = ' '; string [4] = 'l'; string [18] = 'n'; string [5] = 'n'; string [19] = 'i'; string [6] = 'y'; string [20] = 'e'; string [7] = ' '; string [21] = ' '; string [8] = 't'; string [22] = 'm'; string [9] = 'e'; string [23] = 'a'; string [10] = 'x'; string [24] = '\0'; string [11] = 't'; string [12] = '\0';//to jest znak kończący string string [13] = 't';
Definiując ciąg można od razu go zainicjalizować w taki sposób: char string [13] = "dowolny text"; //lub tak: char string[] = "dowolny text„ Zauważ, że nasz string mieści 13 znaków, zaś cały text dowolny text to 12 znaków. ten 13 znak to nasz znak kończący. Nie jest on widoczny, ale musi istnieć. Pamiętaj jeszcze, że taki sposób podstawienia textu do tablicy jest możliwy jedynie podczas inicjalizacji. Później tak nie można:
char string [13] = "dowolny text"; //ok //char string = "inny text"; tak nie wolno!
Rozmiar tablicy Czasem zachodzi potrzeba pobrania rozmiaru tablicy bądź też ilości jej elementów. Można to zrobić korzystając z operatora sizeof int liczby [4]; int rozmiar_tablicy = sizeof (liczby);//rozmiar tablicy w bajtach int ilosc_elementow_tablicy = rozmiar_tablicy / sizeof (int);//ilość elementów tablicy http://guidecpp.cal.pl/cplus,tables
Na początku wczytywane są wartości dziesięciu liczb całkowitych do tablicy jednowymiarowej (wprowadzane są wartości ciągu) Istotnym momentem naszego algorytmu jest przeszukanie całej tablicy jednowymiarowej w poszukiwaniu najmniejszego elementu. Warto jednak wcześniej zwrócić uwagę na instrukcję: min = tab[0]; Instrukcja ta powoduje ustawienie jeszcze przed drugą pętlą for najmniejszego elementu, który wskazuje na wartość pierwszego elementu tablicy, czyli na element o indeksie zero. Po tej instrukcji następuje przeszukiwanie tablicy. Każdy element tablicy jest porównywany ze zmienną min, która przechowuje wartość najmniejszą naszej tablicy. Operacja porównania jest realizowana przez instrukcję: if (min > tab[i]) min = tab[i]; Warto zauważyć, że przeszukiwanie tablicy w drugiej pętli for realizowane jest od pierwszego indeksu i=1;.
Definicja tablicy wielowymiarowej Tablice dwuwymiarowe zawierają wiersze i kolumny. Tablice dwuwymiarowe deklarujemy podobnie jak tablice jednowymiarowe, z tą różnicą, że zamiast pojedynczej pary nawiasów kwadratowych [], stosujemy dwie pary nawiasów kwadratowych [][]. Pierwszy indeks tablicy odpowiada numerowi wiersza, a drugi numerowi kolumny.
Przykład deklaracji tablicy dwuwymiarowej zawierającej 5 wierszy i 3 kolumny. int tab[5][3]; // tablica zawierająca 15 elementów typu całkowitego Tablica dwuwymiarowa może prezentować się tak:
W tym przypadku zmienna w ogranicza liczbę wprowadzanych wierszy do 20, a zmienna k również do 20. Aby móc wyjść z pętli użytkownik wprowadzić obie wartości mniejsze niż liczba 21 - powoduje to użycie operatora ||. Program po poprawkach może przyjmować taką wersję:
Kolejnym zadaniem, które warto sobie postawić jest przepisanie tablicy dwuwymiarowej do tablicy jednowymiarowej, inaczej wektora. Zadanie nie jest trudne, wystarczy po kolei wiersze tablicy wprowadzać do wektora. Załóżmy, że mamy zadeklarowaną tablicę tab. const int m = 3; // ilosc wierszy const int n = 4; // ilosc kolumn int tab[m][n] = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12} };