Tablice
Tablice wprowadza się do programu podając liczbę elementów.
Liczba elementów musi być stałą całkowitą. Przykładowe definicje tablic: int T[2][3];
float Tab[120];
double X[10][15];
Numeracja elementów tablicy przebiega od 0 do N-1, gdzie N jest liczba elementów tablicy
Tablica T[2][3] oznacza zbiór elementów następującej postaci:
⎡ t 00 t 01 t 02⎤
T[
]
3
][
2
= ⎢
⎥
⎣
10
t
11
t
12
t ⎦
Tablice wielowymiarowe są jednowymiarowymi tablicami, których elementami są tablice.
Tablice znakowe przechowujące tekst zawierają niewidoczny znak końca tekstu \0.
Inicjowanie wartości zmiennych polega na nadawaniu im w programie wartości na początku programu. W przypadku tablic może to przebiegać następująco:
int T ][
3
[
4] = { ,
1
,
0
,
3
,
2
}
5
,
4 ;
int T ][
3
[
4] = { ,
1
}
3
,
2 ,{ }
5
,
4
;
int
T ][
3
[
4] = { ,
1
}
3
,
2 ,
}
5
,
4 ;
We wszystkich chodzi o te samą tablicę postaci
⎡1 2 3 0⎤
⎢
⎥
T ][
3
[
]
4 = ⎢4 5 0 0⎥
⎢0 0 0 0⎥
⎣
⎦
W pierwszym nawiasie może nie być liczby elementów. Przy deklaracji tablicy liczba wierszy zostanie ustalona podczas inicjowania zawartości. Zapis int T [ ][ ]
4 = { ,
1
,
3
,
2
,
0
}
5
,
4 ;
oznacza tablicę
⎡1 2 3 0⎤
T[ ][
2
]
4 = ⎢
⎥
⎣4 5 0 0⎦
Zapis
int T[ ][ ]
4 = { }
1 ,{ }
2 ,{ }
3 ,{ }
4 ,{ }
5 ;
oznacza tablicę
⎡1 0 0 0⎤
⎢
⎥
⎢2 0 0 0⎥
T ][
5
[
]
4 = ⎢3 0 0 0⎥
⎢
⎥
⎢4 0 0 0⎥
⎢5 0 0 0⎥
⎣
⎦
W celu odwołania się do elementu tablicy pisze się a = T ][
1
[ 0];
Dla wymienionej tablicy T[5][4] zmienna a będzie miała wartość a = ;
2
Struktury
Struktura oznacza zbiór elementów na ogół różnego typu.
Przykładowe deklaracje
struct Osoba {
char imie[12], nazwisko[15]; int wiek, wzrost;
}Osoba1, Osoba2;
Elementy składowe struktury nazywane są polami. W tym przypadku występują dwa pola znakowe i dwa pola typu int.
Konkretne egzemplarze struktury umieszcza się za definicją struktury lub w programie pisząc
Osoba Osoba1, Osoba2;
Osoba jest nazwą typu.
struct FIGURA {
char nazwa[15];
double obwod, pole;
};
FIGURA F1, *pF;
*pF oznacza wskaźnik struktury. Dane struktury w tym przypadku trzeba wprowadzić w programie.
Odwołanie do pól struktury F1.obwod
pF->obwod
Nadanie im wartości
F1.obwod=144.31;
PF->obwod=150.23;
Wyrażenie
Osoba1.nazwisko
Może być używane jak nazwa tablicy znakowej Osoba1.nazwisko[15]
Identyfikator składowej struktury i identyfikator struktury nie przesłaniają się. We fragmencie programu można napisać:
{
struct FIGURA {
char nazwa[15];
double F, pole;
}F;
F.F=1001.34;
……..
}
Wprowadzanie danych struktury (inicjalizacja) FIGURA F1={
“Kwadrat”,
155.1,
300.3
};
Wprowadzanie danych do tablicy struktur FIGURA F[]={
{“Kwadrat”,155.1,300.3},
{“Kolo”,25.5,51.74},
{“Prostokat”,60,200}
};
Odwołanie do elementu tablicy F[1].pole
Struktury zagnieżdżone to struktury, w skład których wchodzą inne struktury.
struct PUNKT{
float x,y;
};
struct FIGURA{
char nazwa[10];
PUNKT xd,xg;
};
FIGURA F1, F2={“ODCINEK”,{1,2},{3,4}}; F1.xd.x=0;
F1.xd.y=2;
PUNKT p1={4,10};
F1.xg = p1;
Unie
Unia oznacza zbiór elementów ogólnie różnego typu podobnie do struktury.
Przykładowe deklaracje
union Zestaw {
char znaki[12];
int k;
float f;
}Z1;
Elementy składowe unii nazywane są polami. W tym przypadku występują: pole znakowe, pole typu int i pole float.
Różnice miedzy unią a strukturą struct S{
union U {
int k;
int k;
float f;
float f;
}S1;
}U1;
Miejsce w pamięci
Struktura S1
k f
adres
Unia U1
k
f
adres
Klasa
Klasa to zbiór danych i metod.
Przykładowe deklaracje
class Data {
public:
Data();
Data(int d, int m, int r); void nowa(int d, int m, int r); void podaj_date();
private:
int pd, pm,pr;
};
Data :: Data(){
pd=pm=pr=0;
}
Data :: Data(int d, int m, int r){
pd = d; pm = m; pr = r;
}
void Data::nowa(int d, int m, int r){
pd = d; pm = m; pr = r;
}
void Data::podaj_date(){
cout<<“ d “<<pd<<“ m “<<pm<<“ r “<< pr;
}