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.
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
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:
Č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
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
* 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.
* 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).
* 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
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:
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
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
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.
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
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
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
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ý
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
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 .