7. ročník › Informatika › Informatika
0. Kľúčové fakty
-
Premenná (variable) — Premenná je pomenované miesto v pamäti počítača, kam si program ukladá hodnotu (číslo, text alebo logickú hodnotu) a môže ju počas behu meniť. Predstav si ju ako škatuľku s menom, do ktorej vložíš obsah a kedykoľvek ho prečítaš alebo prepíšeš. Vďaka premenným si program „pamätá" údaje, napríklad skóre v hre alebo počet opakovaní, a pracuje s nimi aj vtedy, keď ich vopred nepoznáme.
-
Priradenie hodnoty (=) — Priradenie znamená vloženie hodnoty do premennej, napríklad pocet = 0 nastaví premennej pocet hodnotu nula. V programovaní znak = neznamená rovnosť ako v matematike, ale príkaz „nastav premennej túto hodnotu". Zápis pocet = pocet + 1 preto nie je nezmysel — vezme starú hodnotu, pripočíta jednotku a výsledok uloží späť, čím premennú zvýši.
-
Cyklus (loop) — Cyklus je riadiaca štruktúra, ktorá umožní opakovať ten istý blok príkazov viackrát bez toho, aby sme ich písali znova a znova. Namiesto desiatich riadkov „choď dopredu" napíšeme jeden cyklus, ktorý príkaz zopakuje desaťkrát. Cykly sú jedným zo základných stavebných prvkov algoritmov, lebo počítače vynikajú práve v rýchlom opakovaní rovnakej činnosti.
-
Cyklus s pevným počtom opakovaní (opakuj N-krát) — Tento typ cyklu vykoná telo presne toľkokrát, koľko vopred určíme, napríklad „opakuj 4-krát" pri kreslení štvorca. Používa sa vtedy, keď počet opakovaní poznáme dopredu. V prostredí Scratch je to blok „opakuj ( )", v textových jazykoch zodpovedá príkazu for, ktorý beží napríklad od 1 do 10.
-
Cyklus s podmienkou (opakuj, kým / while) — Tento cyklus opakuje príkazy dovtedy, kým platí (alebo neplatí) určitá podmienka, napríklad „opakuj, kým sa nedotkneš okraja". Hodí sa, keď vopred nevieme, koľko opakovaní bude treba — počet závisí od toho, čo sa deje počas behu programu. Dôležité je, aby sa podmienka raz zmenila, inak by cyklus bežal donekonečna.
-
Nekonečný cyklus — Nekonečný cyklus je taký, ktorý sa nikdy nezastaví, lebo jeho podmienka stále platí alebo chýba spôsob ukončenia. Niekedy ho chceme zámerne (napr. „stále" v hre, ktorá beží, kým ju nevypneme), inokedy vznikne omylom ako chyba a program „zamrzne". Preto pri cykloch s podmienkou vždy kontrolujeme, či sa podmienka časom naozaj splní a cyklus skončí.
-
Riadiaca premenná cyklu (počítadlo) — Počítadlo je premenná, ktorá si pamätá, koľkýkrát už cyklus prebehol, a po každom kole sa zvyčajne zvýši o jednotku. Vďaka nej môže program vedieť „som v treťom opakovaní" a podľa toho meniť svoje správanie. Počítadlá sa často používajú na sčítanie hodnôt, číslovanie krokov alebo na zastavenie cyklu po dosiahnutí cieľa.
-
Telo cyklu a odsadenie — Telo cyklu sú príkazy, ktoré sa opakujú; v blokových prostrediach sú vizuálne vnorené dovnútra bloku, v textových jazykoch sa označujú odsadením (medzerami). Správne určenie, čo patrí dovnútra cyklu a čo už mimo neho, rozhoduje o tom, či program funguje. Príkaz mimo tela cyklu sa vykoná len raz, hoci je tesne pod ním.
-
Vnorený cyklus (cyklus v cykle) — Vnorený cyklus je cyklus umiestnený vnútri iného cyklu; vonkajší cyklus spustí ten vnútorný pri každom svojom opakovaní. Používa sa napríklad pri kreslení mriežky, kde jeden cyklus rieši riadky a druhý stĺpce. Celkový počet opakovaní sa násobí — pri 3 a 4 opakovaniach sa telo vykoná 3 · 4 = 12-krát.
-
Detské programovacie prostredie (Scratch) — Scratch je vizuálne prostredie, kde sa program skladá z farebných blokov, ktoré do seba zapadajú ako puzzle, takže sa netreba učiť presný zápis a vyhneme sa preklepom. Postavička (sprite) na scéne vykonáva príkazy a žiak hneď vidí výsledok, čo uľahčuje pochopenie cyklov a premenných. Práve v takomto prostredí sa najľahšie testuje algoritmus krok po kroku.
-
Algoritmus — Algoritmus je presný a konečný postup krokov, ktorý vedie k vyriešeniu úlohy, podobne ako recept alebo návod. Skôr než začneme programovať, premyslíme si algoritmus — čo má program robiť a v akom poradí. Cykly a premenné sú nástroje, ktorými algoritmus zapíšeme tak, aby mu počítač rozumel a vykonal ho.
-
Podmienka (ak – then) — Podmienka umožní programu rozhodnúť sa: „ak platí toto, urob tamto", napríklad „ak sa dotkneš steny, otoč sa". V kombinácii s cyklami vytvára programy, ktoré reagujú na okolnosti a nie sú len mechanickým opakovaním. Podmienka pracuje s logickými hodnotami pravda/nepravda a je základom inteligentného správania programu.
-
Ladenie a hľadanie chýb (debugging) — Ladenie je hľadanie a opravovanie chýb (bugov) v programe, keď nerobí to, čo sme očakávali. Pri cykloch býva častou chybou zlý počet opakovaní alebo zabudnutá zmena premennej, ktorá vedie k nekonečnému cyklu. Programátor program spúšťa po krokoch, sleduje hodnoty premenných a postupne odhaľuje, kde sa postup pokazil.
1. Poučka
Premenná je pomenované miesto v pamäti, kam si program odkladá hodnotu (číslo, text), ktorá sa môže meniť. Cyklus je príkaz, ktorý zopakuje časť programu viackrát, aby sme nemuseli ten istý príkaz písať dookola. Programy zostavujeme z algoritmu — presného postupu krokov, ktoré vedú k vyriešeniu úlohy.
2. Vysvetlenie
- Premenná funguje ako škatuľka s menom. Napríklad
skore = 0 znamená: vytvor škatuľku s menom skore a daj do nej 0. Hodnotu vieš kedykoľvek zmeniť, napr. skore = skore + 1.
- Priradenie (znak
= alebo šípka ←) vloží hodnotu do premennej. Vždy sa najprv vypočíta pravá strana a výsledok sa uloží do premennej vľavo.
- Cyklus „opakuj N-krát“ (počítaný cyklus) zopakuje príkazy presne určený počet ráz, napr. „opakuj 4-krát: choď dopredu, otoč sa o 90°“.
- Cyklus „pokiaľ platí podmienka“ (podmienený cyklus, while) opakuje, kým je splnená nejaká podmienka, napr. „pokiaľ nie si pri stene: choď dopredu“.
- Počítadlo je premenná, ktorá v cykle ráta, koľkokrát sa niečo stalo (napr.
i = i + 1).
- Pri zostavovaní programu: 1. rozmysli postup (algoritmus), 2. urči, čo si treba zapamätať (premenné), 3. nájdi, čo sa opakuje (cyklus), 4. otestuj a oprav chyby.
3. Príklady a prečo je to dôležité
Príklad 1 — cyklus „opakuj N-krát" pri kreslení: Koľko príkazov ušetríme, keď štvorec v Scratchi nakreslíme cyklom opakuj 4-krát: (choď 100 krokov, otoč sa o 90°)?
Bez cyklu: každá strana potrebuje 2 príkazy, strán sú 4, teda 4 · 2 = 8 príkazov.
S cyklom: 1 blok „opakuj" a v jeho tele 2 príkazy, spolu 3 bloky.
Rozdiel: 8 − 3 = 5
Ušetríme → 5 príkazov
Príklad 2 — tabuľka hodnôt premennej: skore = 0, potom opakuj 4-krát: skore = skore + 2. Akú hodnotu má skore po každom kole?
Pred cyklom: skore je 0.
po 1. kole: 0 + 2 = 2
po 2. kole: 2 + 2 = 4
po 3. kole: 4 + 2 = 6
po 4. kole: 6 + 2 = 8
Na konci → 8
Príklad 3 — podmienený cyklus (odpočítavanie): cas = 3, potom pokiaľ cas > 0: ukáž cas, zníž cas o 1. Čo sa zobrazí a koľkokrát prebehne cyklus?
cas je 3: podmienka 3 > 0 platí, ukáže 3, cas bude 2
cas je 2: platí, ukáže 2, cas bude 1
cas je 1: platí, ukáže 1, cas bude 0
cas je 0: podmienka 0 > 0 neplatí, cyklus skončí
Zobrazí sa 3, 2, 1 → cyklus prebehne 3-krát
Príklad 4 — vnorený cyklus: Vonkajší cyklus opakuj 3-krát obsahuje vnútorný cyklus opakuj 4-krát: nakresli políčko. Koľko políčok vznikne?
Pri každom kole vonkajšieho cyklu prebehne celý vnútorný cyklus, teda 4 políčka.
Vonkajší cyklus má 3 kolá, počty sa násobia: 3 · 4 = 12
Vznikne → 12 políčok
Príklad 5 — telo cyklu (čo patrí dovnútra): Program: opakuj 5-krát: (zvýš pocet o 1), pod cyklom (mimo neho) povedz pocet. Na začiatku pocet = 0. Koľkokrát postavička prehovorí a čo povie?
Do tela cyklu patrí len „zvýš pocet o 1", vykoná sa 5-krát: pocet bude 5.
Príkaz „povedz" je mimo tela, vykoná sa iba raz, až po cykle.
Postavička prehovorí raz a povie → 5
Príklad 6 — z praxe, robotický vysávač: Ktorý typ cyklu opisuje správanie jazdi a uhýbaj prekážkam, kým nie je vyčistená celá miestnosť?
Vopred nevieme, koľko jázd bude treba – závisí to od miestnosti a prekážok.
Opakovanie trvá, kým platí podmienka „nie je čisto".
Typ cyklu → cyklus s podmienkou (while)
Prečo je to dôležité: cykly a premenné sú základ KAŽDÉHO programu — od hier cez mobilné aplikácie po riadenie strojov. Bez nich by sme museli každý opakujúci sa krok písať ručne, čo je pri tisícoch opakovaní nemožné. Naučíš sa rozmýšľať v postupoch (algoritmoch), čo pomáha aj v matematike a logickom uvažovaní.
Precvič si
- Ako sa volá premenná, ktorá v cykle ráta, koľkýkrát už prebehol?
- Čo urobí príkaz
pocet = pocet + 1, ak má pocet hodnotu 6?
- Koľkokrát sa vykoná telo cyklu opakuj 7-krát?
a = 10, potom opakuj 3-krát: a = a − 2. Akú hodnotu má a na konci?
- Vonkajší cyklus sa opakuje 5-krát a vnútorný 2-krát. Koľkokrát sa vykoná telo vnútorného cyklu?
x = 1, potom pokiaľ x < 20: x = x · 3. Akú hodnotu má x po skončení cyklu?
Ukáž riešenia
- Premenná ráta opakovania cyklu → počítadlo (riadiaca premenná cyklu)
- Vezme starú hodnotu, pripočíta 1 a uloží späť: 6 + 1 = 7 → pocet bude 7
- Počet opakovaní je pevne daný → 7-krát
- 10 − 2 = 8, potom 8 − 2 = 6, potom 6 − 2 = 4 → 4
- Počty opakovaní sa násobia: 5 · 2 = 10 → 10-krát
- 1 · 3 = 3 (3 je menej ako 20, pokračuje), 3 · 3 = 9 (stále menej), 9 · 3 = 27 (už nie je menej ako 20, cyklus skončí) → 27