1

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 ;

2

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⎥

⎣

⎦

3

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;

4

};

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;

5

F.F=1001.34;

……..

}

6

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;

};

7

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

8

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(){

9

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;

}

Document Outline

  • Tablice
  • Struktury
  • Unie
  • Klasa