+ All Categories
Home > Documents > Základy algoritmizace

Základy algoritmizace

Date post: 10-Feb-2016
Category:
Upload: cole
View: 76 times
Download: 0 times
Share this document with a friend
Description:
Základy algoritmizace. Studijní část. Žá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. Žák používá základní algoritmické pojmy - PowerPoint PPT Presentation
39
Standardizace ICT výuky CHARAKTERISTKA MODULU MODUL Základy algoritmizace Studijní část Autor: Mgr. Radek Stejskal číslo snímku 1 15.06.2022
Transcript
Page 1: Základy algoritmizace

Standardizace ICT výuky

CHARAKTERISTKAMODULU

MODUL

Základy algoritmizace

Studijní část

Autor: Mgr. Radek Stejskal

číslo snímku 122.04.2023

Page 2: Základy algoritmizace

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

Page 3: Základy algoritmizace

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

Page 4: Základy algoritmizace

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

Page 5: Základy algoritmizace

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

Page 6: Základy algoritmizace

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

Page 7: Základy algoritmizace

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

Page 8: Základy algoritmizace

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

Page 9: Základy algoritmizace

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

Page 10: Základy algoritmizace

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

Page 11: Základy algoritmizace

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

Page 12: Základy algoritmizace

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

Page 13: Základy algoritmizace

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

Page 14: Základy algoritmizace

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

Page 15: Základy algoritmizace

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

Page 16: Základy algoritmizace

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

Page 17: Základy algoritmizace

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

Page 18: Základy algoritmizace

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

Page 19: Základy algoritmizace

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

Page 20: Základy algoritmizace

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

Page 21: Základy algoritmizace

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

Page 22: Základy algoritmizace

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

Page 23: Základy algoritmizace

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

Page 24: Základy algoritmizace

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

Page 25: Základy algoritmizace

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

- +

Page 26: Základy algoritmizace

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

- +

Page 27: Základy algoritmizace

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

Page 28: Základy algoritmizace

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“

Page 29: Základy algoritmizace

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

Page 30: Základy algoritmizace

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ů

Page 31: Základy algoritmizace

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

Page 32: Základy algoritmizace

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

Page 33: Základy algoritmizace

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

Page 34: Základy algoritmizace

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

Page 35: Základy algoritmizace

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

Page 36: Základy algoritmizace

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í

Page 37: Základy algoritmizace

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

Page 38: Základy algoritmizace

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

Page 39: Základy algoritmizace

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


Recommended