TABLICE C++

advertisement
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 [1] = 'o';
•
string [2] = 'w';
•
string [3] = 'o';
•
string [4] = 'l';
•
string [5] = 'n';
•
string [6] = 'y';
•
string [7] = ' ';
•
string [8] = 't';
•
string [9] = 'e';
•
string [10] = 'x';
•
string [11] = 't';
string [12] = '\0';//to jest znak kończący
string
string [13] = 't';
string [14] = 'e';
string [15] = 'g';
string [16] = 'o';
string [17] = ' ';
string [18] = 'n';
string [19] = 'i';
string [20] = 'e';
string [21] = ' ';
string [22] = 'm';
string [23] = 'a';
string [24] = '\0';
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} };
Download