410 likes | 795 Views
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
E N D
Základy algoritmizace Studijní část Autor: Mgr. Radek Stejskal
Žá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
Žák používá základní algoritmické pojmy • Žák algoritmizuje zadanou úlohu • Žák dovede vytvořit jednoduché makro pomocí záznamu makra • Žák sestaví vývojový diagram pomocí základních značek • Žák používá základní programovací konstrukce při tvorbě vývojových diagramů Základy algoritmizace
Základní pojmy • Makra • Vývojové diagramy • Základní značky • Větvení • Cykly s neznámým počtem kroků • Cykly s pevným počtem kroků Základy algoritmizace
Základní pojmy Algoritmizace S 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. Algoritmus Algoritmus 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. Základy algoritmizace
Základní pojmy Příklad algoritmu jízdy výtahem po jednotlivých krocích: • Přistoupíme k výtahu a stiskem tlačítka přivoláme kabinu. • Čekáme, dokud se neotevřou dveře. • Vstoupíme dovnitř a stiskem tlačítka zvolíme patro. • Počkáme, až nás výtah vyveze a otevřou se opět dveře. • 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. Základy algoritmizace
Základní pojmy Program a programovací jazyk Pokud 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 0680 A102 04 A103 48 A104 0C … Základy algoritmizace
Základní pojmy 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čů: • 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. • 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ý. Základy algoritmizace
Základní pojmy S tvorbou programů se pojí ještě několik pojmů: Klíčová slova Jedná 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. Základy algoritmizace
Makra Makro Makro 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 maker Makro 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. Základy algoritmizace
Makra Nahrá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: • Zvolíme záložku ZOBRAZENÍ. • Najdeme skupinu MAKRA. • Vybereme si položku ZÁZNAM MAKRA… Základy algoritmizace
Makra • 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. • Zvolíme si místo uložení „V tomto dokumentu“ a makro přiřadíme na klávesnici. Základy algoritmizace
Makra • 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. Základy algoritmizace
Makra • 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). • 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ámka Př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! Základy algoritmizace
Makra 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 = 12611584 End Sub Základy algoritmizace
Makra 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 viry Na 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. Základy algoritmizace
Vývojové diagramy Vývojové diagramy Pro 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 algoritmu V 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ček Zatí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ů. Základy algoritmizace
Vývojové diagramy 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í. Základy algoritmizace
Základní značky Mezní značky Použí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ýstup Tato 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. Start Konec Základy algoritmizace
Základní značky Zpracová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é. Sekvence Př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. Spojka Spojka 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ů. 1 1 Základy algoritmizace
Základní značky Spojnice Tyto 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! Základy algoritmizace
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!) Start Čti A,B Obsah=A*B Obvod=2*(A+B) Piš Obsah, Obvod Konec Základy algoritmizace
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) Ano Ne Základy algoritmizace
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. Ne Ano Ne Ano Základy algoritmizace
Větvení Start 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čí.) Čti X,Y X=Y - + Piš: „Nejsou shodná“ Piš: „Jsou shodná“ Konec Základy algoritmizace
Větvení Start 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ě.) Čti A,B,C A+B>C B+C>A A+C>B - + Piš: „Nelze sestrojit“ Piš: „Lze sestrojit“ Konec Základy algoritmizace
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“. Ne Základy algoritmizace
Větvení Start Př.: Slovní známka Načtěte jednu známku v podobě čísla a převeďte ji na slovní podobu. Čti ZNÁMKA ZNÁMKA - Piš: „Chyba“ 5 4 3 2 1 Piš: „Výborný“ Piš: „Chvalitebný“ Piš: „Dobrý“ Piš: „Dostatečný“ Piš: „Nedostatečný“ Konec Základy algoritmizace
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čátku U 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. Ne Ano Základy algoritmizace
Cykly s neznámým počtem kroků 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í. Základy algoritmizace
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ě.) Číslo = 10 Ano Ne Čti: Číslo Číslo = 0 Základy algoritmizace
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.) Start Čti: Účet Účet >= 500 Ne Ano Účet = Účet - 500 - Piš: Účet Konec Základy algoritmizace
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. Ne Ano Základy algoritmizace
Cykly s neznámým počtem kroků Start 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.) Součet=0 Čti C Součet=Součet+C C=0 - + Piš: Součet Konec Základy algoritmizace
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: • 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čí. I = seznam hodnot I = h1, h2 , …, hn Základy algoritmizace
Cykly s pevným počtem kroků • 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čí. • 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í. I = dolní, horní I = dolní (krok), horní Základy algoritmizace
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.) Start I = 1, 10 Násobek=I * 6 Piš: Násobek Konec Základy algoritmizace
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.) Start I = 15(2), 75 Mocnina=I * I Piš: Mocnina Konec Základy algoritmizace
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