Maturita z informatiky/Algoritmické riešenie problémov

Mysli slobodne. Uč sa slobodne. — Zo slobodnej knižnice Wikibooks ~ Wikiknihy.

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.).

Pozri aj[upraviť]