Pocet referatov: 42

Úvod do OOP

Čo je objektovo orientované programovanie?

Objektovo orientované programovanie je spôsob programovania, pri ktorom sa navrhujú a používajú objekty.

S objektmi sme pracovali od začiatku - používali sme objekty:

* Form (formulár), Button (tlačidlo), Image (obrázok), Canvas (grafická plocha) sú objekty;
* pre prácu so súbormi - tzv. súborové premenné typu ifstream, ofstream.

V OOP sa stretneme s pojmami:

* objekt ... spojenie údajov a funkcií, ktor

Korytnačia grafika

Čo je korytnačia grafika

Doteraz sme do grafickej plochy kreslili príkazmi:

MoveTo(X, Y);
LineTo(X, Y);
Rectangle(X1, Y1, X2, Y2);
Ellipse(X1, Y1, X2, Y2);

Tie pracovali s absolútnymi súradnicami. Dá sa kresliť aj iným - relatívnym spôsobom. Na kreslenie použijeme špeciálne grafické pero - korytnačku. Predstave si korytnačku, ktorá sa prechádza po piesočnatej pláži a v piesku zanecháva stopu. To, čo korytnačka v piesku nakreslí, uvidíme na obrazovke. Korytn

Rekurzia

Úvod

Aby sme ľahšie zistili, ako sa menia hodnoty premenných, pripravíme si funkciu Vypis(int n). Tá, pri každom zavolaní, vypíše do komponentu Memo hodnotu premennej n. Komponent Memo funguje ako jednoduchý textový editor, nachádza sa na záložke Standard a umožňuje pracovať s textom aj pomocou svojich vlastností a metód:

void Vypis(int n) {
Form1->Memo1->Lines->Add(n);
}

Príkaz Form1->Memo1->Lines->Add(text) pridá nový riadok s textom (v našom pr

Animácia

Časovač

Časovač je nevizuálny komponent (počas behu programu ho nevidíme, ale prejavuje sa svojou činnosťou). Jeho úlohou je v pravidelných intervaloch generovať udalosť OnTimer. Niektoré zaujímavé vlastnosti časovača:

* Interval ... určuje čas v milesekundách medzi dvoma "tiknutiami" (udalosťami OnTimer)
* Enabled
... povolenie (true) alebo zakázanie (false) činnosti časovača


časovač na palete s komponentmi.

Do formulára položí

Smerníky

Pamäť

Pamäť počítača vyzerá podobne ako pole, ktorého prvky sú bajty:

* do 1 bajtu sa dá sa uložiť, napríklad, celé číslo z rozsahu <0, 255>, časť premennej alebo kúsok programu
* všetky pamäťové miesta sú jednoznačne označené - každé miesto má svoju adresu (vo Windows je to 32 bitové číslo).

Príklad: ako sú (možno) v pamäti uložené nasledujúce premenné:

int i=24;
char z='A';
A i
adresa ... 102 103 104 10

Dynamické premenné

Premenné

Globálne premenné:

* vzniknú pri spustení programu
* existujú počas behu programu
* zanikajú pri skočení programu
* počas kompilácie sa rozhodne, kde v pamäti budú takéto premenné umiestnené.

Lokálne premenné (a parametre):

* vznikajú pri zavolaní funkcie
* existujú počas vykonávania funkcie
* zaniknú pri skončení funkcie
* vznikajú v časti pamäte, ktorej hovoríme zásobník.

Veľkosť (počet b

Bitmapy

Bitmapa

Objekt typu TBitmap - skrátene bitmapa:

* predstavuje rastrový obrázok - t.j. obrázok zložený z matice pixlov,
* je uložená v pamäti počítača,
* umožňuje pracovať so súbormi typu *.bmp,
* má vlastnú grafickú plochu (Canvas), do ktorej môžeme kresliť známymi príkazmi,
* bitmpu môžeme nakresliť do inej grafickej plochy (aj do inej bitmapy).

Deklarujeme smerník na objekt typu TBitmap:

Graphics::TBitmap *b;

1. Čo zn

Dedičnosť

Čo vieme o OOP

* trieda = štruktúra, ktorá obsahuje položky (stavové premenné) a metódy ... zapuzdrenie (enkapsulácia),
* objekty môžu byť statické alebo dynamické,
* konštruktory a deštruktory = metódy, ktoré sa automaticky zavolajú pri vytvorení alebo rušení objektu.


Jednoduché dedenie

Naučíme sa používať ďalšiu, veľmi dôležitú vlastnosť OOP - dedičnosť (inheritance) tried:

* dedičnosť umožňuje vytvorenie novej triedy z už ex

3D grafika a animácie

V príkladoch:

* kreslíme do grafickej plochy Image1
* potrebujeme globálne premenné:
TCanvas *g; // grafická plocha
int StredX, StredY; // stred plochy
* používame časovač Timer1 s hodnotou Interval=50,
* používame matematické funkcie - nezabudnúť na: #include <math.h>


Bod v 3d

Definujeme triedu TBod. Objekt tejto triedy si:

* pamätá súradnice bodu v priestore,
* má metódy, pomocou ktorý môžeme bod posúvať a ot

Algoritmické riešenie matíc

V lineárnej algebre sa sústavy vyššieho stupňa zapisujú v skrátenej forme - vo forme matíc. Vznikajú tak dvojrozmerné číselné útvary - matice, ktoré majú špecifické operácie a vlastnosti. V nasledujúcom článku sa dozviete postupy, ako algoritmicky upravovať matice do "koreňového" tvaru.

Matematický pohľad:

Na úvod predpokladajme sústavu N lineárnych rovníc o N neznámych, ktorú možno vo všeobecnosti upraviť a symbolicky zapísať do tvaru:

a11x1 + a12x2 + a13

Algoritmické riešenie kryptogramov

Kryptogram je špeciálna rovníca, ktorá pozostáva pseudo-čísel, v ktorých sú číslice vyjadrené pomocou znakov. Takto sa každá číslica stáva neznámou. Našou úlohou je zistiť všetky možné kombinácie číslic, pre ktoré rovnica platí.

Kryptogramatickou rovnicou môže byť napríklad rovnica v tvare:

ABB + ABB + ABB + CBA = BDAE

V rovnici písmená A, B, C, D, E predstavujú päť rôznych číslic, z ktorých môže byť kryptogram zostavený. Hodnoty A, B, C, D, E musia byť ted

Riešenie polynomických rovníc II

V predchádzajúcom článku je opísané hľadanie koreňov polynomických rovníc pomocou takzvaného binárneho hľadania, pričom predpokladáme monotónnosť intervalu. V dnešnom článku si opíšeme oveľa výkonnejšiu metódu - metódu sečníc.

Hľadanie koreňov metódou sečníc má mnoho výhod oproti predchádzajúcej metóde. Snáď najväčšou výhodou je predpoklad, že skúmaný interval polynomickej rovnice nemusí byť monotónny. Vďaka tomu metódu možno využiť na vyhľadávanie koreňov v širokých int

Riešenie polynomických rovníc

V praxi sa často stretávame s polynomickými rovnicami vyššieho stupňa, pre ktoré neexistujú riešenia vo forme vzorcov, resp. predpísaných postupov. V takýchto prípadoch nastupuje algoritmizácia a analytické postupy.

Za polynomickú rovnicu možno považovať každú rovnicu, ktorá má vo svojom zápise viacero polynomických členoch. Polynomický člen je každá mocnina neznámej x.

Každú polynomickú rovnicu možno upraviť do tvaru:

a.xn + b.xn-1 + c.xn-2 + ... + k.x2 + l.x1 +m.x0

Metódy vyhľadávania dát

Vyhľadávanie dát je častým procesom vo všetkých informačných systémoch. Preto je veľmi dôležité navrhnúť taký vyhľadávací algoritmus, ktorý bude pre danú situáciu najvýhodnejší. Opäť platí pravidlo, že neexistuje univerzálny algoritmus, ktorý by bol vhodný pre všetky typy databáz.

V tomto článku sa budeme vyhľadávať dáta v už utriedenom súbore údajov. Utriedený súbor dát predstavuje ideálny prípad, pre ktorý sú vhodné metódy binárneho a plošného hľadania. Ako tieto metódy p

Metódy triedenia dát [3. časť]

V predchádzajúcich dvoch častiach boli predstavené metódy triedenia dát optimalizované na rýchlosť. Treťou metódou je metóda vkladaním (vsúvaním), ktorej princíp je vysvetlený v tomto článku.

Predchádzajúce metódy (výberom a výmenou) utrieďovali nezotriedené pole dát naraz. Existuje však množstvo prípadoch, kde sa už do utriedeného poľa vkladá nový prvok.

Typickým prípadom sú napríklad rôzne športové podujatia, s ktorými súvisí zotrieďovanie výkonov na stavových tabulia

Metódy triedenia dát [1. časť]

V dnešnej dobe programovanie utrieďovacích algoritmov prakticky nemá zmysel, nakoľko všetky dnes vyvíjané aplikácie používajú databázové systémy, ktoré majú tieto funkcie priamo integrované. Napriek tomu nezaškodí poznať princíp fungovania týchto funkcií.

Pri triediacich algoritmoch sa najväčší dôraz kladie na rýchlosť použitej metódy. Vlastnosť algoritmu, ktorá je nepodstatná pri triedení malej hŕstky dát je veľmi dôležitá pri triedení veľkého množstva záznamov, ktorých počet nezr

Prvá databázová aplikácia v C++ Builderi

Pre úspešné absolvovanie tohto kurzu bola stanovená určitá vstupná úroveň znalostí. Predpokladalo sa ovládanie jazyka C++ a vývojového prostredia C++ Builderu na úrovni základného kurzu. Bez znalostí základov programovacieho jazyka C++ budete približne v jednej tretine kurzu len ťažko sledovať preberanú tematiku, ale prípadnú neznalosť vývojového prostredia C++ Builderu sa budeme v tejto kapitole snažiť dobehnúť. Vytvoríme jednoduchú databázovú aplikáciu v jazyku C++ v tomto vývojovom prostredí. Takže tý

Predstava o reťazcoch

Reťazec je jednorozmerné pole znakov, deklarované napr. ako :

char str[length];

Podobne ako u každého poľa predstavuje názov reťazca str smerník na začiatok tohoto poľa (t.j. str[0]).
Konvencia jazyka C určuje, že všetky reťazce sú štandardne zakončené znakom '\0' (t.j. hodnotou \0), čím sa reťazec líši od iných typov polí. Z toho vyplýva, že efektívna dĺžka reťazca, ktorý možno do daného poľa uložiť, je

Funkcie pre prácu s reťazcami

Práca s reťazcami je podporovaná celým radom štandardných funkcií, ktoré sa vyskytujú prakticky vo všetkých implementáciách jazyka C. Sú to funkcie pre kopírovanie, spájanie, porovnávanie, vyhľadávanie a určenie dĺžky reťazca. V nižšie uvedených základných funkciách sú parametre s, s1 a s2 typu char * (smerník na char), c je typu int a n typu unsigned int. Všetky funkcie sú definované v hlavičkovom súbore .

int strcmp(char *s1, char *s2) (string compare)

- lexikograficky porovnáva

Priklady v C

Príklad č.1
Napíšte program, ktorý vypíše nasledujúci text :
James Som / "Agent 007" / # 150% zaruka #
Spol. s rucenim neobmedzenym

#include<stdio.h>	

main() {
/* slash '/' sa vypise normalne,
* pred uvodzovky musime dat backslash '',
* percenta musime zdvojit,
* n = odriadkovanie
*/
printf("Som Bond / "Agent 007" /

(2/3)
>>