9. ročník › Informatika › Informatika

Algoritmy Nezačaté

0 Vstupný test1 Poučka 2 Vysvetlenie3 Príklady 4 Kvíz5 Test 6–8 Vyhodnotenie9 Výstupný test
Krok 0 — Vstupný test

Skús najprv, čo už vieš. Výsledok = tvoja vstupná úroveň (porovnáš ho s tým, čo budeš vedieť po naučení).

Všimol som si chybu — v Q3 sa mi do výstupu dostal opravný/meta text, čo porušuje pravidlo „iba čistý markdown". Tu je opravená čistá verzia celej témy:

0. Kľúčové fakty

  1. Algoritmus — Algoritmus je presný a konečný postup, ktorý krok po kroku vedie k vyriešeniu určitého problému alebo splneniu úlohy. Musí byť jednoznačný, aby ho dokázal vykonať ktokoľvek (alebo počítač) bez domýšľania. S algoritmami sa stretávame aj v bežnom živote — recept na koláč, návod na zloženie nábytku či postup pri riešení rovnice sú tiež algoritmy.

  2. Vlastnosti algoritmu — Správny algoritmus musí byť konečný (po určitom počte krokov sa skončí), determinovaný (každý krok je jednoznačne určený), hromadný (rieši celú skupinu podobných úloh, nielen jeden konkrétny prípad) a rezultatívny (vždy dáva výsledok). Tieto vlastnosti odlišujú skutočný algoritmus od nejasného alebo nikdy nekončiaceho postupu. Ak algoritmus niektorú z nich nespĺňa, často zlyhá alebo „zacyklí sa" donekonečna.

  3. Vstup, spracovanie a výstup — Väčšina algoritmov pracuje so vstupnými údajmi (vstup), tie nejako spracuje (výpočet, rozhodovanie) a vráti výsledok (výstup). Napríklad algoritmus na výpočet obvodu obdĺžnika dostane na vstupe dĺžku a šírku, spracuje ich vzorcom a vypíše obvod. Tento model „vstup → spracovanie → výstup" je základom takmer každého programu.

  4. Postupnosť (sekvencia) — Postupnosť je najjednoduchšia štruktúra, kde sa príkazy vykonávajú jeden za druhým v presnom poradí, zhora nadol. Poradie krokov je dôležité — ak ich zameníme, výsledok môže byť nesprávny (napr. najprv musíme naliať vodu, až potom variť). Sekvencia tvorí „kostru" každého algoritmu, do ktorej sa vkladajú zložitejšie štruktúry.

  5. Vetvenie (rozhodovanie) — Vetvenie umožňuje algoritmu vybrať si medzi rôznymi cestami podľa toho, či je splnená nejaká podmienka. Zapisuje sa slovami „ak – potom – inak" (v programovaní if – else) a vždy sa vyhodnocuje, či je podmienka pravdivá alebo nepravdivá. Vďaka vetveniu vie program reagovať na rôzne situácie — napríklad rozhodnúť, či je číslo párne alebo nepárne.

  6. Cyklus (opakovanie) — Cyklus dovoľuje opakovať tú istú skupinu príkazov viackrát, čím sa algoritmus skráti a zjednoduší. Rozlišujeme cyklus so známym počtom opakovaní (napr. „opakuj 10-krát") a cyklus s podmienkou (opakuj, kým platí podmienka). Cyklus musí mať vždy spôsob, ako skončiť — inak vznikne nekonečný cyklus a program „zamrzne".

  7. Podmienka — Podmienka je tvrdenie, ktoré môže byť buď pravdivé, alebo nepravdivé (napr. „číslo je väčšie ako 5"). Riadi vetvenie aj cykly — podľa jej vyhodnotenia sa algoritmus rozhodne, ktorou cestou pôjde alebo či bude pokračovať v opakovaní. Pri tvorbe podmienok sa používajú porovnávacie operátory ako väčší (>), menší (<), rovná sa (=) a logické spojky a, alebo, nie.

  8. Vývojový diagram — Vývojový diagram je grafický spôsob zápisu algoritmu pomocou dohodnutých značiek: ovál označuje začiatok a koniec, obdĺžnik príkaz (spracovanie), kosoštvorec (romboid) rozhodovanie a šípky určujú smer postupu. Diagram robí algoritmus prehľadným a ľahko sa v ňom hľadajú chyby ešte pred programovaním. Je to medzistupeň medzi nápadom v hlave a hotovým programom.

  9. Spôsoby zápisu algoritmu — Algoritmus môžeme zapísať slovne (vetami), pomocou vývojového diagramu, v pseudokóde (zjednodušený programovací jazyk blízky bežnej reči) alebo priamo v programovacom jazyku. Pseudokód je užitočný, lebo opisuje logiku bez prísnych pravidiel konkrétneho jazyka, takže sa naň sústredíme na samotné riešenie. Každý zápis opisuje ten istý postup, len inou formou.

  10. Premenná — Premenná je pomenované miesto v pamäti počítača, do ktorého si algoritmus ukladá hodnotu (číslo, text), pričom túto hodnotu môže počas behu meniť. Predstaviť si ju možno ako pomenovanú škatuľku, do ktorej vkladáme a vyberáme údaje. Premenné sú nevyhnutné napríklad pri počítaní (sčítavanie do premennej „súčet") alebo pri zapamätaní vstupu od používateľa.

  11. Overenie správnosti (testovanie) — Po zostavení algoritmu treba overiť, či naozaj funguje správne — najčastejšie ho „ručne prejdeme" na konkrétnych vstupoch a sledujeme, aké hodnoty vychádzajú. Testujeme aj hraničné a netypické prípady (napr. nulu, záporné číslo, prázdny vstup), kde sa chyby objavujú najčastejšie. Chyba v algoritme sa nazýva bug a jej hľadanie a opravovanie debugovanie (ladenie).

  12. Ladenie a efektívnosť — Ten istý problém sa dá vyriešiť viacerými algoritmami, ktoré sa líšia rýchlosťou a počtom krokov — niektoré sú efektívnejšie ako iné. Dobrý programátor hľadá riešenie, ktoré je nielen správne, ale aj jednoduché a rýchle, najmä pri veľkom množstve údajov. Schopnosť rozložiť zložitý problém na menšie kroky a zostaviť preň algoritmus sa nazýva algoritmické myslenie a je základom celej informatiky.

1. Poučka

Algoritmus je presný, konečný postup, ktorý krok po kroku rieši nejaký problém alebo úlohu. Skladá sa z troch základných stavebných prvkov: - postupnosť — príkazy idú jeden za druhým v určenom poradí, - vetvenie (rozhodovanie) — podľa splnenia podmienky sa vykoná jedna alebo druhá vetva, - cyklus (opakovanie) — časť príkazov sa zopakuje viackrát.

Každý algoritmus má vstup, spracovanie a výstup a musí byť správny (dáva očakávaný výsledok) a konečný (raz skončí).

2. Vysvetlenie

Predstav si algoritmus ako presný recept. Aby fungoval pre každého, kto ho prečíta, musí byť jasný a jednoznačný.

Postupuj takto: 1. Pochop problém — čo je vstup (čo mám k dispozícii) a čo má byť výstup (čo chcem dostať). 2. Rozlož ho na kroky — napíš jednoduché príkazy v správnom poradí (postupnosť). 3. Pridaj rozhodovanie — keď sa postup vetví, použiješ ak – tak – inak (vetvenie). Napr. „Ak prší, vezmi dáždnik, inak vezmi okuliare." 4. Pridaj opakovanie — keď sa niečo robí viackrát, použiješ cyklus, napr. „Opakuj 5-krát: urob drep." 5. Zapíš algoritmus — slovne, vývojovým diagramom alebo pseudokódom (skrátený zápis blízky programu). 6. Over správnosť — prejdeš algoritmus krok po kroku na konkrétnom príklade (tzv. trasovanie) a skontroluješ výsledok.

3. Príklady a prečo je to dôležité

Príklady z bežného života a z informatiky: 1. Recept na palacinky — postupnosť krokov: zmiešaj, opeč, podávaj. Klasická postupnosť. 2. Ranný budíček — vetvenie: Ak je víkend, spi ďalej; inak vstaň. 3. Polievanie 10 kvetov — cyklus: Opakuj pre každý kvet: polej ho. 4. Hľadanie najväčšieho čísla v zozname — cyklus + vetvenie: prechádzaj čísla a zapamätaj si vždy doteraz najväčšie. 5. Prihlásenie na web — vetvenie: Ak heslo súhlasí, pusti dnu; inak zobraz chybu. 6. Navigácia (GPS) — algoritmus hľadania najkratšej cesty medzi dvoma bodmi. 7. Triedenie kníh podľa abecedy — algoritmus usporiadania (triedenie).

Prečo je to dôležité: - Algoritmické myslenie ťa naučí rozložiť veľký problém na malé zvládnuteľné kroky — to využiješ v každom predmete aj v živote. - Je to základ programovania — počítač, telefón, hra aj umelá inteligencia robia presne to, čo im algoritmus prikáže. - Učí ťa presnosti a logike — keď je algoritmus zle zapísaný, výsledok je chybný. Hľadanie chýb (ladenie) je dôležitá zručnosť.

Krok 4 — Kvíz (over si pochopenie)
Krok 5 — Test (precvič sa)
  1. Napíš slovne algoritmus (aspoň 5 krokov) na prípravu čaju. Vyznač, kde je postupnosť a kde by sa dalo použiť vetvenie (napr. ak je horúci, počkaj).
  2. Zostav algoritmus, ktorý prejde čísla od 1 po 10 a vypíše iba párne čísla. Použi cyklus aj vetvenie.
  3. Trasuj tento algoritmus a zapíš výsledok: Nastav s = 0. Opakuj 5-krát: s = s + 3. Vypíš s.
  4. Nakresli (alebo slovne opíš) vývojový diagram pre situáciu: Ak je známka lepšia ako 3, napíš „výborne", inak napíš „treba sa učiť".
  5. Nájdi chybu v algoritme a oprav ju: Nastav x = 1. Opakuj, kým x > 0: x = x + 1. Vypíš x. (Prečo nikdy neskončí a ako to opraviť?)

Cvičné príklady. Reálne testové otázky doplníme po overení.

Krok 9 — Výstupný test (zvládol / nezvládol)

Záverečný hodnotený test témy. Výsledok uvidí aj rodič. Zvládnutie = aspoň 80 %.

← Späť na katalóg