Maturita z informatiky/Algoritmické riešenie problémov
Požiadavky na zvládnutie algoritmického riešenia problémov na rok 2018/19 sú nasledovné:
1.1 Typy údajov, premenné a výrazy
upraviťObsah
Pojmy:
- číslo, znak, logická hodnota, pole, textový reťazec, textový súbor,
- aritmetické operácie: +, -, *, /, zvyšok po delení,
- operácie porovnania: =, ≠, <, > a pod.,
- logické operácie: negácia, a, alebo,
- konštanta, premenná, štandardná funkcia, generátor náhodných čísel.
Vlastnosti a vzťahy:
- typy údajov – ich použitie a obmedzenia,
- pravidlá vyhodnocovania výrazov – priorita operácií, výrazy so štandardnými funkciami,
- premenná – názov, hodnota, vzťah s pamäťou,
- jednorozmerné polia – prvky, indexy, usporiadané hodnoty,
- textový súbor – ako postupnosť znakov a riadkov, koniec súboru,
- zložený a jednoduchý typ údajov.
Požiadavky na vedomosti a zručnosti
Žiak vie:
- vyhodnotiť a zostaviť výraz s operáciami, premennými, zátvorkami,
- použiť generátor náhodných čísel,
- realizovať prevody – číslo na textový reťazec, textový reťazec na číslo, do/z číselnej sústavy,
- interpretovať výrazy a postupnosti priraďovacích príkazov (číselné aj logické),
- identifikovať rozdiely pri práci s celými a desatinnými číslami,
- pristupovať k prvkom jednorozmerných polí,
- manipulovať so znakmi textového reťazca, manipulovať s podreťazcom textového reťazca,
- manipulovať s obsahom textového súboru – otvoriť, čítať a zapisovať údaje, zatvoriť, reagovať na koniec súboru.
1.2 Programové konštrukcie
upraviťObsah
Pojmy:
- príkaz, postupnosť príkazov, program, programovací jazyk, vývojové prostredie,
- programové konštrukcie – cyklus, vetvenie, podprogram.
Vlastnosti a vzťahy:
- syntax jazyka – rezervované slová, identifikátory, konštanty, oddeľovače,
- prostriedky jazyka pre interakciu – získanie vstupu, zrealizovanie výstupu,
- cyklus s pevným počtom opakovaní, cyklus s podmienkou – počítadlo cyklu, telo cyklu, vnorené príkazy,
- vetvenie – podmienený príkaz, podmienka, telo vetvy, vnorené príkazy,
- podprogram – definovanie, parametre (len hodnotové), volanie (nie rekurzia), návratová hodnota, lokálne premenné.
Požiadavky na vedomosti a zručnosti
Žiak vie:
- sformulovať formálny zápis algoritmu podľa kritérií rôznych vykonávateľov,
- zostaviť príkazy do príkazových konštrukcií podľa pravidiel jazyka,
- rozpoznať a odstrániť chyby vo formálnom zápise algoritmu.
1.3 Riešenie problémov
upraviťObsah
Pojmy:
- algoritmus,
- interpretácia a kompilácia.
Vlastnosti a vzťahy:
- chyby: syntaktické a logické,
- analýza problému – vzťahy medzi vstupom a výstupom,
- vstupné obmedzenia – pre ktoré hodnoty algoritmus správne pracuje.
Požiadavky na vedomosti a zručnosti
Žiak vie:
- analyzovať problém – identifikovať vstup, výstup, vzťahy medzi vstupom a výstupom,
- riešiť algoritmické problémy, vytvárať a čítať zápisy v programovacom jazyku,
- riešiť úlohy, v ktorých sa pracuje s číslami a ciframi čísla:
- zistiť, či číslo spĺňa zadané kritérium,
- realizovať výpočty s desatinnými číslami,
- previesť čísla medzi číselnými sústavami,
- riešiť úlohy, v ktorých sa využíva interakcia:
- získať vstup (napríklad: čísla, textové reťazce) zo vstupného zariadenia,
- spracovať vstup, ak je počet vstupných hodnôt dopredu neznámy,
- vypísať textový a nakresliť grafický výstup,
- riešiť problémy, v ktorých sa využívajú znaky a textové reťazce:
- zistiť, či je znak písmeno alebo cifra,
- zistiť výskyt znaku alebo podreťazca v textovom reťazci podľa daného kritéria: prvý, posledný, počet výskytov a pod.,
- nahradiť alebo odstrániť znak alebo podreťazec v textovom reťazci,
- zostaviť textový reťazec z podreťazcov podľa daných kritérií (napríklad: striedajú sa čísla a texty a pod.),
- formátovať výpis,
- riešiť problémy, v ktorých sa využívajú premenné:
- vymeniť hodnoty dvochpremenných,
- riešiť problémy, v ktorých sa využíva cyklus a vetvenie:
- zostaviť podmienky pre vetvenie a cyklus podľa zadania úlohy (napríklad: či je hodnota z daného intervalu, či sa bod nachádza v obdĺžnikovej oblasti, či bod leží v kruhu a pod.),
- prechádzať prvky postupnosti (napríklad: generovanej, zo vstupu, znaky textového reťazca, riadky súboru a pod.),
- akumulovať výsledky podľa daných kritérií (napríklad: súčet postupnosti čísel a pod.),
- vyberať hodnoty, ktoré spĺňajú dané kritériá (napríklad: z textového reťazca vypísať len všetky spoluhlásky a pod.),
- používať vnorené programové konštrukcie (napríklad: výpis tabuľky hodnôt, spracovanie súboru s riadkami s viacerými hodnotami a pod.),
- rozhodovať sa, kedy stačí použiť cyklus s pevným počtom opakovaní, a kedy treba cyklus s podmienkou,
- riešiť problémy, v ktorých sa využíva generátor náhodných čísel:
- generovať čísla v danom rozsahu,
- simulovať danú činnosť (napríklad: zostavovať frekvenčnú tabuľku pri hode dvoma kockami a pod.),
- generovať náhodnú kresbu podľa stanovených kritérií (napríklad: náhodne rozmiestnené geometrické tvary, kreslenie obdĺžnika z veľkého počtu náhodne zafarbených úsečiek a pod.),
- riešiť problémy, v ktorých sa využívajú podprogramy:
- definovať vlastné podprogramy s parametrami,
- definovať vlastné funkcie s návratovou hodnotou rôznych typov (čísla, texty, logické hodnoty a pod.),
- používať parametre rôznych typov (čísla, texty a pod.),
- používať vlastné aj dané podprogramy pri riešení úlohy,
- používať vlastné aj dané funkcie pri riešení úlohy,
- riešiť problémy, v ktorých sa využíva jednorozmerné pole:
- generovať obsah poľa podľa daných kritérií (napríklad: vynulovanie poľa, každý nasledujúci prvok je súčtom predchádzajúcich dvoch a pod.),
- používať pole na uchovanie väčšieho počtu údajov (napríklad: frekvenčná tabuľka výskytu nejakých hodnôt, súradnice bodov v rovine a pod.),
- hľadať prvky poľa s danými vlastnosťami (napríklad: najmenší, druhý najmenší a pod.),
- zisťovať, či pole obsahu je hodnoty s danými vlastnosťami (napríklad: či obsahuje číslo 0, prvý výskyt medzery a pod.), resp. ich počet,
- zisťovať, či pole spĺňa dané kritérium (napríklad: či sú všetky prvky rovnaké, rôzne, či sú hodnoty usporiadané a pod.),
- modifikovať prvky poľa (napríklad: vsunúť prvok na dané miesto tak, aby ostali prvky usporiadané a pod. - pozor, už nie triediace algoritmy),
- manipulovať s viacerými poľami podľa daných kritérií (napríklad: kopírovanie časti poľa, otočenie, posunutie, zlučovanie dvoch usporiadaných postupností a pod.),
- testovať hranice poľa,
- zobrazovať prvky poľa vypísaním alebo vykreslením (napríklad: stĺpcový graf),
- riešiť problémy, v ktorých sa využíva textový súbor:
- zobraziť obsah súboru (napríklad: kreslenie zakódovaného obrázka, naplnenie poľa hodnotami a pod.),
- používať textový súbor ako vstup alebo výstup (napríklad: čítanie vstupných údajov pre výpočty; zapisovanie výsledkov výpočtov, obsahu polí a pod.),
- zisťovať štatistické údaje o obsahu textového súboru (napríklad: počet riadkov súboru, počet slov, počet znakov, súčet čísel a pod.),
- pracovať s viacerými textovými súbormi (napríklad: kopírovanie súborov, zlúčenie dvoch súborov, kopírovanie s filtrovaním a pod.),
- opravovať syntaktické chyby,
- zisťovať, hľadať a opravovať logické chyby v programe:
- krokovať,
- používať kontrolné výpisy (napríklad: vložiť kontrolný výpis na správne miesto v programe),
- odhaľovať kritické miesta v programe (napríklad: v akých situáciách by program spadol, nemusel správne počítať, fungovať),
- navrhovať vhodné testovacie vstupné údaje,
- testovať cudzie programy (napríklad: nájsť a opraviť chybu v cudzom programe),
- intuitívne uvažovať o zložitosti algoritmu (na úlohách primeranej zložitosti):
- odhadovať počet krokov, ktoré zrealizuje daný algoritmus (napríklad: koľko hviezdičiek program nakreslí pre dané číslo a pod.),
- zistiť, pre aký vstup sa zrealizuje daný počet krokov daného algoritmu (napríklad: pre aké číslo sa nakreslí daný počet hviezdičiek a pod.).