6. ročník › Informatika › Informatika
0. Kľúčové fakty
-
Algoritmus — Je presný a konečný postup krokov, ktorý vedie k vyriešeniu úlohy alebo dosiahnutiu cieľa. Algoritmy používame aj v bežnom živote (recept na koláč, návod na zloženie nábytku), no v informatike ich zapisujeme tak, aby ich vedel vykonať počítač. Dôležité je poradie krokov — keď ich pomiešame, výsledok bude nesprávny.
-
Vlastnosti algoritmu — Správny algoritmus musí byť konečný (raz sa skončí), jednoznačný (každý krok je presne určený), správny (dáva očakávaný výsledok) a hromadný (vyrieši celú skupinu podobných úloh, nielen jednu). Ak by algoritmus nikdy neskončil, vznikne tzv. nekonečný cyklus a program „zamrzne".
-
Program — Je algoritmus zapísaný v programovacom jazyku, ktorému počítač rozumie. Rozdiel medzi algoritmom a programom je v tom, že algoritmus je myšlienka postupu a program je jej konkrétny zápis. Programy píšeme v prostrediach ako Scratch, Blockly či Logo (korytnačka).
-
Príkaz (inštrukcia) — Je základný stavebný kameň programu — jeden konkrétny pokyn, čo má počítač urobiť (napr. „choď dopredu o 10 krokov", „povedz ahoj", „otoč sa o 90°"). Z postupnosti príkazov vykonávaných jeden za druhým vzniká najjednoduchší algoritmus, ktorý voláme sekvencia.
-
Sekvencia (postupnosť) — Je vykonávanie príkazov pekne v poradí, jeden po druhom, zhora nadol. Je to najjednoduchšia štruktúra programu a väčšina programov ňou začína. Práve preto je správne poradie príkazov také dôležité — počítač robí presne to, čo a v akom poradí mu napíšeme.
-
Cyklus (opakovanie) — Umožňuje zopakovať ten istý príkaz alebo skupinu príkazov viackrát, bez toho aby sme ich museli písať dookola. V Scratchi je to napríklad blok „opakuj 10-krát". Cyklus šetrí prácu a robí program kratším a prehľadnejším — namiesto desiatich rovnakých riadkov stačí jeden cyklus.
-
Vetvenie (rozhodovanie) — Umožňuje programu rozhodnúť sa medzi viacerými možnosťami podľa splnenej podmienky, najčastejšie príkazom „ak – tak" (if). Napríklad: „AK sa dotkneš okraja, TAK sa odraz." Vďaka vetveniu sa program nespráva vždy rovnako, ale reaguje na situáciu, čo z neho robí „inteligentnejší".
-
Podmienka — Je výrok, ktorý môže byť pravdivý (áno) alebo nepravdivý (nie), a podľa ktorého sa program rozhoduje pri vetvení aj pri niektorých cykloch. Príklady: „je skóre väčšie ako 10?", „stlačil hráč medzerník?". Počítač podmienku vyhodnotí a podľa výsledku pokračuje jednou alebo druhou cestou.
-
Premenná — Je pomenované miesto v pamäti, do ktorého si program ukladá a počas behu mení nejakú hodnotu (napr. „skóre", „počet životov", „meno"). Premennú si môžeme predstaviť ako škatuľku s menom, do ktorej vkladáme čísla alebo text. Vďaka premenným si program „pamätá" údaje a vie s nimi ďalej pracovať.
-
Ladenie (debugovanie) a chyba (bug) — Ladenie je hľadanie a opravovanie chýb v programe, aby fungoval správne. Chyba v programe sa nazýva „bug" (po anglicky chrobák) a takmer každý program najprv obsahuje nejaké chyby. Program preto spúšťame, sledujeme, čo robí inak, než sme chceli, a postupne ho opravujeme — to je úplne bežná súčasť programovania.
-
Detské programovacie prostredie (Scratch) — Scratch je vizuálne prostredie, kde program neskladáme písaním textu, ale skladaním farebných blokov ako puzzle. Bloky do seba zapadajú len tak, ako dávajú zmysel, takže sa nedá urobiť „preklep" v príkaze. Vďaka tomu sa žiaci sústredia na logiku algoritmu, nie na presné písanie — a hneď vidia výsledok na postavičke (sprite).
-
Vývojový diagram (vločkový diagram) — Je grafický spôsob zápisu algoritmu pomocou obrazcov a šípok: ovál označuje začiatok/koniec, obdĺžnik príkaz a kosoštvorec rozhodovanie (vetvenie). Pomáha nám naplánovať a názorne ukázať postup ešte predtým, než ho naprogramujeme. Šípky určujú, ktorým smerom postup pokračuje.
1. Poučka
Algoritmus je presný postup krokov, ktorými vyriešime úlohu. Počítaču zadávame algoritmus pomocou príkazov. Tri základné stavebné prvky algoritmu sú: postupnosť príkazov (idú za sebou), vetvenie (rozhodovanie ak – tak – inak) a cyklus (opakovanie príkazov). Program je algoritmus zapísaný v programovacom jazyku a ladenie (debugovanie) je hľadanie a opravovanie chýb v programe.
2. Vysvetlenie
Predstav si, že chceš niekomu vysvetliť, ako sa dostať do školy. Musíš povedať kroky presne a v správnom poradí — to je algoritmus.
Postupuj takto:
1. Rozdeľ úlohu na malé kroky — každý krok je jeden príkaz (napr. choď dopredu, otoč sa vľavo).
2. Použi vetvenie, keď sa treba rozhodnúť: AK je semafor zelený, TAK prejdi, INAK čakaj.
3. Použi cyklus, keď sa niečo opakuje: namiesto „choď, choď, choď, choď" napíšeš zopakuj 4-krát: choď.
4. Spusti program v detskom prostredí (napr. Scratch, Blockly, Baltík).
5. Odlaď ho — keď nerobí to, čo má, nájdi chybu a oprav ju. Chyba sa volá bug.
3. Príklady a prečo je to dôležité
Príklad 1 — algoritmus z bežného života (postupnosť): Zoraď kroky prípravy čaju do správneho poradia: zalej vrecko vodou, daj vrecko do hrnčeka, uvar vodu, nechaj lúhovať 3 minúty, vyber vrecko.
Čo viem: v algoritme záleží na poradí, každý krok musí nadväzovať na predchádzajúci.
Najprv musí byť voda horúca, preto prvý krok je uvar vodu.
Vrecko musí byť v hrnčeku skôr, ako ho zalejeme.
Vyberať vrecko má zmysel až po lúhovaní.
Poradie → uvar vodu, daj vrecko do hrnčeka, zalej vrecko vodou, nechaj lúhovať 3 minúty, vyber vrecko
Príklad 2 — cyklus a otáčanie: Robot má nakresliť štvorec so stranou 100 krokov. Zapíš to cyklom.
Štvorec má 4 rovnaké strany, preto sa dvojica príkazov zopakuje 4-krát.
Po každej strane sa robot otočí. Pri celom obchádzaní sa otočí dokola, teda o 360°.
360° : 4 = 90°
Program: zopakuj 4-krát: (choď 100 krokov, otoč sa o 90°) → 4 opakovania, otočenie o 90°
Príklad 3 — krokovanie programu s premennou: Čo povie postavička po skončení programu?
nastav skóre na 0
zopakuj 3-krát: (zmeň skóre o 5)
povedz skóre
Krokujeme a zapisujeme hodnotu premennej skóre:
na začiatku skóre je 0
po 1. opakovaní 0 + 5 = 5
po 2. opakovaní 5 + 5 = 10
po 3. opakovaní 10 + 5 = 15
Postavička povie → 15
Príklad 4 — vetvenie v hre: V hre platí: AK sa postavička dotkne nepriateľa, TAK ubudne 1 život, INAK hra pokračuje. Hráč mal 3 životy a nepriateľa sa dotkol dvakrát. Koľko životov mu ostalo?
Podmienka „dotkol sa nepriateľa?" bola splnená dvakrát, vtedy sa vykoná vetva TAK.
Každé splnenie odoberie 1 život: 3 − 1 − 1 = 1
Ostal → 1 život
Príklad 5 — ladenie (hľadanie bugu): Robot má nakresliť štvorec, program je zopakuj 3-krát: (choď 100 krokov, otoč sa o 90°). Nakreslí však len tri strany. Kde je chyba?
Čo viem: štvorec má 4 strany, takže cyklus musí prebehnúť 4-krát.
Uhol 90° je správny, chyba je v počte opakovaní.
Oprava → zopakuj 4-krát namiesto 3-krát
Príklad 6 — vetvenie z praxe: Doplň rozhodovanie pri prechode cez cestu so semaforom.
Podmienka musí mať odpoveď áno alebo nie: „Svieti zelená?"
Ak áno, môžem ísť. Ak nie, musím počkať.
Zápis → AK svieti zelená, TAK prejdi, INAK čakaj
Prečo je to dôležité: algoritmy riadia takmer všetku techniku okolo nás — telefóny, hry, autá, aj umelú inteligenciu. Keď sa naučíš premýšľať v krokoch, vetveniach a cykloch, vieš zadať úlohu počítaču a vyriešiť aj zložité problémy rozdelením na malé časti. To je zručnosť užitočná nielen v informatike, ale pri riešení každého problému.
Precvič si
- Ako sa volá chyba v programe?
- Ktorá štruktúra algoritmu sa používa, keď sa niečo opakuje: postupnosť, vetvenie, alebo cyklus?
- Koľko krokov urobí robot pri programe zopakuj 5-krát: (urob 2 kroky)?
- Premenná body je na začiatku 10. Program 2-krát vykoná zmeň body o 3. Akú hodnotu má body na konci?
- Robot má nakresliť šesťuholník so všetkými stranami rovnakými. Koľkokrát sa opakuje cyklus a o koľko stupňov sa robot otáča?
- Program: AK je teplota menšia ako 10 stupňov, TAK povedz „Bunda", INAK povedz „Mikina". Čo povie pri teplote 15 stupňov?
Ukáž riešenia
- Chyba v programe má anglický názov podľa chrobáka → bug
- Opakovanie tých istých príkazov zabezpečí → cyklus
- Pri každom opakovaní 2 kroky, 5 · 2 = 10 → 10 krokov
- 10 + 3 + 3 = 16 → 16
- Šesť strán znamená 6 opakovaní, celé otočenie 360° : 6 = 60° → 6-krát, o 60°
- Podmienka „15 je menej ako 10" nie je splnená, vykoná sa vetva INAK → Mikina