Autor: Faradaj
Umiemy
już tworzyć wyprowadzać, wprowadzać dane
z/do zmiennych. Czas teraz przemyśleć kwestie następującą: Chcemy stworzyć
bardzo dużą ilość zmiennych. Skoro tak chwaliłem cpp to czy nie ma łatwiejszego
sposobu niż wymyślanie mnóstwa nazw zmiennych? Owszem, chwaliłem i jest. Do
tego właśnie służą tablice.
Wyobraź
sobie sytuację, że potrzebujesz dziesięciu zmiennych liczbowych.
Zapewne
zadeklarujesz je tak:
int a,b,c,d,e,f,g,h,i,j;
A poźniej
wczytasz tak:
cin>>a>>b>>c>>d>>e>>f>>g>>h>>i>>j;
lub co
gorsza, tak:
cin>>a;
cin>>b;
cin>>c;
cin>>d;
cin>>e;
cin>>f;
cin>>g;
cin>>h;
cin>>i;
cin>>j;
cin>>b;
cin>>c;
cin>>d;
cin>>e;
cin>>f;
cin>>g;
cin>>h;
cin>>i;
cin>>j;
Cpp
jednak oferuje Ci coś takiego jak tablica. Polega to na tym, że deklarujesz nie
jedną zmienną o całe pudełko. Robisz to tak:
int
nazwa_tablicy[ilość_elementów];
W ten
sposób utworzyłeś w pamięci twojego programu ilość_elementów zmiennych typu
int.
Każda
tablica posiada tyle komórek (miejsc/zmiennych), ile zadeklarowałeś na
początku. Ilość miejsc, które ma tablica jest zawsze stała!
Dobra,
ale skąd komputer będzie wiedział o którą zmienną z tablicy mi chodzi? Sprawa
jest prosta każda z komórek ma swój adres,
który przy wpisywaniu wartości do niej lub wypisywaniu wartości z niej należy
podać, wpisując go w nawiasach kwadratowych. Spójrz poniżej:
Komórka:
|
Komórka 1
|
Komórka 2
|
Komórka 3
|
Komórka 4
|
Komórka 5
|
Adres
|
0
|
1
|
2
|
3
|
4
|
Zauważ,
że adresy komórki zaczynają się od 0, a kończą
się na ilość_elementów-1. Ma to ważne znaczenie w zastosowaniu. Chcę wpisać do
komórki 1 wartość 2, robię to tak:
int
tab[5]; //deklaruje tablice o pięciu
komórkach
tab[0]=2; //przypisuje wartość 2 komórce 1
Wartość
komórek można podać już przy tworzeniu tablicy w następujący sposób:
int
tab[5]={0,0,0,0,0}; //stworzyłem
tablice i każdej komórce przypisałem wartość 0
Tablica
może być dowolnego typu – zamiast int może być również float, char, string,
bool, co żywnie sobie wymarzysz.
Stwórzmy
program, który wypisze policzy średnią arytmetyczną z naszych ocen z
informatyki. Najpierw poprosi o oceny, a później poda średnią:
int
tab[5]; //zakładamy, że mamy 5 ocen
cin>>tab[0]>> tab[0]>>
tab[1]>> tab[2]>> tab[3]>> tab[4];
cout<<(tab[0]+ tab[1]+ tab[2]+ tab[3]+
tab[4])/5;
Zaoszczędziliśmy
nie wiele, ale to tylko dla tego, że nie wiesz jeszcze, jak działa pętla. To
były tablice jednowymiarowe.
W temacie
obiecałem, że powiem również o tablicach dwuwymiarowych.
Tablice
jednowymiarowe miały tylko jeden wiersz i mnóstwo komórek. Tablice dwuwymiarowe
będą posiadały więcej wierszy. Ile? Tyle, ile zadeklarujesz. Robi się to tak:
float
tab[ilość kolumn][ilość wierszy];
Działa to
identycznie , jak z tablicami jednowymiarowymi. Wyobraź sobie, że masz stworzyć
program, który pobierze wiek i wzrost np.3 osób.
float
tab[3][2]; /* tworze tablice o
trzech kolumnach (każda osoba ma swoją) i 2 wierszach: wiek i wzrost */
Następnie
podaje wiek i wzrost pierwszej osoby:
cin>>tab[0][0]>>tab[0][1];
Jak
widzisz tablice to nic trudnego, czy jedno czy dwuwymiarowe – działają tak
samo. Zastosowanie tablic docenisz w lekcji o pętlach.
Zadanie:
1.
Napisz program, który najpierw pobierze od ciebie nazwiska 5
osób i ich wiek, a następnie wypisze osobe 1 z
wiekiem osoby 4.
2.
Napisz program, który pobierze 10 zmiennych typu int i jeżeli są większe od 3 lub mniejsze od 1 to je wypisze.
Brak komentarzy:
Prześlij komentarz