9. ročník › Informatika › Informatika
0. Kľúčové fakty
-
Algoritmus — Algoritmus je presný, konečný postup krokov, ktorý vedie od vstupných údajov k vyriešeniu úlohy. Skôr než začneš písať program, premysli si algoritmus (napríklad slovne alebo vývojovým diagramom), pretože počítač vykoná presne to, čo mu zadáš, nie to, čo si myslel. Dobrý algoritmus musí byť jednoznačný, opakovateľný a vždy skončiť.
-
Program a programovací jazyk — Program je zápis algoritmu v programovacom jazyku, ktorému počítač rozumie (napr. Python, Scratch, Pascal, JavaScript). Programovacie prostredie (editor) ti umožní kód napísať, spustiť a sledovať jeho výsledok. Vyšší programovací jazyk je pre človeka čitateľný, kým procesor v skutočnosti pracuje so strojovým kódom — preklad zabezpečuje prekladač (kompilátor) alebo interpreter.
-
Premenná — Premenná je pomenované miesto v pamäti, do ktorého si program odkladá hodnotu, ktorá sa môže počas behu meniť (napr. pocet = 5). Predstav si ju ako pomenovanú škatuľku: meno (identifikátor) ostáva, ale obsah vieš prepísať. Priradenie hodnoty sa zvyčajne zapisuje znakom =, pričom napravo je hodnota a naľavo meno premennej.
-
Údajové typy — Každá hodnota má svoj typ: celé číslo (integer), desatinné číslo (float/real), text/reťazec (string) a pravdivostná hodnota (boolean — pravda/nepravda). Typ určuje, aké operácie sú s hodnotou možné — čísla vieš sčítať, no reťazce „sčítaním" spájaš (zreťazíš). Miešanie typov bez prevodu (napr. text + číslo) je častá príčina chyby v programe.
-
Vstup a výstup — Vstup je údaj, ktorý program získa od používateľa alebo zo súboru (napr. príkaz input()), výstup je to, čo program zobrazí alebo vráti (napr. print()). Komunikácia so svetom mimo programu je dôvod, prečo sú programy užitočné. Vždy over, že vstup je v očakávanom formáte, inak môže program spadnúť alebo počítať so zlými údajmi.
-
Podmienka (vetvenie) — Podmienka umožňuje, aby sa program rozhodol a vykonal rôzne kroky podľa toho, či je niečo pravda alebo nepravda (if, else, elif). Napríklad „ak je číslo väčšie ako 0, vypíš kladné, inak vypíš nekladné". Podmienka pracuje s pravdivostnými výrazmi a porovnávacími operátormi (==, !=, <, >, <=, >=), čím sa správanie programu prispôsobuje vstupným údajom.
-
Logické operátory — Operátory a zároveň (AND), alebo (OR) a nie (NOT) umožňujú spojiť viac podmienok do jednej zloženej. Napríklad „ak je vek ≥ 6 a zároveň vek ≤ 15, žiak chodí na základnú školu". Pochopenie logiky je kľúčové, lebo presne určuje, kedy sa daná vetva programu vykoná, a býva zdrojom ťažko odhaliteľných chýb.
-
Cyklus (opakovanie) — Cyklus umožňuje opakovať časť kódu viackrát bez toho, aby si ho musel písať dookola. Cyklus for použiješ, keď vopred vieš počet opakovaní (napr. desaťkrát), a cyklus while (kým), keď opakuješ, kým platí nejaká podmienka. Telo cyklu sa vykonáva opakovane, čím šetrí prácu a robí program kratším a prehľadnejším.
-
Nekonečný cyklus — Ak sa podmienka cyklu while nikdy nestane nepravdivou, cyklus beží donekonečna a program „zamrzne". Preto musí v tele cyklu existovať krok, ktorý podmienku postupne mení (napr. zvyšuje počítadlo). Je to bežná začiatočnícka chyba — vždy si over, že cyklus má jasnú „brzdu", ktorá ho ukončí.
-
Ladenie chýb (debugovanie) — Ladenie je hľadanie a oprava chýb v programe. Rozlišujeme syntaktickú chybu (zlý zápis, program sa nespustí), logickú chybu (program beží, ale počíta zle) a chybu počas behu (runtime — napr. delenie nulou). Pomáhajú výpisy medzivýsledkov, krokovanie programu a čítanie chybových hlások, ktoré často priamo ukazujú riadok s problémom.
-
Vývojový diagram — Vývojový diagram je grafické znázornenie algoritmu pomocou značiek: ovál (začiatok/koniec), obdĺžnik (príkaz/činnosť), kosoštvorec (rozhodovanie/podmienka) a šípky (poradie krokov). Pomáha premyslieť postup ešte pred písaním kódu a ľahko ukáže, kde sa program vetví alebo opakuje. Je to most medzi myšlienkou a hotovým programom.
-
Komentáre a čitateľný kód — Komentár je poznámka v kóde, ktorú počítač ignoruje, ale človeku vysvetľuje, čo daná časť robí (v Pythone za znakom #). Zrozumiteľné mená premenných, odsadenie (odriadkovanie) a komentáre robia program prehľadným pre teba aj pre iných. Dobre napísaný kód sa ľahšie ladí, opravuje a neskôr rozširuje.
1. Poučka
Program je postupnosť príkazov, ktoré počítač vykoná v presnom poradí. Premenná je pomenované miesto v pamäti, kam ukladáme údaj (číslo, text), ktorý sa môže meniť. Podmienka (vetvenie) rozhodne, ktorá časť programu sa vykoná podľa toho, či je niečo pravda, alebo nie. Cyklus opakuje príkazy, kým platí daná podmienka. Ladenie (debugging) je hľadanie a oprava chýb v programe.
2. Vysvetlenie
Program píšeme po krokoch:
1. Premenná – vytvoríme „škatuľku" s názvom a vložíme do nej hodnotu, napr. vek = 14. Hodnotu vieme neskôr prečítať aj zmeniť.
2. Podmienka – použijeme ak … tak … inak … (v jazykoch if/else). Počítač overí, či výraz platí (pravda/nepravda), a podľa toho sa rozhodne.
3. Cyklus – opakuj alebo kým (v jazykoch for, while) zopakuje rovnaké príkazy viackrát, aby sme ich nemuseli písať ručne.
4. Ladenie – program spustíme, sledujeme, čo robí, a ak je výsledok zlý, hľadáme chybu: preklep, zlú podmienku, nekonečný cyklus alebo nesprávne poradie príkazov.
3. Príklady a prečo je to dôležité
Príklad 1 — krokovanie cyklu so súčtom: Čo vypíše program sucet = 0, for i in range(1, 5): s telom sucet = sucet + i a na konci print(sucet)?
Príkaz range(1, 5) dá premennej i hodnoty 1, 2, 3, 4 (číslo 5 už nie).
Na začiatku: sucet je 0.
i = 1: sucet = 0 + 1 = 1
i = 2: sucet = 1 + 2 = 3
i = 3: sucet = 3 + 3 = 6
i = 4: sucet = 6 + 4 = 10
Cyklus skončil, program vypíše hodnotu premennej → 10
Príklad 2 — vetvenie, párne a nepárne číslo: Program načíta cislo = int(input()) a potom if cislo % 2 == 0: print("párne"), inak else: print("nepárne"). Čo vypíše pre vstup 7 a pre vstup 12?
Operátor % dáva zvyšok po delení.
Vstup 7: 7 % 2 = 1, podmienka 1 == 0 je nepravdivá, vykoná sa vetva else.
Vstup 12: 12 % 2 = 0, podmienka 0 == 0 je pravdivá, vykoná sa vetva if.
Výsledok → pre 7 „nepárne“, pre 12 „párne“
Príklad 3 — podmienka vnútri cyklu: Čo vypíše program for i in range(8, 12): s telom if i < 10: print(i, "menšie ako 10"), inak print(i, "aspoň 10")?
Premenná i postupne nadobudne 8, 9, 10, 11.
i = 8: 8 < 10 pravda, vypíše „8 menšie ako 10“.
i = 9: 9 < 10 pravda, vypíše „9 menšie ako 10“.
i = 10: 10 < 10 nepravda, vypíše „10 aspoň 10“.
i = 11: 11 < 10 nepravda, vypíše „11 aspoň 10“.
Spolu 4 riadky → 2-krát „menšie ako 10“ a 2-krát „aspoň 10“
Príklad 4 — ladenie nekonečného cyklu: Program i = 1 a while i <= 5: print(i) nikdy neskončí. Prečo a ako ho opraviť?
Krokujeme: i = 1, podmienka 1 <= 5 je pravdivá, vypíše sa 1.
V tele cyklu sa i nemení, takže podmienka je pravdivá stále a program vypisuje 1 donekonečna.
Cyklu chýba „brzda“: do tela doplníme i = i + 1.
Po oprave: i = 1, 2, 3, 4, 5, pri i = 6 je podmienka nepravdivá a cyklus skončí.
Chyba → v tele cyklu chýba zvyšovanie premennej i o 1
Príklad 5 — zložená podmienka s and: Program if vek >= 6 and vek <= 15: print("základná škola"). Vypíše niečo pre vek 15 a pre vek 16?
Operátor and je pravdivý, len ak platia obe podmienky.
Vek 15: 15 >= 6 pravda, 15 <= 15 pravda, spolu pravda, text sa vypíše.
Vek 16: 16 >= 6 pravda, 16 <= 15 nepravda, spolu nepravda, nevypíše sa nič.
Výsledok → pre 15 vypíše „základná škola“, pre 16 nič
Príklad 6 — z praxe, skóre v hre: Hráč zbiera mince. Premenná skore začína na 0 a za každú mincu sa vykoná skore = skore + 10. Akú hodnotu má skore po 3 minciach?
Mince prechádzame po jednej, ako cyklus for minca in range(3).
Po 1. minci: 0 + 10 = 10
Po 2. minci: 10 + 10 = 20
Po 3. minci: 20 + 10 = 30
Hodnota premennej skore → 30 bodov
Prečo je to dôležité: programovanie rozvíja logické a algoritmické myslenie – učí rozložiť problém na kroky. Tieto tri stavebné kamene (premenná, podmienka, cyklus) tvoria základ úplne každého programu na svete, od hry až po riadenie elektrárne.
Precvič si
- Akú hodnotu má premenná
x po príkazoch x = 4 a x = x + 3?
- Koľkokrát sa vykoná telo cyklu
for i in range(1, 6)?
- Čo vypíše príkaz
print(17 % 5)?
- Je výraz
vek > 10 and vek < 15 pravdivý pre vek 15?
- Čo vypíše program
n = 1, while n < 20: s telom n = n * 2 a na konci print(n)?
- Program
print("Mám " + 14 + " rokov") skončí chybou. Aká je to chyba a ako ju opraviť?
Ukáž riešenia
- Vpravo sa vypočíta 4 + 3 a výsledok sa uloží späť do x → 7
- Premenná i nadobudne 1, 2, 3, 4, 5, číslo 6 už nie → 5-krát
- 17 = 3 · 5 + 2, operátor % vráti zvyšok → 2
- 15 < 15 je nepravda, preto je nepravdivé celé and → nie, výraz je nepravdivý
- n = 1, 2, 4, 8, 16, 32; pri 32 už podmienka n < 20 neplatí → 32
- Text a číslo sa nedajú sčítať (chyba počas behu, zlý typ); číslo treba previesť na text príkazom str(14) → chyba typu, oprava pomocou str(14)