Blokové programování IV (proměnné)

Typický ročník8.
Interval vhodných ročníků7. – 1. SŠ
Učivoproměnné (princip a použití), výrazy s proměnnými, proměnné v cyklech a podmínkách, pojmenování a typy proměnných
Předcházející modul Blokové programování III (cykly a podmínky)
Navazující modul Blokové programování V (funkce)
Bezprostřední výsledky učení
  • Vysvětlí, co je proměnná a jaký má význam v programování.
  • Vysvětlí chování programu, ve kterém jsou použity proměnné.
  • Vytvoří blokový program využívající proměnné, podmínky a cykly.
  • Při tvorbě programu zvolí vhodné názvy proměnných a jejich typ (např. číslo, text).
  • Najde a opraví chyby v práci s proměnnými.
Související RVP výsledky učení
  • INF-INF-002-ZV9-005 Po přečtení jednotlivých kroků algoritmu vysvětlí celý postup a určí problém, který je daným algoritmem řešen.
  • INF-INF-002-ZV9-007 V blokově orientovaném programovacím jazyce vytvoří přehledný program, používá opakování, větvení programu, proměnné.
  • INF-INF-002-ZV9-008 Průběžně ověřuje správnost vytvářeného postupu, zkouší program, opravuje chyby, posoudí efektivitu postupu, programu.

Modul rozšiřuje základy blokového programování o klíčový koncept proměnných – jejich zavádění, použití, pojmenování i datové typy. Žáci se učí vytvářet programy, které uchovávají a mění hodnoty během běhu programu, a využívat proměnné v podmínkách i cyklech. Důraz je kladen také na čitelnost kódu a ladění chyb. Modul obsahuje úlohy se strukturovaným zadáním a lze jej vhodně doplnit otevřenějšími projekty nebo programováním fyzických robotů. Jako nezbytná prerekvizita pro tento modul je Blokové programování II (podmínky, ladění). Vhodné je i předchozí zařazení modulu Blokové programování III (cykly a podmínky), to ale není nezbytně nutné.

1. Proměnné: základní princip
Souhrn tématu

Proměnné: základní princip

Souhrn tématu

Proměnná je pojmenované úložiště, které udržuje hodnotu. Proměnná má jméno, pomocí kterého se na ni v programu odkazujeme, a hodnotu, kterou můžeme měnit (proto název „proměnná“). Proměnnou si lze představit jako obálku, na které je napsané jméno a uvnitř má schovanou hodnotu – číslo, které můžeme přepsat na jiné.

Nastavení nové hodnoty

Hodnotu proměnné nastavíme pomocí přiřazovacího příkazu, který se často zapisuje jméno ← hodnota. Příkaz x ← 1 nastaví hodnotu proměnné x na 1. V proměnné je pak uložená pouze poslední přiřazená hodnota, důležité je proto pořadí příkazů:

Zápis přiřazovacího příkazu

Různé programovací jazyky využívají odlišné zápisy přiřazovacího příkazu, například nastav x na 3, x ← 3, nebo x = 3. Zápis s rovnítkem (x = 3) může být matoucí, protože v matematice se využívá pro vyjádření rovnosti (nikoliv přiřazení hodnoty). Přesto ho využívá většina dnešních programovacích jazyků, protože je krátký a snadno zapsatelný na klávesnici. K vyjádření rovnosti v podmínkách se pak v těchto jazycích používá většinou dvojité rovnítko (x == 3).

2. Proměnné: obecné principy
Souhrn tématu

Proměnné: obecné principy

Souhrn tématu

Proměnná je pojmenované úložiště hodnoty, kterou lze měnit. V úvodní kapitole jsme viděli, jak můžeme měnit hodnotu jedné proměnné. V této kapitole budeme uvažovat i složitější situace, kdy dochází k interakci mezi více proměnnými a je potřeba rozlišovat mezi jménem a hodnotou proměnné.

Jméno vs. hodnota

Proměnná má jméno a hodnotu. Pomocí jména se na proměnnou v programu odkazujeme, když chceme její hodnotu použít nebo změnit. Mezi jménem a hodnotou je vhodné rozlišovat, například v příkazu vypiš x musí být x jméno proměnné, ale vypíše se její hodnota (nikoliv jméno). Pokud chceme kreslit kolečka rostoucí velikosti, použijeme proměnnou se jménem r nebo poloměr, která bude postupně nabývat hodnot 10, 20, 30 atd.

Typ proměnné

Proměnné nemusí být jen čísla. Kromě jména a hodnoty mají proto proměnné ještě typ, což může být například celé číslo, text ("mrkev"), nebo logická hodnota (pravda / nepravda).

Změna hodnoty

Přiřazovací příkaz umožňuje nastavit novou hodnotu proměnné, nebo upravit hodnotu stávající. Příkaz x ← 3 nastaví hodnotu proměnné x na 3, příkaz x ← x + 1 zvýší hodnotu proměnné x o 1. Na levé straně přiřazovacího příkazu je proměnná, kterou měníme, na pravé straně může být konkrétní hodnota, proměnná, nebo libovolný výraz.

3. Výrazy a cykly s proměnnými
Souhrn tématu

Výrazy s proměnnými

Souhrn tématu

Hodnoty a proměnné lze kombinovat do výrazů pomocí operátorů. Například podmínka x + 5 ≥ y obsahuje operátory + a ≥. Většina programovacích jazyků výrazy rovnou vyhodnocuje. Po provedení příkazu x ← 1 + 1 bude v proměnné x číslo 2, nikoliv nevyhodnocený výraz nebo dokonce text 1 + 1.

Aritmetické výrazy

S číselnými hodnotami a proměnnými můžeme počítat pomocí aritmetických operátorů + (sčítání), − (odčítání), * (násobení) a / (dělení). Priorita operací je stejná jako v matematice (tj. násobení a dělení má přednost před sčítáním a odčítáním) a stejně jako v matematice můžeme ovlivnit pořadí vyhodnocení pomocí závorek (např. 1 + 2 * 3 = 7, zatímco (1 + 2) * 3 = 9).

Porovnávání

Číselné hodnoty a proměnné můžeme porovnávat pomocí relačních operátorů < (menší než), ≤ (menší rovno), > (větší než), ≥ (větší rovno), = (rovno), ≠ (nerovno). Výsledkem porovnávání je logická hodnota (pravda/nepravda), kterou můžeme vypsat, ale většinou ji využíváme v rámci podmínek. Relační operátory mají typicky nižší prioritu než aritmetické, tj. napřed se vyhodnotí výrazy na levé a pravé straně relačního operátoru a teprve poté se provede porovnání (např. 1 + 3 < 2 + 4 se nejprve částečně vyhodnotí na 4 < 6, což je pravda).

Relační operátory v programovacích jazycích

Různé programovací jazyky využívají odlišné zápisy některých operátorů, často proto, aby se daly snadno napsat na klávesnici. Běžné je například x >= 3 místo x ≥ 3 a x != 3 místo x ≠ 3. Pro rovnost se typicky využívají dvě rovnítka (x == 3), protože jedním rovnítkem (x = 3) se často zapisuje přiřazovací příkaz.

Souhrn tématu

Cykly s proměnnými

Souhrn tématu

Během opakování příkazů se nám někdy hodí vědět, v kolikátém opakování (iteraci) právě jsme. K tomu lze využít následující konstrukci, v programovacích jazycích označovanou jako for cyklus:

Proměnnou, která se během cyklu automaticky mění (v tomto případě označenou k) nazýváme řídící proměnná cyklu. Řídící proměnné lze využít v libovolných výrazech uvnitř cyklu. For cykly lze do sebe vnořovat. Všimněte si pořadí, ve kterém se řídící proměnné mění:

Proměnné lze využít také v rámci podmínek cyklu opakuj dokud:

V tomto případě si musíme dávat obzvlášť pozor na zacyklení – situaci, kdy podmínka cyklu nikdy nepřestane platit a cyklus se tedy bude opakovat donekonečna. To se může stát například tehdy, když zapomeneme v těle cyklu měnit hodnotu proměnné, která figuruje v podmínce, když příkaz měnící proměnnou chybně odsadíme (takže nebude součástí cyklu), nebo když nevhodně formulujeme podmínku tak, že nepřestane platit navzdory změně proměnné:

5. Vývojové diagramy
6. Proměnné: pojmenování, typy
Souhrn tématu

Pojmenování proměnných

Souhrn tématu

Jména proměnných neovlivňují chování počítače při vykonávání programu, jsou však důležitá pro čitelnost kódu. Pokud pojmenujeme proměnnou celková_cena, neznamená to, že v ní bude automaticky uložený součet cen položek (to musíme zajistit vhodnými příkazy), je ale jasnější, co má proměnná reprezentovat, než když ji pojmenujeme c.

Velikost písmen hraje roli

Většina programovacích jazyků rozlišuje velká a malá písmena ve jménech, např. Cena a cena jsou dvě různé proměnné.

Povolená jména

Proměnné nelze pojmenovat libovolně. Konkrétní omezení se mezi programovacími jazyky mírně liší. Typická omezení jsou následující:

  • Jména mohou obsahovat pouze písmena, číslice a podtržítka. Kdyby se proměnná jmenovala a+b, nešlo by ji odlišit od operace sčítání. Číslicí ale nesmí jméno začínat. Kdyby se proměnná jmenovala 12, nešlo by ji odlišit od hodnoty 12.
  • Jména nemohou obsahovat mezery. Kdyby se proměnná jmenovala cena mrkve, nešlo by snadno poznat, zda nejde o dvě proměnné (cena a mrkve). Pokud chceme více slov, můžeme použít například podtržítko (cena_mrkve).
  • Jako jméno nelze použít tzv. „rezervovaná slova“, které už mají v programovacím jazyce určený význam (např. opakuj, nebo, pravda).

Povolená jména v blokových jazycích

Souhrn tématu

Typy proměnných

Souhrn tématu

Každá proměnná má svůj datový typ. Datový typ určuje, jaké hodnoty může proměnná obsahovat a které operace s ní lze provádět. Některé programovací jazyky požadují, aby byl typ proměnné uveden v programu, jiné odvozují typ automaticky podle přiřazené hodnoty. Programovací jazyky se liší také v tom, které datové typy nabízejí. Mezi nejběžnější datové typy patří:

  • celé číslo (123, −7) – s čísly lze provádět aritmetické operace (1 + 2) a porovnávat je (1 < 2)
  • desetinné číslo (1,23, –0,05) – typicky se používá tzv. „pohyblivá řádová čárka“, což umožňuje ukládat i velmi velká nebo malá čísla, ale s omezenou přesností (např. s 5 platnými číslicemi lze uložit 123 450 000 i 0,000 012 345, nikoliv však 123,456)
  • logická (pravdivostní) hodnota (pravda, nepravda) – reprezentuje informaci o pravdivosti, lze s nimi provádět logické operace (neplatí x, x nebo y, x a y). (Tento typ se často označuje jako „bool“ nebo „boolean“ podle George Boola, který popsal pravidla pro výpočty s logickými hodnotami.)
  • textový řetězec (“slovo”, “více slov”) – reprezentuje text libovolné délky. Pro odlišení od názvů proměnných se typicky vymezují pomocí “uvozovek” či ‘apostrofů’. Je potřeba rozlišovat mezi řetězcem obsahujícím číslo a číslem – “123” není 123. (Tento typ se často označuje jako „string“, z anglického slova pro řetězec.)
  • seznam (pole) ([1, 2, 3], [‘x’, ‘y’, ‘z’]) – umožňuje uložit více souvisejících hodnot do jedné proměnné. (Často jsou k dispozici i další typy pro ukládání různých kolekcí dat.)

Existují další typy pro specifické účely (např. čas, datum, soubor). Většinou je také možné definovat si vlastní typy. Výčtový typ umožňuje definovat proměnné, které mohou nabývat pouze několika předem určených hodnot (např. světový směr, den v týdnu). Záznamy umožňují definovat složené proměnné, které se skládají z několika pojmenovaných položek (např. záznam o zákazníkovi by mohl obsahovat jeho jméno, věk a datum posledního nákupu).

7. Úpravy a ladění programů s proměnnými
8. Závěrečné těžší příklady

Náměty na doplňkové aktivity

Kreslení s proměnnými

Návrh vlastního vizuálního vzoru, kde velikost, poloha nebo barva závisí na hodnotě proměnné – realizace v želví grafice nebo prostředí jako Scratch.

NAPIŠTE NÁM

Děkujeme za vaši zprávu, byla úspěšně odeslána.

Napište nám

Nevíte si rady?

Před položením dotazu si prosím projděte návody:

Prosíme, nezasílejte dotazy na prozrazení řešení úloh či vysvětlení postupu. Pokud hlásíte chybu, upřesněte prosím, v čem přesně spočívá a připojte snímek obrazovky.

Čeho se zpráva týká?

Vzkaz Hlášení chyby Obsah Ovládání Přihlášení Licence