Rýchle zhrnutie referátu

Referát sa zaoberá štruktúrovanými premennými v programovaní, najmä v jazyku C++. Vysvetľuje, ako definovať vlastné typy pomocou štruktúr a ich výhody pri práci s premennými, ktoré spolu súvisia.

  • Jednoduché premenné: int, float, double, char, bool.
  • Štruktúrované premenné: polia, struct, objekty.
  • Definícia vlastného typu TBod pre prácu s bodmi.
  • Výhody štruktúrovaných premenných: lepšia čitateľnosť a organizácia kódu.
  • Obmedzenia pri priraďovaní a porovnávaní štruktúrovaných premenných.

Úvod

  • jednoduché premenné: int, float, double, char, bool, TColor ...

* štruktúrované premenné:

o polia o struct o objekt grafická plocha TCanvas, objekty pre prácu so súbormi, komponenty.

Zatiaľ sme informácie, ktoré spolu súvisia, ukladali do viacerých premenných. Napríklad:

* súradnice bodov:

int StredX, StredY; ... súradnice stredu grafickej plochy int x[100], y[100]; ... dvojice x[0], y[0]; x[1], y[1]; ... sú súradnice bodov.

* čitateľ a menovateľ zlomku:

int c, m;

Nevýhoda je, že v programe sú premenné deklarované na rôznych miestach. Program je horšie čitateľný, stráca sa význam premenných a na prvý pohľad nie je jasné, ktoré premenné spolu nejako súvisia. Navyše sa s takýmito premennými zle pracuje (priradenie bodu: x[0]=StredX; y[0]=StredY;). Preto premenné, ktoré spolu súvisia, zapuzdrujeme - "dávame ich dohromady".

ekonomika/organizacne-struktury/" class="wiki-link" title="Viac o: štruktúry">Štruktúry

Pre prácu s bodmi zadefinujme nový, vlastný typ TBod:

struct TBod { int x, y; };

Kompilátor sme naučili nový typ TBod. Odteraz môžeme deklarovať premenné typu TBod:

TBod b, stred;

Premenná stred je štruktúrovaná premenná. Je zložená z dvoch celočíselných premenných x, y, pričom x, y sú celé čísla.

b x y

50

10

Priradenie:

b.x=50; b.y=10; g->Pixesl[b.x][b.y]=clBlack;

Ak chceme pracovať s niektorou časťou (x alebo y) premennej b, použijeme operátor . (bodka).

Výhodou štruktúrovaných premenných je to, že premenné rovnakého typu môžeme navzájom priraďovať:

b=stred;

Pozor: Ak by sme definovali ďalší typ TBod1, ktorý bude vyzerať rovnako ako TBod, tak nasledovné priradenie nebude možné:

struct TBod1 { int x,y; }; TBod1 zzz; // zadeklarujeme premennú typu TBod1 zzz=b; ... chyba! ... pre kompilátor sú typy TBod1 a TBod nekompatibilné

Stále však môžeme vykonať nasledovné, aj keď menej pohodlné, priradenia:

zzz.x=b.x; zzz.y=b.y;

Pozor 2: Porovnávanie štruktúrovaných premenných nefunguje:

if (b==stred) Caption="ano"; ... chyba!

Premenné musíme porovnať po zložkách:

if (b.x==stred.x && b.y==stred.y) Caption="ano";

C++Builder má definovaný typ TPoint podobne, ako TBod. Ukážka použitia pri kreslení polygónov (každý bod určuje jeden vrchol polygónu): v 0. 1. 2.

x y

🤔 Najčastejšie otázky k téme

Čo sú štruktúrované premenné?

Štruktúrované premenné sú typy, ktoré umožňujú kombinovať viacero premenných do jedného celku, čím zlepšujú čitateľnosť a organizáciu kódu.

Aké sú výhody používania štruktúr v C++?

Používanie štruktúr umožňuje lepšie organizovať súvisiace premenné, zjednodušuje priradenie a zvyšuje prehľadnosť kódu.

Môžem priraďovať hodnoty medzi rôznymi typmi štruktúr?

Nie, ak sú štruktúry rôznych typov, priradenie nie je možné. Musíte priraďovať hodnoty po jednotlivých zložkách.