Standardizace ICT výuky
CHARAKTERISTKAMODULU
MODUL
Základy algoritmizace
Studijní část
Autor: Mgr. Radek Stejskal
číslo snímku 122.04.2023
Standardizace ICT výuky
CHARAKTERISTKAMODULU
Požadované vstupní předpoklady
Charakteristika modulu• Žáci se naučí tvořit jednoduchá makra.• Seznámí se se základními pojmy z oblasti algoritmizace.• Naučí se vytvářet základní programovací konstrukce.
Moduly textový editor a tabulkový procesor.
Základy algoritmizace
číslo snímku 222.04.2023
Standardizace ICT výuky
CHARAKTERISTKAMODULU
Předpokládané výsledky1. Žák používá základní algoritmické pojmy2. Žák algoritmizuje zadanou úlohu3. Žák dovede vytvořit jednoduché makro pomocí záznamu makra4. Žák sestaví vývojový diagram pomocí základních značek5. Žák používá základní programovací konstrukce při tvorbě vývojových
diagramů
Základy algoritmizace
číslo snímku 322.04.2023
Standardizace ICT výuky
CHARAKTERISTKAMODULU
Obsah modulu1. Základní pojmy2. Makra3. Vývojové diagramy 4. Základní značky5. Větvení6. Cykly s neznámým počtem kroků7. Cykly s pevným počtem kroků
Základy algoritmizace
číslo snímku 422.04.2023
Standardizace ICT výuky
Studijní modul studijní text
AlgoritmizaceS algoritmy se setkáváme v běžném životě, aniž bychom si to mnohdy uvědomovali. Existuje řada činností, které mohou být velmi jednoduché (čištění zubů, přecházení silnice), nebo i velmi složité (řízení jaderné elektrárny či kosmické sondy). Pro uskutečnění takových činností pak lze sestavit návody. A algoritmy představují právě takové přesné návody, jakými jsou třeba recepty na vaření, instrukce pro ovládání nějakého zařízení nebo postupy k vytvoření výrobků. Díky těmto přesným postupům pak můžeme řešit libovolné druhy úloh.
AlgoritmusAlgoritmus je v podstatě návod, jak provést určitou činnost po přesně stanovených krocích. Jedná-li se o proces řešení problému pomocí počítače (programování), jde zpravidla o transformaci množiny vstupních údajů na množinu výstupních dat.Může být popsán mnoha různými způsoby – např. slovním popisem, pomocí matematických vztahů, různých diagramů nebo s využitím nějakého programovacího jazyka.
22.04.2023číslo snímku 5
Základy algoritmizace
Základní pojmy
Standardizace ICT výuky
Studijní modul studijní text
Příklad algoritmu jízdy výtahem po jednotlivých krocích:1. Přistoupíme k výtahu a stiskem tlačítka přivoláme kabinu.2. Čekáme, dokud se neotevřou dveře.3. Vstoupíme dovnitř a stiskem tlačítka zvolíme patro.4. Počkáme, až nás výtah vyveze a otevřou se opět dveře.5. Vystoupíme z kabiny.
Základní vlastnosti algoritmu:• Elementárnost - skládá se z jednoduchých a snadno realizovatelných činností (kroků).• Obecnost (hromadnost) - vyhovuje celé množině možných vstupů a výstupů, neměl by
řešit jeden konkrétní příklad - např. vynásobit libovolné dva zlomky a ne konkrétní dva.• Jednoznačnost (determinovanost) - každý krok algoritmu musí být jednoznačně určen (lze
jednoznačně určit, zda daný proces skončil či jakým krokem má pokračovat).• Rezultativnost - vede po konečném počtu kroků vždy ke správnému výsledku. Algoritmus
nesmí být nekonečný. Pro stejné vstupy dostaneme vždy stejné výsledky.
22.04.2023číslo snímku 6
Základy algoritmizace
Základní pojmy
Standardizace ICT výuky
Studijní modul studijní text
Program a programovací jazykPokud chceme, aby algoritmus vykonával nějaký konkrétní stroj (např. počítač), musíme jej přetvořit v program. Ten může být složen přímo z příkazů, kterým daný stroj rozumí a může je ihned vykonávat. Těmto příkazům říkáme strojový kód. Psaní ve strojovém kódu je ale pro člověka příliš těžké, proto se častěji programy tvoří ve vyšším programovacím jazyce, který musí být následně přeložen do jazyka daného stroje, aby mohl být vykonán.
Podívejme se na tyto jazyky ještě více zblízka:
Strojový kód• Programy se píší pomocí hexadecimálních čísel, která znamenají jednotlivé operace počítače a
adresy dat v paměti.• Takto napsané programy bývají obvykle krátké a poměrně rychlé, zato však dosti nepřehledné a
nepochopitelné.• Strojový kód je závislý na typu počítače a proto nelze hotový program spustit na libovolném stroji.• Příklad kódu:
A100 0680A102 04A103 48A104 0C…
22.04.2023číslo snímku 7
Základy algoritmizace
Základní pojmy
Standardizace ICT výuky
Studijní modul studijní text
Vyšší programovací jazyk• Příkazy jsou reprezentovány klíčovými slovy a názvy, které jsou pro člověka přijatelnější, než
strojový kód.• Programy jsou přehledně strukturované.• Jeden příkaz obvykle představuje mnoho instrukcí ve strojovém kódu, dochází tedy k výraznému
urychlení psaní programů.• Např. jazyky Pascal, Visual Basic, C++, Java, PHP.• Příklad kódu:
Begin write(‘Zadej číslo: ’); readln(cislo); write(‘Druhá mocnina čísla je: ‘,cislo*cislo);End.
Pro převod zdrojového textu do strojového kódu existují 2 typy překladačů:1. Interpret Pouze vykonává jednotlivé příkazy programu, k vykonání vždy potřebujeme interpret. Program se vykonává ihned, ale poměrně pomalu.2. Kompilátor Celý program přeloží do spustitelné podoby. Výsledkem bývá soubor s příponou EXE, který pak můžeme spustit nezávisle na překladači. Překlad je sice pomalý, ale výsledný program je již dosti rychlý.
22.04.2023číslo snímku 8
Základy algoritmizace
Základní pojmy
Standardizace ICT výuky
Studijní modul studijní text
S tvorbou programů se pojí ještě několik pojmů:
Klíčová slovaJedná se o množinu základních identifikátorů, které jazyk používá (begin, end, if, for,…). Mají přesně stanovený význam a nelze je žádným způsobem měnit.
Syntaxe Určuje pravidla, jak lze základní symboly jazyka kombinovat. Pokud použijeme v programu nějakou nepřípustnou kombinaci, překladač nám oznámí chybu v programu. Mohli bychom ji přirovnat ke gramatice přirozeného jazyka. Kdybychom porušili pravidla tvorby slov, stal by se náš jazyk pro ostatní nesrozumitelný.
Sémantika Přiřazuje význam jednotlivým syntaktickým pravidlům. Definuje jej programátor tím, jak jednotlivé příkazy skládá za sebe. Syntakticky správný program se sémantickou chybou bude sice bez problémů přeložen a spuštěn, ale nebude fungovat tak, jak by měl. Např. pracně spočítaný výsledek můžeme omylem přepsat jinou hodnotou a poté zobrazit uživateli.
22.04.2023číslo snímku 9
Základy algoritmizace
Základní pojmy
Standardizace ICT výuky
Studijní modul studijní text
MakroMakro je posloupnost operací, která lze použít k automatizaci úloh. Používají se zejména v kancelářských programech (např. Word nebo Excel) k tomu, aby nám usnadnily editaci textu nebo pomáhaly při pracných úpravách dokumentů. Často opakující se činnosti nadefinujeme do makra a poté je spuštěním makra provádíme daleko rychleji, než kdybychom vše prováděli ručními úpravami.
Jednoduchým příkladem může být třeba makro pro naformátování slova, na kterém je textový kurzor, písmem Arial, modrou barvou, tučně, kurzívou a velikostí 12 bodů. Vidíme, že je to pět akcí. Pomocí makra je pohodlně provedeme jako jednu akci.
Způsoby tvorby makerMakro můžeme vytvořit dvěma způsoby:• záznamem sledu operací prováděných v editoru, kdy se nahrávají příkazy zadávané z
klávesnice nebo myší,• napsáním kódu pomocí příkazů v jazyku Visual Basic ve vestavěném editoru. Oba postupy lze případně kombinovat. Nutno podotknout, že druhý z uvedených způsobů je podstatně náročnější a bez znalosti programovacího jazyka bychom makro vytvořili jen stěží. Ukážeme si tedy, jak vytvořit makro prvním způsobem.
22.04.2023číslo snímku 10
Základy algoritmizace
Makra
Standardizace ICT výuky
Studijní modul studijní text
MakraNahrávání maker
Celý postup si ukážeme v aplikaci MS Word 2007 na příkladu z úvodu. Vytvoříme si nový dokument, který bude obsahovat trochu cvičného textu. Textový kurzor umístíme na kterékoliv slovo.
Nyní můžeme začít definovat makro:
1. Zvolíme záložku ZOBRAZENÍ. 2. Najdeme skupinu MAKRA.3. Vybereme si položku ZÁZNAM MAKRA…
22.04.2023
Základy algoritmizace
číslo snímku 11
Standardizace ICT výuky
Studijní modul studijní text
Makra
4. Otevře se tento dialog a v něm upřesníme:• Název makra – můžeme ponechat stávající.• Makro přiřadit na – zvolíme, zda budeme chtít
makro přidat do panelu nástrojů, nebo zda jej budeme spouštět klávesovou zkratkou, nebo nemusíme zvolit ani jednu možnost a budeme jej spouštět z hlavního menu.
• Uložit makro v - určíme, jestli má být makro uloženo v globální šabloně (tj. bude automaticky součástí všech nových dokumentů) nebo pouze v tomto dokumentu.
• Popis makra – tady můžeme vložit stručnou charakteristiku makra.
5. Zvolíme si místo uložení „V tomto dokumentu“ a makro přiřadíme na klávesnici.
22.04.2023
Základy algoritmizace
číslo snímku 12
Standardizace ICT výuky
Studijní modul studijní text
Makra
6. V tomto dialogu provedeme:• V seznamu příkazů vybereme
naše makro.• Do pole Stiskněte klávesovou
zkratku zadáme námi zvolenou kombinaci kláves a stiskneme tlačítko Přiřadit.
• Změny uložíme opět do našeho dokumentu, pokud netrváme na uložení do šablony.
• Po stisknutí tlačítka Zavřít se již spustí nahrávání makra.
22.04.2023
Základy algoritmizace
číslo snímku 13
Standardizace ICT výuky
Studijní modul studijní text
7. Provedeme jednotlivé kroky, které chceme do makra zaznamenat:• Pomocí klávesnice přesuneme kurzor na začátek slova (Ctrl + levá šipka).• Označíme celé slovo (Ctrl + Shift + pravá šipka).• Provedeme formátování již pomocí myši (písmo Arial, velikost 12 bodů, tučné, kurzíva,
modrá barva písma).8. Ve skupině MAKRA zastavíme záznam akcí, klepnutím na příkaz ZASTAVIT ZÁZNAM.
Nyní je makro vytvořeno a můžeme jej použít pomocí klávesové zkratky nebo ve skupině MAKRA/ZOBRAZIT MAKRA/ SPUSTIT.
PoznámkaPři záznamu makra můžeme použít myš ke klepnutí na příkazy a možnosti, ale nikoli k výběru textu. Text musíme vybrat vždy pomocí klávesnice!
22.04.2023číslo snímku 14
Základy algoritmizace
Makra
Standardizace ICT výuky
Studijní modul studijní text
Zdrojový kód makra V úvodní části bylo řečeno, že makra lze zapsat pomocí programovacího jazyka. Každý krok, který jsme do makra nahráli pomocí záznamu, se uložil jako jeden příkaz v jazyku Visual Basic.
Takto vypadá kód našeho makra:
Sub Makro1()'' Makro1 Makro'' Selection.MoveLeft Unit:=wdWord, Count:=1 Selection.MoveRight Unit:=wdWord, Count:=1, Extend:=wdExtend Selection.Font.Bold = wdToggle Selection.Font.Italic = wdToggle Selection.Font.Name = "Arial" Selection.Font.Size = 12 Selection.Font.Color = 12611584End Sub
22.04.2023číslo snímku 15
Základy algoritmizace
Makra
Standardizace ICT výuky
Studijní modul studijní text
Jak souvisí makro s algoritmizací?V předešlé kapitole jsme si uvedli, že algoritmus je jakýmsi postupem, jak provést určitou činnost po přesně stanovených krocích. Jedním z praktických příkladů užití algoritmů je právě tvorba maker v kancelářských, případně i jiných aplikacích.
Makra a viryNa závěr se ještě zmíníme o nebezpečí vyplývajícím z podstaty maker. Protože makra jsou uložena ve formě příkazů programovacího jazyka, lze naprogramovat i taková makra, která se šíří z jednoho dokumentu do druhého a působí přitom nějaké škody. Takovým makrům se říká makroviry. V praxi je třeba dávat pozor při otevírání souborů z internetu, kdy nás editor obvykle upozorní, že otevíraný soubor obsahuje makra a my je můžeme buď povolit, nebo zakázat. Chceme-li neznámá makra povolit, měli bychom daný soubor nejprve otestovat antivirovým programem.
22.04.2023číslo snímku 16
Základy algoritmizace
Makra
Standardizace ICT výuky
Studijní modul studijní text
Vývojové diagramyPro snadnější práci a názorné zobrazení algoritmů byl vyvinut symbolický jazyk, který používá dohodnuté obrazce, jež představují jednotlivé kroky algoritmu. Tento jazyk se nazývá vývojový diagram. Je definován českou státní normou ČSN ISO 5807, která platí od 1. ledna 1996.
Základní složky algoritmuV algoritmech se setkáváme se třemi základními konstrukcemi, které označujeme jako posloupnost (sekvenci) příkazů, cyklus (iteraci) a podmíněnou operaci (rozhodnutí, selekci, výběr). Všechny mají své grafické značky s pevně daným významem a k nim se přidají ještě další doplňující značky, které mají buď řídící charakter (spojky, spojnice), nebo nám umožňují další potřebné operace (např. vstup a výstup).
Formát značekZatímco tvar značek je přesně stanoven a je závazný, samotné textové údaje uvnitř značek mohou být libovolného charakteru. Lze použít přirozený jazyk, ale častěji se setkáme spíše se syntaxemi převzatými z různých programovacích jazyků.
22.04.2023číslo snímku 17
Základy algoritmizace
Vývojové diagramy
Standardizace ICT výuky
Studijní modul studijní text
ProměnnéPro uchování hodnot potřebujeme tzv. proměnné. Jsou to námi zvolené názvy, které představují požadované hodnoty. V diagramech jim obvykle nastavujeme počáteční hodnoty, načítáme je ze vstupu, provádíme s nimi aritmetické operace, porovnáváme je mezi sebou, používáme je v logických výrazech a vypisujeme je na výstup.Proměnné používáme v diagramech přímo, bez nutnosti jejich předešlého uvedení. Názvy proměnných volíme co nejvýstižnější. Jméno proměnné by mělo souviset s její hodnotou, aby byl algoritmus co nejsrozumitelnější. Např. budeme-li chtít spočítat objem a obsah nějakého tělesa, použijeme proměnné OBJEM a OBSAH. Nevhodné názvy by byly třeba OB1 a OB2, u kterých intuitivně nerozpoznáme, co představují.
22.04.2023číslo snímku 18
Základy algoritmizace
Vývojové diagramy
Standardizace ICT výuky
Studijní modul studijní text
Základní značky
Mezní značkyPoužívají se pro znázornění začátku a konce algoritmu (programu) nebo jeho dílčí části (podprogramu). Jsou to koncové značky, proto mohou mít pouze jednu spojnici.
Vstup a výstupTato značka slouží pro načítání dat ze vstupu a pro zápis dat na výstup. Pomocí údaje uvnitř značky rozlišíme, zda chceme data načíst nebo vypsat. Např. PIŠ CISLO nebo ČTI POČET. Při výpisu proměnné uvedeme její název. Vypisované textové informace uzavíráme do uvozovek.
22.04.2023
Základy algoritmizace
číslo snímku 19
Start
Konec
Standardizace ICT výuky
Studijní modul studijní text
Základní značkyZpracování
Zpracování představuje jakoukoliv operaci (příkaz), jejímž výsledkem je transformace údajů, např. změna hodnoty nebo její přesunutí. V programování nejčastěji použijeme tento symbol pro výpočet výsledku a přiřazení do námi zvolené proměnné.
SekvencePři složitějším výpočtu často potřebujeme provést posloupnost příkazů. V tom případě použijeme několik značek zpracování za sebou.
SpojkaSpojka se používá k přerušení spojnice pro přechod na jinou navazující část diagramu. Smí mít pouze jeden vstup, nebo jeden výstup. Dvě odpovídající si spojky musí mít stejné označení. Své uplatnění spojky najdou spíše u rozsáhlejších diagramů.
22.04.2023
Základy algoritmizace
číslo snímku 20
1
1
Standardizace ICT výuky
Studijní modul studijní text
Základní značky
SpojniceTyto značky se znázorňují jako svislé nebo vodorovné čáry sloužící ke spojení jednotlivých značek v diagramu. Znázorňují tok dat a směr logického postupu. Standardní směr je shora dolů a zleva doprava. Pokud použijeme směr jiný, měli bychom spojnici opatřit šipkou.Spojnice se mohou podle potřeby spojovat. Pro zvýšení jasnosti by měl být u připojovaných spojnic opět uveden směr toku informací pomocí šipky.Křížení spojnic se nedoporučuje kvůli přehlednosti, ale v principu je možné ho provést.Samovolné rozvětvování spojnic není dovoleno!
22.04.2023
Základy algoritmizace
číslo snímku 21
Standardizace ICT výuky
Studijní modul studijní text
Základní značky
Př.: Výpočet obsahu a obvodu obdélníku
Načtěte délky stran obdélníku, vypočítejte a vypište jeho obsah a obvod.
(Nejprve umístíme mezní značku Start. Potom provedeme načtení stran obdélníku do proměnných A a B. V tomto případě jsou jednopísmenné názvy na místě.Nyní přiřadíme do proměnné Obsah hodnotu výrazu A*B a pak do proměnné Obvod hodnotu 2*(A+B).Nakonec obě proměnné zapíšeme na výstup a jako poslední zařadíme značku Konec.POZOR na použité tvary značek, každý symbol má svůj význam a nelze je zaměňovat!)
22.04.2023
Základy algoritmizace
číslo snímku 22
Start
Konec
Čti A,B
Obsah=A*B
Obvod=2*(A+B)
Piš Obsah, Obvod
Standardizace ICT výuky
Studijní modul studijní text
VětveníRozhodování
Tato značka umožňuje větvení programu. Na základě podmínky zapsané uvnitř bude stanoven způsob dalšího postupu algoritmu. Symbol má jednu vstupní a dvě výstupní spojnice.Platí-li podmínka, provedou se operace ve větvi „Ano“. Tato větev se častěji označuje znaménkem „+“. V opačném případě se provede větev „Ne“ označovaná obvykle znaménkem „─“. Která větev bude mít kladné či záporné označení si programátor může zvolit.Podmínka je logický výraz, u kterého jsme schopni jednoznačně rozhodnout, zda je platný, či nikoli. Může být jednoduchá (např. A=100) nebo složená, u které jsou jednotlivé výrazy spojeny logickým operátorem (např. A>10 A<1000). Nejčastěji se setkáme s logickými operátory:• „a“(, and) • „nebo“ (, or)
22.04.2023
Základy algoritmizace
číslo snímku 23
Ne
Ano
Standardizace ICT výuky
Studijní modul studijní text
VětveníÚplné větvení
Obě větve obsahují blok příkazů. Po ukončení libovolného z nich se spojují v jednu linii a následuje další značka diagramu.V praxi toto větvení používáme tam, kde potřebujeme na podmínku zareagovat v případě jejího splnění i v případě nesplnění. Např. po zadání hesla budeme chtít ohlásit, zda bylo správné nebo špatné.
Neúplné větveníJedna větev obsahuje blok příkazů, druhá větev je prázdná a spojuje se s první větví hned po provedení bloku příkazů.V algoritmech jej využijeme obvykle v případech, kdy potřebujeme provést operaci jen v případě splnění dané podmínky (podmíněná operace). Např. při testování data může zahrát hudba, když máme narozeniny, jinak se nestane nic.
22.04.2023
Základy algoritmizace
číslo snímku 24
Ne
Ano
Ne
Ano
Standardizace ICT výuky
Studijní modul studijní text
VětveníPř.: Zjištění shodnosti čísel
Načtěte 2 čísla a zjistěte, zda jsou shodná.
(Ze vstupu načteme 2 hodnoty, pro jednoduchost je pojmenujeme např. X a Y.Protože potřebujeme na oba stavy podmínky, použijeme úplné větvení.Porovnáme je mezi sebou. Když bude podmínka platit, vypíšeme , že čísla jsou shodná, když podmínka platit nebude, vypíšeme, že čísla shodná nejsou.Poté se obě větve spojí do jedné a algoritmus končí.)
22.04.2023
Základy algoritmizace
číslo snímku 25
Piš: „Jsou
shodná“
Start
Konec
X=Y
Piš: „Nejsou shodná“
Čti X,Y
- +
Standardizace ICT výuky
Studijní modul studijní text
VětveníPř.: Lze sestrojit zadaný trojúhelník?
Načtěte 3 strany trojúhelníku a zjistěte, zda jej lze sestrojit.
(Délky stran si načteme do proměnných A, B a C. Opět použijeme úplné větvení.Podmínka pro sestrojení trojúhelníku při znalosti délek stran zní, že součet libovolných dvou stran musí být větší, než strana třetí. K zapsání této podmínky použijeme logické operátory (and), protože všechny dílčí podmínky musí v tomto případě platit současně.)
22.04.2023
Základy algoritmizace
číslo snímku 26
Piš: „Lze sestrojit“
Start
Konec
A+B>C
B+C>A
A+C>B
Piš: „Nelze sestrojit“
Čti A,B,C
- +
Standardizace ICT výuky
Studijní modul studijní text
Větvení
PřepínačV některých algoritmech potřebujeme v jednom místě rozdělit postup do více než dvou větví. Uvnitř značky nebude tentokrát logická podmínka s výsledkem ano/ne, ale proměnná nebo výraz představující jednu z mnoha hodnot.Spojnice za symbolem rozhodování se pak mohou rozvětvit, ale u každé z nich musí být uvedena konkrétní hodnota (konstanta).Pokud by hodnota uvnitř symbolu neodpovídala žádné hodnotě u výstupních větví, provede se záporná větev „Ne“.
22.04.2023
Základy algoritmizace
číslo snímku 27
Ne
Standardizace ICT výuky
Studijní modul studijní text
VětveníPř.: Slovní známka
Načtěte jednu známku v podobě čísla a převeďte ji na slovní podobu.
22.04.2023
Základy algoritmizace
číslo snímku 28
Start
Konec
Piš:„Výborný“
Čti ZNÁMKA
-
1
ZNÁMKA
Piš: „Chvalitebný“
Piš: „Dobrý“
Piš: „Dostatečný“
Piš: „Nedostatečný“
2 3 4 5Piš:
„Chyba“
Standardizace ICT výuky
Studijní modul studijní text
Cykly s neznámým počtem krokůCykly
Cykly jsou takové části algoritmů, které se opakovaně provádějí. Počet těchto opakování může být předem zadán, nebo závisí na splnění nějaké podmínky pro ukončení cyklu. Existují tak tři základní druhy cyklů: cyklus s řídící proměnnou, cyklus s podmínkou na počátku a cyklus s podmínkou na konci.
Cyklus s podmínkou na začátkuU tohoto typu cyklu dochází nejprve k vyhodnocení podmínky. Pokud je podmínka splněna, provedou se příkazy ve větvi „Ano“ a následuje návrat na začátek cyklu. Jestliže podmínka splněna není, cyklus končí a dál se pokračuje ve větvi „Ne“.Logické hodnoty větví můžeme samozřejmě dle potřeby zaměnit.Z koncepce cyklu vyplývá, že ve větvi, která se cyklicky provádí, musí existovat příkaz, jenž způsobí změnu platnosti podmínky, aby mohl být cyklus ukončen.
22.04.2023
Základy algoritmizace
číslo snímku 29
Ne
Ano
Standardizace ICT výuky
Studijní modul studijní text
Pokud by tam takový příkaz nebyl, jednalo by se o tzv. nekonečný cyklus.Typickou vlastností cyklu s podmínkou na začátku je, že nemusí proběhnout ani jednou. To nastane v případě, že podmínka je neplatná hned při jejím prvním vyhodnocení.
22.04.2023číslo snímku 30
Základy algoritmizace
Cykly s neznámým počtem kroků
Standardizace ICT výuky
Studijní modul studijní text
Cykly s neznámým počtem krokůPř.: Ukázka nekonečného cyklu
Součástí blíže nespecifikovaného programu je cyklus, který má načítat čísla a jakmile bude zadáno číslo 10, dojde k jeho ukončení.
(Podmínka cyklu .je napsána korektně, v těle cyklu se nachází příkaz na čtení čísla, tudíž by mohlo dojít k zadání čísla, které způsobí ukončení cyklu. Jenže v těle cyklu následuje ještě příkaz Číslo = 0, který způsobí, že podmínka bude vždy vyhodnocena jako neplatná a cyklus tedy nikdy neskončí. Odstraněním výše uvedeného příkazu bude algoritmus pracovat správně.)
22.04.2023
Základy algoritmizace
číslo snímku 31
Ne
Číslo = 10
Čti: Číslo
Ano
Číslo = 0
Standardizace ICT výuky
Studijní modul studijní text
Cykly s neznámým počtem krokůPř.: Simulace vybírání peněz z účtu
Načtěte ze vstupu částku, která je uložena na účtu. Postupně vybírejte z účtu 500 Kč tak dlouho, dokud je to možné (nesmíme se dostat do záporu). Na závěr vypište zůstatek na účtu.
(Nejprve si ze vstupu načteme proměnnou Účet. Poté porovnáním zjistíme, zda máme na účtu alespoň 500 Kč. Jestli ano, odebereme z účtu 500 Kč a vrátíme se na začátek cyklu. V opačném případě cyklus končí, vypíšeme stav účtu na výstup a zakončíme algoritmus.)
22.04.2023
Základy algoritmizace
číslo snímku 32
Ne
Piš: Účet
Start
Konec
Účet >= 500
Čti: Účet
-
Ano
Účet = Účet - 500
Standardizace ICT výuky
Studijní modul studijní text
Cykly s neznámým počtem krokůCyklus s podmínkou na konci
Tento cyklus začíná příkazem a teprve poté následuje vyhodnocení podmínky. V případě, že podmínka neplatí, cyklus končí, jinak se přesune opět na začátek před první příkaz uvnitř cyklu. I zde platí, že uvnitř cyklu musí být nějaký příkaz, který způsobí změnu ve výrazu uvnitř podmínky.Logické hodnoty větví můžeme, stejně jako u předchozího typu cyklu, zaměnit.Protože podmínka se testuje až na konci cyklu, provedou se příkazy nad ní vždy minimálně jednou. Teprve potom může cyklus skončit na základě vyhodnocení podmínky.
22.04.2023
Základy algoritmizace
číslo snímku 33
Ne
Ano
Standardizace ICT výuky
Studijní modul studijní text
Cykly s neznámým počtem krokůPř.: Součet načtených čísel
Načítejte čísla ze vstupu a postupně je sčítejte. Jakmile bude načtené číslo rovno 0, ukončete cyklus a vypište výsledný součet.
(Všechna načtená čísla musíme přičítat k nějaké proměnné. Tuto proměnnou si pojmenujeme např. Součet a na začátku ji nastavíme na hodnotu 0. Provedeme načtení čísla ze vstupu do proměnné C a přičteme ji k proměnné Součet.Následně podmínkou zjistíme, jestli byla načtena 0. Pokud ne, vracíme se k novému načítání. Pokud ano, zapíšeme na výstup proměnnou Součet a algoritmus je u konce.)
22.04.2023
Základy algoritmizace
číslo snímku 34
Součet=0
Piš: Součet
Start
Konec
C=0
Čti C
-
+
Součet=Součet+C
Standardizace ICT výuky
Studijní modul studijní text
Cykly s pevným počtem krokůCyklus s pevným počtem kroků
Poslední ze tří typů cyklů bývá označován mnoha názvy. Říká se mu často cyklus s parametrem, cyklus s řídící proměnnou nebo cyklus s výčtem hodnot.Cyklus začíná šestiúhelníkovou značkou, které říkáme příprava. Uvnitř najdeme proměnnou (parametr) a seznam hodnot, kterých tato proměnná bude postupně nabývat. Pro každou tuto hodnotu se provede blok příkazů a poté cyklus skončí. Tím je dán pevný počet opakování.
Seznam hodnot může mít 3 podoby:a) Výčet hodnot ve tvaru I = h1, h2, …, hn. I je řídící
proměnná cyklu a h1, …, hn jsou jednotlivé hodnoty seznamu. Po jejich vyčerpání cyklus končí.
22.04.2023
Základy algoritmizace
číslo snímku 35
I = seznam hodnot
I = h1, h2 , …, hn
Standardizace ICT výuky
Studijní modul studijní text
Cykly s pevným počtem krokůb) Posloupnost hodnot s jednotkovým
krokem. Tu zapíšeme ve tvaru I = dolní mez, horní mez. Na začátku bude mít proměnná I hodnotu dolní meze a po každém průběhu cyklu se zvýší o 1. Jakmile dosáhne horní meze, cyklus se vykoná naposledy a skončí.
c) Posloupnost hodnot s pevným krokem má tvar I = dolní mez (krok), horní mez. Funguje stejně jako předešlý způsob, ale hodnota řídící proměnné se zvyšuje o hodnotu krok uvedenou v závorce za dolní mezí.
22.04.2023
Základy algoritmizace
číslo snímku 36
I = dolní, horní
I = dolní (krok), horní
Standardizace ICT výuky
Studijní modul studijní text
Cykly s pevným počtem krokůPř.: Malá násobilka
Vypište malou násobilku čísla 6.
(Ve značce příprava použijeme seznam s jednotkovým krokem. Dolní mez nastavíme na 1 a horní na 10, protože v malé násobilce je nejvyšší číslo pro násobení právě 10.V bloku příkazů nejprve spočítáme násobek čísla 6 a zapíšeme jej na výstup.Následuje návrat na začátek cyklu a řídící proměnná se o 1 zvýší.Jakmile I dosáhne hodnoty 11, cyklus končí a tím také celý algoritmus.)
22.04.2023
Základy algoritmizace
číslo snímku 37
Piš: Násobek
Start
Konec
Násobek=I * 6
I = 1, 10
Standardizace ICT výuky
Studijní modul studijní text
Cykly s pevným počtem krokůPř.: Výpis mocnin
Spočítejte a vypište druhé mocniny všech lichých čísel z intervalu <15, 75>.
(Ve značce příprava použijeme tentokrát seznam s pevným krokem. Dolní a horní mez jsou dány intervalem, ale krok musíme zvolit sami. Protože potřebujeme procházet jen lichá čísla, zvolíme krok 2. Proměnná I tak bude postupně nabývat hodnot 15, 17, 19, …, 75.V bloku příkazů spočítáme druhou mocninu a vypíšeme ji.)
22.04.2023
Základy algoritmizace
číslo snímku 38
Piš: Mocnina
Start
Konec
Mocnina=I * I
I = 15(2), 75
Standardizace ICT výuky
CHARAKTERISTKAMODULU
Seznam použitých zdrojů SKALKA, František. Základy programování v Pascalu [online]. Brno,
2006 [cit. 2010-06-01]. Dostupné z WWW: <www.sosinformatikybrno.cz/data/informatika/brozura.pdf>.
TAUFER, I., HRUBINA, J., TAUFER, J. Algoritmy a algoritmizace: vývojové diagramy, sbírka řešených příkladů. Pardubice: Univerzita Pardubice, 2001.
Nápověda MS Office
Základy algoritmizace
číslo snímku 3922.04.2023