Algoritmy a datové struktury 1

Rozměr: px
Začít zobrazení ze stránky:

Download "Algoritmy a datové struktury 1"

Transkript

1 Modul 1 Vývojové diagramy a příkazy jazyka Borland Pascal Text pro distanční studium Ing. Eliška Treterová Ostravská univerzita v Ostravě, Přírodovědecká fakulta Katedra Informatiky a počítačů Ostrava 2003

2 2

3 Obsah Úvod Algoritmizace 1. část Vývojové diagramy Sestavení algoritmu posloupnost (sekvence) Větvení (alternativa, rozhodování) Korespondenční úkol č Algoritmizace 2. část Cykly (Iterace) cyklus s podmínkou na konci (s výstupní podmínkou) cyklus s podmínkou na začátku (se vstupní podmínkou) cyklus s řídící proměnnou Korespondenční úkol č Algoritmus a program Postup při tvorbě programu Terminologie Programovací jazyk PASCAL Struktura programu v BORLAND PASCALU Zdrojový text programu Vstup hodnot do operační paměti Výstup hodnot z operační paměti Datové typy a jejich rozdělení Číselné datové typy Celočíselné datové typy Datové typy pro čísla s desetinnou částí Příkazy jazyka Borland Pascal Jednoduché příkazy Přiřazovací příkaz Příkaz skoku Strukturované příkazy Složený příkaz Příkaz pro rozhodování (IF) Příkaz pro rozhodování CASE Příkazy cyklů Příkaz cyklu s podmínkou na konci (REPEAT UNTIL) Příkaz cyklu se vstupní podmínkou WHILE Příkaz cyklu s řídící proměnnou - FOR Korespondeční úkol č Závěr...64 Literatura

4 Úvod Studijní text, který máte před sebou, je adresován zájemcům o studium předmětu Algoritmy a datové struktury. Cílem tohoto studijního textu je seznámit studenty s problematikou tvorby algoritmů a jejich zakreslení ve formě vývojových diagramů a naučit studenty využívat při řešení úkolů programovací jazyk Borland Pascal. Při tvorbě vývojových diagramů se naučíte rozdělit řešený problém na jednotlivé dílčí kroky, zvládnete problematiku rozhodování a opakování zvolených kroků. Po probrání tvorby vývojových diagramů následuje část programátorská, kdy budete seznámeni s programovacím jazykem Borland Pascal. Tento programovací jazyk byl zvolen proto, že je přímo pro výuku programování vytvořen. Jeho prostředí není příliš složité a je pochopitelné i pro úplné začátečníky. Programovací jazyk Borland Pascal je sestaven tak, že hlídá jednotlivé kroky programátora a usměrňuje jeho činnost, což ve svém důsledku vede k pochopení základních principů programování. Pro zvládnutí učiva tohoto studijního textu se předpokládá základní znalost prostředí programovacího jazyka Borland Pascal nebo prostředí programovacího jazyka Borland C. Věřím, že čas, který strávíte studiem, nebude pro vás ztracený, a poskytne vám dostatek informací, abyste dobře pochopili význam programování při řešení úkolů z různých oblastí. 4

5 1. Algoritmizace 1. část Cíl: Po nastudování této kapitoly byste měli umět: - definovat pojmy algoritmus, vývojový diagram, posloupnost a, rozhodování - použít předdefinované grafické prvky pro sestavení vývojových diagramů - zakreslit ve vývojovém diagramu posloupnost - zakreslit ve vývojovém diagramu větvení (rozhodování) - rozpoznat, kdy je třeba použít úplné větvení, neúplné větvení a vnořené větvení Klíčová slova: Algoritmus, vývojový diagram, program, posloupnost, větvení, neúplné větvení, úplné větvení, vnořené větvení. Průvodce studiem: Dá se předpokládat, že jste již pojem algoritmus slyšeli, ale neměli jste potřebu jej použít. V našem běžném životě neustále probíhají činnosti, které my nejsme zvykli pojmem algoritmus označit, ale přesto se o algoritmus jedná. V této kapitole se vám pokusím toto vysvětlit. Algoritmus postup, který určuje, co máme dělat, abychom vyřešili libovolnou úlohu. Algoritmus můžeme zapsat: a) slovně - jen jednoduché postupy, u složitějších postupů je slovní popis nepřehledný a nesrozumitelný. Příkladem algoritmů zapsaných slovně jsou kuchařské recepty. b) graficky - při tomto zápisu se používají grafické symboly, které mají předem definovaný význam. Nejrozšířenější formy grafického zápisu jsou vývojové diagramy a strukturogramy. V dalším výkladu jsou použity pouze vývojové diagramy. Algoritmy v běžném životě: S algoritmy se běžně setkáváme. Těmito algoritmy jsou například recepty na vaření, postup ovládání video kamery, postup sestavení nábytku z jednotlivých dílů, apod. V dalším výkladu se bude jednat vždy o algoritmy zaměřené na matematické výpočty. 5

6 Průvodce studiem: Pokud stojíte před úkolem popsat postup činnosti tak, aby uživatel dospěl k požadovanému cíli (tedy máte sestavit algoritmus), je důležité přizpůsobit algoritmus znalostem a schopnostem potenciálního uživatele. Algoritmus práce s počítačem bude jiný pro člověka, který k počítači usedá poprvé, než pro člověka, který už má určité zkušenosti. Vlastnosti algoritmů: Elementárnost - algoritmus se skládá z konečného počtu jednoduchých kroků Determinovanost v každé fázi zpracování musí být určen další postup Konečnost činnost algoritmu skončí v reálném čase Rezultativnost od libovolných vstupních dat musíme dospět k výsledkům Hromadnost algoritmus musí být použitelný pro všechny úlohy stejného typu Algoritmus zapsaný v programovacím jazyku se nazývá program Vývojové diagramy Slovní zápis algoritmu má jen velmi omezené možnosti použití. Aby náš algoritmus byl srozumitelný a použitelný pro širší okolí uživatelů, zapisujeme jej takřka vždy ve formě vývojových diagramů. Ke kreslení vývojových diagramů používáme standardní grafické symboly. Koncová značka Začátek Značka přiřazení A:= 0 Vstup nebo výstup dat Tiskni: z Značka rozhodování U >0 Značka podprogramu Záměna 6

7 Jednotlivé symboly spojujeme čárami a spojkami. Ve vývojovém diagramu dodržujeme směr shora dolů, proto není nutné svislé čáry kreslit se šipkou. Čáru zakončujeme šipkou v případě, kdy se směr mění, např. při naznačení cyklu. Spojky použijeme v případě, že vývojový diagram nevejde na jednu stránky a pokračuje na straně další. Pak je vhodné pomocí spojek označit návaznosti. Ukázka jednoduchého algoritmu: Začátek 1 spojka Z:=0 U:= 10 Z:=z+d U:= u -1 Tisk: Z Konec U = 0 1 spojka Průvodce studiem: Pojem algoritmus již znáte. Musíte se nyní tedy naučit zapsat algoritmus v přehledné a srozumitelné podobě, tedy ve formě vývojových diagramů. Ve vývojových diagramech již budeme používat zápis v souladu s programovacím jazykem, který v další etapě zajistí zpracování algoritmu. My budeme používat programovací jazyk BORLAND PASCAL. Kreslení vývojových diagramů se v současné době využívá.jen velmi málo. Je to dáno úrovní výpočetní techniky a úrovní programovacích prostředí, kdy běžně používané osobní počítače umožňují ladění programu stylem pokus omyl, tzn.např. pokud se objeví nějaký problém s počtem průchodů cyklem, nezačneme sestavovat vývojový diagram a přemýšlet nad ukončovací podmínkou cyklu, ale přímo ve zdrojovém textu vyzkoušíme změnu, která nás napadne jako první. Nějaký výsledek dostaneme, pokud to opět není správně, tak vyzkoušíme něco jiného a to děláme tak dlouho, až dojdeme k požadovanému výsledku. Vývojové diagramy zařazené v dalším textu řeší velmi jednoduché problémy a měly by vám umožnit pochopení základních programátorských struktur. 7

8 1.2. Sestavení algoritmu Algoritmus je sestaven na základě tří základních struktur: 1. Posloupnost (sekvence) 2. Větvení (alternativa, rozhodování) 3. Cykly (iterace, opakování) 1.3. posloupnost (sekvence) Posloupnost je řada za sebou navazujících kroků, jejichž pořadí je předem pevně dáno. Posloupnost má svůj začátek a konec. Žádný krok nemůže být vynechán. Posloupnost se v algoritmech objevuje samostatně nebo jako součást složitějších struktur (větvení, cykly). Začátek Příkaz 1.. Příkaz N Konec 8

9 Příklad: Popište pomocí vývojového diagramu algoritmus záměny obsahu proměnných. Pro vyřešení tohoto úkolu musíme zavést pomocnou proměnnou, do které uložíme hodnotu z proměnné A (první ze zaměňovaných hodnot). Pak můžeme hodnotu proměnné A přepsat hodnotou proměnné B. Po tomto kroku je obsah obou proměnných (A i B ) stejný, což ale nevadí. V pomocné proměnné máme uloženou původní hodnotu A, proto nyní obsah pomocné proměnné uložíme do B. Začátek Tisk: zadej číslo Čti A Tisk: zadej číslo Čti B pom := A A := B B:= pom Tisk A,B Konec 9

10 1.4. Větvení (alternativa, rozhodování) Větvení použijeme tam, kde podle okolností mají být některé kroky v posloupnosti vynechány, přidány nebo nahrazeny jinými. Větvení obsahuje obvykle tří části. První částí je otázka, na kterou existuje kladná nebo záporná odpověď. Druhou částí je krok, který se provede v případě kladné odpovědi na otázku. Třetí částí je krok, který se provede v případě záporné odpovědi na otázku. První část větvení (otázka) je povinná, zbylé dvě části jsou nepovinné. Pokud však současně chybí druhý i třetí krok, ztrácí větvení smysl. Průvodce textem: Prakticky neustále se rozhodujete a svou další činnost rozvíjíte podle toho, jak jste se rozhodli. Ve vývojovém diagramu máte možnost rozhodování jednoduchým způsobem zakreslit. Musíte ale vždy přesně naznačit i ty větve rozhodování, ve kterých se žádná činnost nebude provádět. Ve vývojovém diagramu se tedy může objevit úplné větvení neúplné větvení vnořené větvení a) úplné větvení (alternativa) - jsou zařazeny kroky pro kladnou i zápornou odpověď. Podle toho, jak je sestavena podmínka, budou zařazeny další činnosti. Je proto nutné nějakým způsobem označit, která větev se provádí v případě, že podmínka je pravdivá (říkáme také že podmínka platí) a která větev se provádí, když podmínka není pravdivá (neplatí). V dalším textu je vždy pravdivost podmínky označena symbolem + (plus) a nepravdivost symbolem (mínus). + - Podmínka Příkaz1 Příkaz2 10

11 Příklad: Popište pomocí vývojového diagramu algoritmus načtení dvou čísel a výpočtu podílu těchto dvou čísel. Pozor:!! Nelze dělit nulou!! Rozbor: A,B slouží pro uložení hodnot, P slouží pro uložení výsledku dělení. Při řešení je použito úplné větvení, tzn. provádí se činnost v kladné i záporné větvi. Začátek Tisk: zadej číslo čti: A Tisk: zadej číslo Čti: B + B<>0 - P := A / B Tisk: P Tisk: nulou nelze dělit Konec 11

12 b) neúplné větvení (alternativa) - chybí krok pro kladnou nebo pro zápornou odpověď (častější je situace, kdy chybí krok pro zápornou odpověď). V logickém sledu činností sice chybí krok pro zápornou odpověď, ale ve vývojovém diagramu je nutné tuto skutečnost zakreslit. + - podmínka Příkaz1 Příklad: Popište pomocí vývojového diagramu algoritmus, který v případě, že číslo A je záporné, vypočítá jeho absolutní hodnotu. Obsah proměnné A vytiskne. Rozbor: K řešení je použito neúplné větvení, tzn. činnost se provádí pouze v jedné větvi. V tomto případě v kladné větvi. Záporná větev ale musí být ve vývojovém diagramu zakreslena. Začátek Čti A + A < 0 - A := ABS(A) Tisk A Konec 12

13 c) Vnořené větvení (alternativa) krok pro kladnou nebo pro zápornou odpověď (nebo pro obě odpovědi) je tvořen opět větvením + Podmínka Podmínka 2 Příkaz3 Příkaz1 Příkaz2 Příklad: Popište pomocí vývojového diagramu algoritmus, který zjišťuje, zda číslo A je menší nebo větší nebo rovno nule. Rozbor: Při rozhodování musíme řešit tři různé situace. Pro řešení v těchto případech je vhodné použít vnořené větvení, které celý rozhodovací proces zkrátí a zjednoduší (nemusíme sestavovat třetí podmínku). K řešení je ale také možné sestavit tři neúplná větvení. 13

14 a) k řešení je použito vnořené větvení. Začátek Čti A + A < 0 - Tisk: A je menší než nula + - A > 0 Tisk: A je větší než nula Tisk: A je rovno nule Konec Průvodce studiem: Při tomto řešení vám stačí pouze dva rozhodovacími bloky. Testovat třetí podmínku (v našem případě by to bylo A = 0 ) není třeba, protože pokud neplatí podmínka A < 0 a neplatí podmínka A > 0, pak může nastat pouze stav A = 0. Uvedený příklad je dosti elementární (což je pro výuku nutné) a možná si teď řeknete, že je vnořené větvení zbytečné. Jeho velký přínos objevíte tehdy, když budete muset řešit nějakou situaci, která má tři varianty a jedna z těchto variant je obtížně vyjádřitelná podmínkou. Příkladem může být situace, kdy budete muset zjistit, zda znak je malé písmeno, nebo je velké písmeno nebo to vůbec není písmeno. Vyjádření podmínek pro první a druhou situaci je celkem jednoduché, složitěji se jeví třetí varianty. A tady bych doporučila vnořené větvení, které vám dá možnost třetí podmínku nesestavovat. 14

15 b) k řešení je použito neúplné větvení Začátek Čti A + A < 0 - Tisk:A je menší než nula + A > 0 - Tisk:A je větší než nula + A = 0 - Tisk:A je rovno nule Konec Průvodce studiem: Při tomto řešení musíte sestavit všechny tři varianty rozhodování. Při každém rozhodování chybí činnosti v záporné větvi. 15

16 Shrnutí: Algoritmus je postup řešení, které vede k dosažení stanoveného cíle. Algoritmy nejčastěji znázorňujeme v grafické podobě ve formě vývojových diagramů, protože tím zajistíme srozumitelnost a názornost řešení pro potenciální uživatele. Při kreslení vývojových diagramů používáme předem domluvené značky. Do algoritmu zařazujeme posloupnosti příkazů, rozhodovací bloky a bloky pro cyklické opakování některých činností ty jsou obsahem další kapitoly. Kontrolní otázky: 1) Jaké vlastnosti by měl mít algoritmus? 2) Jaká omezení vzniknou, pokud při sestavení algoritmu použijeme pouze posloupnost příkazů? 3) Kdy do algoritmu zařazujeme větvení? 4) Jaký je rozdíl mezi úplným a neúplným větvením? 5) Kdy je vhodné použít vnořené větvení? 1.5. Korespondenční úkol č.1 Zadání: Popište pomocí vývojového diagramu algoritmus, který zjišťuje, zda načtené číslo X leží uvnitř nebo mimo nebo na hranici intervalu (1,10). Rozbor: Číslo X leží uvnitř, pokud platí podmínka: (X>1) AND (X<10) Číslo X leží mimo, pokud platí podmínka: (X<1) OR (X>10) Číslo X leží na hranici, pokud platí podmínka: (X=1) OR (X=10) Řešte: b) pomocí vnořeného větvení c) pomocí neúplného větvení 16

17 2. Algoritmizace 2. část Cíl: Po nastudování této kapitoly byste měli umět: - využívat v algoritmech cykly - rozpoznat, kterou variantu cyklu je vhodné do algoritmu zařadit - vysvětlit rozdíl mezi rozhodováním a cykly Klíčová slova: Cyklus, iterace, podmínka na začátku, podmínka na konci, tělo cyklu, řídící proměnná. Průvodce studiem: V úvodní kapitole jste měli možnost se seznámit s problematikou tvorby vývojových diagramů. Výklad končil u možnosti zařazovat do řešení rozhodování. To by vám ale brzy přestalo stačit, protože velmi často se dostanete do situace, kdy se některé činnosti opakují v závislosti na tom, zda nastala či nenastala nějaká situace. A právě to, jak zajistit opakování některých kroků, je cílem této kapitoly Cykly (Iterace) V algoritmech velmi často nastává situace, kdy musíme některé činnosti zopakovat. To, zda se opakování provede či nikoliv, závisí vždy na vyhodnocení určité podmínky (otázky). Buď přesně známe, kolikrát se má činnost opakovat, pak podmínkou kontrolujeme, zda již bylo opakování provedeno v potřebném počtu. Nebo opakování závisí na vzniku určité situace, např. při výpočtu dojde k překročení nějaké extrémní hodnoty, pak podmínkou kontrolujeme vznik této situace. Existují dva základní typy cyklů, a sice cyklus, který nejdříve vykoná určité příkazy a pak teprve vyhodnocuje podmínku opakování, a pak cyklus, který nejdříve vyhodnocuje podmínku opakování a pak provádí příkazy. V dalším výkladu je zařazen ještě cyklus s řídící proměnnou, který je určitým zjednodušením cyklu s podmínkou na začátku. Tento cyklus je velkým zjednodušením práce programátora. Budeme tedy rozlišovat 3 typy cyklů (všechny uvedené cykly jsou v dalším textu podrobně vysvětleny): cyklus s podmínkou na konci (s výstupní podmínkou) cyklus s podmínkou na začátku (se vstupní podmínkou) cyklus s řídící proměnnou 17

18 cyklus s podmínkou na konci (s výstupní podmínkou) Postup provádění: Nejdříve se vykonají příkazy těla cyklu, pak se provede vyhodnocení podmínky. Má-li podmínka hodnotu FALSE (není pravdivá), provede se návrat na začátek těla cyklu, provedou se příkazy těla cyklu a opět se vyhodnotí podmínka. Tato činnost se opakuje tak dlouho, až podmínka nabude hodnotu TRUE (je pravdivá). Pak je cyklus ukončen. Průvodce studiem: Při použití tohoto cyklu si musíte zapamatovat, že se příkazy těla cyklu provedou vždy alespoň jednou. To vám může někdy způsobit problémy! Zakreslení cyklu s výstupní podmínkou (s podmínkou na konci) ve vývojovém diagramu: Tělo cyklu - podmínka + Průvodce studiem: Tady vás musím upozornit na to, že neplatí obecně pro každý programovací jazyk, že cyklus s výstupní podmínkou končí při hodnotě TRUE. Toto platí pro BORLAND PASCAL a v celém dalším textu je toto pravidlo dodrženo. Například pro programovací jazyk C platí, že cyklus končí při hodnotě FALSE. 18

19 Příklad: Popište pomocí vývojového diagramu algoritmus výpočtu obvodu a obsahu čtverce o straně A. Zajistěte, aby výpočet proběhl pouze tehdy, jestliže strana A bude mít velikost větší než nula (v opačném případě nemá smysl výpočet provádět). Pro řešení použijte cyklus s podmínkou na konci. Význam proměnných: A strana čtverce Obvoda obvod čtverce Plocha obsah čtverce Začátek Tisk: zadej stranu čtverce Čti: A - A > 0 + Obvod := 4 * A Plocha := A * A Tisk: Obvod Tisk: Plocha Konec Průvodce studiem: Cyklus, který je zařazen ve vývojovém diagramu, je ukázkou cyklu s výstupní podmínkou. V uvedeném příkladu se jedná o situaci, kdy nevíte, kolikrát se činnost bude opakovat. Opakování činnosti má končit při zadání hodnoty větší než nula. Tomu tedy odpovídá sestavená podmínka. Doporučila bych vám vždy při sestavování podmínky pro cyklus s výstupní podmínkou si položit otázku kdy chci, aby cyklická činnost skončila. 19

20 cyklus s podmínkou na začátku (se vstupní podmínkou) Postup provádění: Nejdříve dojde k vyhodnocení podmínky. Má-li podmínka hodnotu TRUE, provede se tělo cyklu (jeden nebo více příkazů) a pak se provede automaticky návrat k podmínce, ta se opět vyhodnotí. Pokud má podmínka opět hodnotu TRUE, celá činnost se opakuje. Cyklus je ukončen až tehdy, když podmínka nabude hodnoty FALSE. Průvodce studiem: Chci vás upozornit na to, že u tohoto cyklu se může stát, že se tělo cyklu neprovede ani jednou! To nastane v případě, že podmínka má hodnotu FALSE již při prvním vyhodnocení. Cyklus s podmínkou na začátku je nejčastěji používaný cyklus. Programátor by si vystačil jen s tímto cyklem. Zakreslení cyklu s vstupní podmínkou (s podmínkou na začátku) ve vývojovém diagramu: podmínka - + Tělo cyklu 20

21 Příklad: Popište pomocí vývojového diagramu algoritmus zpracování souboru čísel. Vyřešte situaci, kdy víme, že v souboru je N čísel. Zpracováním zde budeme rozumět zjištění součtu všech čísel na vstupu. Pro řešení použijte příkaz cyklu s podmínkou na začátku. Význam proměnných: N a suma p počet čísel na vstupu proměnná pro uložení čísla ze vstupu součet čísel na vstupu počítadlo Začátek suma := 0 p := 0 Zadej počet čísel Čti: N p < N - + Čti: a Tisk: suma suma :=suma + a Konec p := p

22 Průvodce studiem: Při řešení úkolu jsem použila cyklus se vstupní podmínkou. Ze zadání úkolu vyplývá, že přesně víme kolikrát se musí tělo cyklu opakovat. Proto jsem podmínku opakování či ukončení cyklické činnosti sestavila v závislosti na tom, kolik hodnot se má zpracovat celkem (N) a kolik hodnot již bylo zpracováno (P). Proměnná P v algoritmu plní funkci počítadla, před zahájením cyklické činnosti má hodnotu nula a při každém průchodu se její hodnota zvyšuje o jedničku. Podmínku pak musíte sestavit tak, aby se tělo cyklu provedlo právě N-krát (jeden průchod cyklem = zpracování jednoho čísla) cyklus s řídící proměnnou Cyklus s řídící proměnnou je poněkud zjednodušený cyklus se vstupní podmínkou. Lze jej použít pouze tehdy, jestliže počet opakování je dán explicitně a nezávisí na činnosti prováděné v těle cyklu. Postup provádění: Cyklus je řízen řídící proměnnou. Hodnoty řídící proměnné jsou omezeny počáteční (initial) a koncovou (final) hodnotou cyklu. Na začátku provádění cyklu se do řídící proměnné uloží počáteční hodnota. Pokud je pak hodnota řídící proměnné menší nebo rovna koncové hodnotě, provedou se tyto činnosti: vykoná se tělo cyklu pak se provede návrat na začátek cyklu pak se automaticky zvýší hodnota řídící proměnné o 1 pokud je hodnota řídící proměnné menší nebo rovna koncové hodnotě, celá činnost se opakuje cyklus končí tehdy, když řídící proměnná dosáhne hodnoty vyšší než je hodnota koncová. Průvodce studiem: V této části výkladu jsem uvedla jen ten úplně základní princip činnosti cyklu s řídící proměnnou. Organizace tohoto cyklu se může v různých programovacích jazycích lišit. V příští kapitole vám vysvětlím další podrobnosti a varianty fungování tohoto cyklu. Pro pochopení použití cyklu s řídící proměnnou je nejdůležitější skutečnost, že můžete tento cyklus zařadit pouze v případě, že znáte počet opakování požadovaných kroků. 22

23 Zakreslení cyklu s řídící proměnnou ve vývojovém diagramu: Rp := 1,2,, n Tělo cyklu Průvodce studiem: Podle slovního popisu i podle zakreslení ve vývojovém diagramu byste si měli všimnout, že chybí podmínka pro opakování či ukončení cyklu. Tuto podmínku skutečně nemusíte nikde psát. Podmínka je skryta v zápisu a její vyhodnocení se provádí automaticky. Podmínka má tvar: Rp < = N. Pokud je tato podmínka pravdivá, provede se tělo cyklu, pokud je nepravdivá, cyklická činnost končí. Taktéž se nemusíte starat o počítadlo, které jsme museli zavést v případě použití cyklu se vstupní podmínkou. Jako počítadlo zde funguje řídící proměnná a jak je uvedeno výše, obsah řídící proměnné se automaticky zvyšuje o jedničku při každém návratu na začátek cyklu. Příklad: Popište pomocí vývojového diagramu algoritmus zpracování souboru čísel. Vyřešte situaci, kdy víme, že v souboru je N čísel. Zpracováním zde budeme rozumět zjištění součtu všech čísel na vstupu. Pro řešení použijte příkaz cyklu s řídící proměnnou. Význam proměnných: N počet čísel na vstupu a proměnná pro uložení čísla ze vstupu suma součet čísel na vstupu I řídící proměnná cyklu 23

24 Vývojový diagram: Začátek suma :=0 Zadej počet čísel na vstupu Čti: N I := 1,2,, N Čti: a Tisk: suma suma :=suma + a Konec 24

25 Příklad: Popište pomocí vývojového diagramu algoritmus zpracování souboru čísel. Vyřešte situaci, kdy neznáme počet čísel v souboru, ale víme, že soubor je ukončen číslem 100, které ale do zpracování nesmíme zahrnout. Zpracováním zde rozumíme zjištění aritmetického průměru zadaných čísel. Takto zadaný úkol lze řešit pomocí cyklu s podmínkou na začátku i pomocí cyklu s podmínkou na konci. Nelze využít cyklus s řídící proměnnou, protože neznáme počet vstupních hodnot (počet opakování cyklu). Význam proměnných: a proměnná pro uložení čísla ze vstupu suma součet čísel na vstupu pocet počet zadaných čísel prumer..proměnná pro uložení aritmetického průměru a) použijeme cyklus s podmínkou na začátku Začátek suma := 0 pocet := 0 Čti: a a <> Přičti k suma hodnotu v a pocet := pocet + 1 Čti: a Tisk: suma Prumer := suma / pocet Tisk: prumer Konec Takto sestaveny algoritmus zajistí, aby se mezi zpracovaná čísla nedostala ukončující hodnota ze vstupního souboru (v našem příkladě je to číslo 100). 25

26 b) použijeme cyklus s podmínkou na konci Začátek suma := 0 Pocet := 0 Čti: a Přičti k suma hodnotu a Pocet := pocet a = Suma := suma - a pocet := pocet - 1 prumer := suma / pocet Tisk: prumer Konec Při tomto řešení nesmíme zapomenout na to, že ukončující hodnota se nemá zpracovávat v našem případě se přičte k sumě a také k počtu zpracovaných hodnot se přičte jednička navíc, což neodpovídá požadavku ze zadání, aby se koncová hodnota do zpracování nezahrnovala. Proto bylo třeba od konečné sumy tuto hodnotu odečíst a také snížit počet zpracovávaných hodnot o jedna. Teprve pak je možno vypočítat aritmetický průměr. Abychom se vyhnuli úpravě obsahu proměnných po skončení cyklu, je možné sestavit vývojový diagram tak, že do těla cyklu zařadíme rozhodování, zda hodnota v proměnné A, kterou máme zpracovat, je různá od koncové značky, v našem případě testujeme, zda je různá od hodnoty 100. Toto řešení je pak hodně obecné, ale dojde k prodloužení doby algoritmu, protože při každém průchodu cyklu je nutno vyřešit rozhodování. 26

27 b) použijeme cyklus s podmínkou na konci, ale s úpravou v příkazech těla cyklu Začátek suma := 0 pocet := 0 Čti: a - a < > Suma := suma + a pocet := pocet a = Prumer := suma / pocet Tisk: prumer Konec 27

28 Shrnutí: Hlavním cílem této kapitoly je naučit se správným způsobem používat v algoritmech cykly. K dispozici máme tři typy cyklu. Každý z uvedených typů cyklu je jiný a je na vás, který zvolíte. Nejvíce obecný je cyklus s podmínkou na začátku a dá se říci, že by nám úplně stačil jen tento cyklus pro vyřešení všech cyklických situaci. Ostatní dva cykly jsou zařazeny pro zjednodušení práce programátora a nesou sebou při použití určitá omezení či rizika. Omezení se týká cyklu s řídící proměnnou, kdy musíte předem znát počet opakování. Rizika jsou spojena zase s cyklem s výstupní podmínkou, kdy může dojít ke zkreslení výsledku vlivem toho, že vždy alespoň jednou se tělo cyklu vykoná. Kontrolní otázky 1. K čemu slouží v algoritmu cyklus? 2. Jak se provádí cyklus s podmínkou na konci? 3. Jak se provádí cyklus s podmínkou na začátku? 4. Jak se provádí cyklus s řídící proměnnou? 5. Jaká omezení má cyklus s řídící proměnnou? 6. Které z cyklů je sestaven tak, že se tělo cyklu nemusí provést ani jednou? 7. Který z cyklů je sestaven tak, že se tělo cyklu provede vždy alespoň jednou? 2.2. Korespondenční úkol č. 2 Zadání: Popište pomocí vývojového diagramu algoritmus zpracování souboru čísel. Vyřešte situaci, kdy víme, že v souboru je N čísel. Zpracováním zde budeme rozumět zjištění počtu čísel větších než nula.vyřešte pomocí všech typů cyklu. Popište význam proměnných, které jsou v algoritmu použity. 28

29 3. Algoritmus a program Cíl: Po prostudování této kapitoly budete schopni - orientovat se v základních pojmech týkajících se zdrojového textu programu v BORLAND PASCALU - objasnit význam datových typů - vyjmenovat a charakterizovat způsoby rozdělování datových typů - vysvětlit a použít číselné datové typy - realizovat vstup a výstup z programu - Klíčová slova: Program, programovací jazyk, strojový kód, vyšší programovací jazyk, překladač, syntaxe a sémantika, proměnná, konstanta, klíčové slovo, identifikátor, komentář, řetězec, deklarační část, příkazová část. Průvodce studiem: Již v první kapitole jste se dověděli, že algoritmus zapsaný v programovacím jazyku se nazývá program. Dostáváme se tedy k problematice převedení algoritmu znázorněného ve vývojovém diagramu do podoby, které bude rozumět počítač tedy do podoby programu. Veškerý další výklad je orientován na programovací jazyk BORLAND PASCAL a je proto nutné, abyste měli tento program k dispozici. Taktéž budete potřebovat literaturu, která vám usnadní orientaci v prostředí BORLAND PASCAL. Podrobný popis tohoto programového prostředí není součástí výukového materiálu. Doporučena literatura: Kvoch Martin:Programování v TURBO PASCALU Postup při tvorbě programu Analýza problému co se má řešit Sestavení algoritmu posloupnost řešení Sestavení programu zápis algoritmu v syntaxi programovacího jazyka Ověření správnosti programu odstranění syntaktických a logických chyb (nejdelší fáze) První část je definice řešeného úkolu. Je třeba přesně vědět, co se má vlastně naprogramovat, co všechno má program umět. U tvorby jednoduchých programů je tato fáze velice krátká. Druhá část sestavení algoritmu se provádí při tvorbě jakéhokoli programu. U jednoduchých programů stačí mít algoritmus v hlavě, u složitějších je potřeba jej vytvořit na papír (vývojový diagram). U algoritmizace úlohy je třeba především postupovat tak, aby každý příkaz měl jednoznačný význam, 29

30 který počítač dovede interpretovat. Je nutné si také uvědomit, že počítač za programátora nic nedomyslí, že postupuje přesně podle našich instrukcí. Při sestavování algoritmu se musíme řídit matematickou logikou. Třetí část tvorba programového kódu. Tady záleží na tom, který programovací jazyk si programátor zvolil, a na tom, jaké zkušenosti programátor má. Je vhodné při psaní programového kódu dodržovat: programový text by měl být graficky přehledný názvy proměnných by měly vystihovat účel neměly by chybět komentáře Čtvrtá část ověření správnosti programu. Prostředí programovacích jazyků poskytuje prostředky pro splnění této fáze práce. Průvodce studiem: Pokud budete řešit jednoduchý úkol, pravděpodobně nebudete svou činnost rozdělovat do výše uvedených etap. Taktéž málokdo si opravdu sestaví na papír vývojový diagram a teprve pak začne přepisovat do zdrojového kódu programovacího jazyka. Nutnost členění postupu při tvorbě programu vyvstane v okamžiku, kdy řešený problém je rozsáhlý a složitý a zvláště pak v situacích, kdy se řešení účastní více lidí Terminologie Strojový kód Strojový kód je programový kód, který jediný dokáže počítač přímo zpracovávat. Strojový kód je reprezentován spoustou čísel ve dvojkové soustavě, které vyjadřují příkazy vyššího programovacího jazyka. Vyšší programovací jazyk Je to programovací jazyk, jehož příkazy jsou tvořeny pomocí klíčových slov, jejichž význam musí být převeden do strojového kódu a teprve potom může být program napsaný ve vyšším programovacím jazyce vykonán. Pascal patří mezi vyšší programovací jazyky. Překladače Převod programového textu z vyššího programovacího jazyka do strojového kódu zajišťují překladače (kompilery). Rozeznáváme 2 typy překladačů: Interpreter - překládá další příkaz vyššího programovacího jazyka teprve ve chvíli, kdy předcházející příkaz je již vykonán. Překlad programového textu do strojového kódu probíhá až do spuštění programu. Výhodou interpreteru je, že usnadňuje ladění programu, nevýhodou je, že zpomaluje běh programu. Kompilátor - přeloží celý programový text ještě před spuštěním programu. Výhodou je, že program běží rychleji, nevýhodou je, že program nelze spustit dříve, než jsou z něho odstraněny všechny syntaktické chyby. Syntaxe programovacího jazyka Jedná se o soubor pravidel pro tvorbu programu v daném programovacím jazyku. Jsou to pravidla pro zápis jednotlivých příkazů (syntaxe = gramatika). 30

31 Každý programovací jazyk má svá syntaktická pravidla, která jsou uvedena v elektronické nápovědě a v manuálech. Sémantika programovacího jazyka Sémantika představuje logický význam syntaktické konstrukce. Konstanta Konstanta je místo v paměti, které má své jméno (identifikátor konstanty). Konstanta je datový objekt, kterému je na začátku běhu programu přiřazena hodnota a po celou dobu běhu programu se tato hodnota nemění. Proměnná Proměnná je místo v paměti, které má své jméno (identifikátor proměnné). Pomocí tohoto jména s proměnnou pracujeme. Proměnná je datový objekt, jehož hodnota se v průběhu výpočtu může měnit Programovací jazyk PASCAL Historie jazyka Pascal: Autorem jazyka Pascal je význačný odborník v oblasti výpočetní techniky profesor Niclaus Wirth, který jej navrhl v 70. Letech hlavně z důvodů zkvalitnění výuky svých studentů. V krátké době se jazyk stal nejen hojně používaným pro výuku programování, ale rovněž v profesionální práci. Dnes ustupuje Pascal v profesionální sféře před dokonalejšími jazyky jako je např. C/C++. K nejznámějším kompilátorům jazyka Pascal patří TURBO PASCAL a BORLAND PASCAL americké firmy Borland International pro platformu PC kompatibilních s PC IBM Struktura programu v BORLAND PASCALU PROGRAM název programu; USES název knihovny; programů (UNIT) Hlavička programu Připojení knihoven TYPE - úsek deklarace datových typů LABEL - úsek deklarace návěští; CONST - úsek deklarace konstant; VAR - úsek deklarace proměnných; Deklarační část PROCEDURE - úsek deklarace procedur; FUNCTION - úsek deklarace funkcí; BEGIN. příkazy. END. Příkazová část 31

32 Hlavička programu Obsahuje slovo PROGRAM a programátorem zvolený název. Hlavička programu není povinná. Část pro připojení knihoven Slouží k připojení standardních a vlastních knihoven (UNIT) k programu. Tato část programu není povinná. Pokud ale potřebujeme některé knihovny připojit, musíme tak učinit ihned za hlavičkou programu (neboli-li před deklarační části). Musíme napsat slovo USES a název knihovny, např.: USES CRT; připojení standardní knihovny podprogramů pro práci s obrazovkou Deklarační část programu Tato část slouží k definování všech identifikátorů, které budeme používat v příkazové části programu. Pořadí úseků deklarační části je libovolné a každý úsek se může vyskytnout vícekrát nebo nemusí být uveden vůbec. Příkazová část programu Tato část je povinná. Musí začínat klíčovým slovem BEGIN a končit klíčovým slovem END. Za END musí být tečka. Mezi BEGIN.. END je uveden jeden nebo více příkazů ukončených středníkem. Průvodce studiem: Uvedená struktura programu se vám určitě v tomto okamžiku zdá hodně složitá a obsáhlá. Zařadila jsem zde úplně vše, co program může obsahovat. V ukázkových programech se budou objevovat vždy pouze ty úseky, které jsou nutné. Teprve po prostudování celého studijního textu budete znát a umět využít všechny zde uvedené úseky Zdrojový text programu Při psaní zdrojového textu můžeme použít : písmena: A, B,.., Z, a, b,.., z číslice speciální symboly: + - * /., : ; = < > ( ) { } [ ] # ^ dvojice: := <> <= >=.. (* *)!!! Překladač nerozlišuje malá a velká písmena, kromě použití v řetězcích!!! 32

33 Ve zdrojovém textu rozlišujeme: a) Klíčová slova - jsou to slova, která mají v programovacím jazyku předem určený význam a nemohou být použita pro jiné účely(např. názvy proměnných, podprogramů ) b) Identifikátory jsou to názvy programu, proměnných, konstant, datových typů, návěští, procedur a funkcí. Při vytváření identifikátoru musíme dodržet tato pravidla: Lze použít písmena, číslice a spodní podtržítko. Není zde rozdíl mezi malými a velkými písmeny. Na prvním místě nesmí být číslice. Délka je libovolná, ale rozlišuje se pouze prvních 63 znaků. c) Celá čísla - celé číslo lze zapsat v desítkové nebo šestnáctkové soustavě. Zápis čísla v desítkové soustavě: číslice 0..9 a znaménko + nebo - Zápis čísla v hexadecimální soustavě: 0.. 9, A.. F a znak $. Např.: $F = 15 d) Desetinná čísla (reálná) pro zápis můžeme použít: 0.. 9, +, - desetinnou tečku písmeno E nebo e Např.: 310 = 3.1E = 6.7E+3 e) Řetězce Řetězec je posloupnost znaků, která je na obou stranách ohraničena apostrofy. V řetězci se rozlišují malá a velká písmena. f) Komentáře Komentář je jakýkoliv text uzavřený mezi symboly (* *) nebo { }. To, co uvedeme jako komentář, nemá vliv na chod programu. Komentář slouží ke zvýšení srozumitelnosti programu. Maximální délka programové řádky ve zdrojovém textu je 126 znaků! 33

34 Vstup hodnot do operační paměti Průvodce studiem: Nyní již víte, jaká je struktura programu, ale neznáte ještě příkazy, které byste použili. Vzhledem k tomu, že skoro každý váš program bude očekávat od uživatele vstupní data a uživatel zase bude očekávat nějaké výsledky (výstupy), jsou hned v úvodu zařazeny a vysvětleny činnosti, které vám tyto vstupy a výstupy umožní zrealizovat. a) Vstup dat z klávesnice do programu: READLN(položka_1, položka_2,, položka_n); READ(položka_1, položka_2,, položka_n); Položkou může být pouze název proměnné!!! Příkaz provede uložení hodnoty zadané na klávesnice do proměnné uvedené v kulatých závorkách. Jedním příkazem lze načíst více hodnot (podle počtu proměnných). Zadávání hodnot z klávesnice musí být ukončeno klávesou ENTER. Při zadávání slouží jako oddělovač jednotlivých hodnot mezera, tabelátor nebo ENTER. Rozdíl mezi READLN a READ : READLN čte hodnotu i ukončující ENTER READ nepřečte ukončující ENTER a hodnota této klávesy zůstává ve vyrovnávací paměti Průvodce studiem: Rozdíl mezi příkazy Read a Readln nabývá na významu při práci s řetězci a pak při čtení ze souboru. Při práci s číselnými hodnotami není rozdíl významný. Doporučuji zařazovat příkaz ve tvaru READLN. Využít také můžete příkaz READLN bez kulatých závorek, pouze ukončený středníkem. Tento příkaz čeká, že zmáčknete klávesu ENTER. Používám ho v ukázkových programech a jeho význam spočívá v tom, že výstup na obrazovku zůstává viditelný tak dlouho, dokud nezmáčknete klávesu ENTER. Teprve pak dojde k návratu do prostředí Borland Pascalu. 34

35 Výstup hodnot z operační paměti Průvodce studiem: Vstupní data, mezivýsledky a konečné výsledky máte po celou dobu běhu programu uloženy v operační paměti. Po skončení programu ztrácíte možnost se k těmto datům zpět vrátit. Proto je pro vás velmi důležité si výsledné hodnoty zobrazit na obrazovce nebo je vytisknout na tiskárně nebo uložit do souboru dat mimo operační paměť. V dalším textu jsou výsledky vždy zobrazovány na obrazovku, další uvedené možnosti nejsou obsahem tohoto výukového materiálu. Pro zobrazení dat uložených v operační paměti slouží v Borland Pascalu tyto dva příkazy: WRITELN(položka_1, položka_2,, položka_n); WRITE(položka_1, položka_2,, položka_n); Položkou může být: celé nebo reálné číslo znak (např. A ) textový řetězec (např. Ahoj ) booleovská hodnota (např. TRUE) název konstanty název proměnné volání funkce Položky se vytisknou (zobrazí na obrazovce) v tom pořadí, jak jsou uvedeny v kulatých závorkách. Rozdíl mezi WRITELN a WRITE: WRITELN po vypsání poslední položky se kurzor přesune na další řádek WRITE po vypsání poslední položky zůstává kurzor na tomtéž řádku, tedy za poslední vypsanou položkou výstupu WRITELN; takto zadaný příkaz provede pouze přechod na nový řádek! Využíváme jej pro vkládání prázdných řádků. 35

36 Formátování výstupu na obrazovku: a) Procedura WRITELN (WRITE) nevkládá mezi položky mezery. Pokud je požadujeme, musíme je vložit sami (mezi apostrofy): WRITELN(položka,, položka,,, položka); Příklad: a := 1; b := 2; c := 3; jmeno := Pavel ; V programu: na obrazovce(znak _ znázorňuje mezeru): WRITELN(a,b,c); 123 WRITELN(a,,b,,c); 1_2_3 WRITELN( AHOJ,jmeno); AHOJPavel WRITELN( AHOJ,,jmeno,. ); AHOJ Pavel. b) Můžeme také zadat šířku pole, ve kterém se provede výstup položky: WRITELN(položka:šířka, ); Příklad.: a := 10; b := 2; c := 100; V programu: Na obrazovce(znak _ znázorňuje mezeru): WRITELN(a,b,c); WRITELN(a:2,b:2,c:2); 10_2100 WRITELN(a:3,b:3,c:3); _ WRITELN(a:2,b:3,c:4); 10 2_100 Pokud je šířka větší, jsou položky zleva doplněny mezerami, tedy jsou zarovnány vpravo. Pokud je šířka menší, pak si PASCAL rozšíří pole na potřebnou velikost. V podstatě slouží tento formát k zarovnání výstupních hodnot na pravý okraj! c) Pouze pro desetinná čísla lze použít kromě šířky výstupního pole zadat také počet desetinných míst: WRITELN(položka:šířka:desetinná místa, ); Přidání hodnoty desetinná místa způsobí výstup reálného čísla ve tvaru s pevnou desetinnou tečkou a zároveň určuje počet číslic, která se za desetinnou tečkou zobrazí. 36

37 Příklad: X := ; V programu: na obrazovce(znak _ znázorňuje mezeru): WRITELN(X); E+02 WRITELN(X:8); 4.21E+02 WRITELN(X:6:2); WRITELN(X:8:2); WRITELN(X:8:4); Do šířky se započítává jedno místo pro desetinnou tečku. Kontrolní otázky: 1. Jaký je postup při tvorbě programu? 2. Co je to syntaxe a sémantika programovacího jazyka? 3. Jaký je rozdíl mezi strojovým kódem a vyšším programovacím jazykem? 4. Co je to proměnná a co je konstanta 5. Ze kterých částí se skládá program v Borland Pascalu a k jakému účelu slouží jednotlivé částí? 6. Co to je identifikátor a jaká pravidla platí pro jeho sestavení? 7. Co to jsou klíčová slova? 8. K čemu slouží komentář ve zdrojovém textu programu? 9. Jak zajistíme vstup hodnot do programů? 10. Jak zajistíme výstup hodnot z programů na obrazovku? 11. Co to je formátování výstupu? Shrnutí: Tato kapitola vám dala úvodní informaci o tom, jak je třeba postupovat v etapě, kdy již máte sestavený vývojový diagram a potřebujete vámi sestaveny algoritmus vyřešit za pomocí výpočetní techniky. V celém studijním materiálu se využívá pro tuto činnost programovací jazyk Borland Pascal. Proto jsem vám zde přiblížila, jak je třeba postupovat při psaní zdrojového textu programu, co je dovoleno a co ne. Program má předepsanou strukturu. Obsahuje hlavičku, deklarační část a příkazovou část. Hlavička programu není povinná, ale je vhodné ji zavést, protože v hlavičce se uvádí jméno programu, a to vede k lepší orientaci. Deklarační část slouží k deklaraci objektů, které pak použijeme v příkazové části. V deklarační části stačí zařazovat pouze ty úseky, které jsou nutné, ostatní lze vynechat. V příkazové části uvádíme příkazy, pomocí kterých řešíme vlastní algoritmus úlohy. Příkazová část je povinná. Pro zadání vstupních hodnot do programu slouží příkazy Read areadln. Pro získání výstupních hodnot pak příkazy Write a Writeln. 37

38 4. Datové typy a jejich rozdělení Cíl: Záměrem této kapitoly je, abyste po jejím prostudování byli schopni: - vysvětlit význam datových typů v prostředí Borland Pascalu - vyjmenovat datové typy - rozdělit datové typy z různých hledisek - použít v programech celočíselné datové typy - použít v programech datové typy pro desetinná čísla Klíčová slova. Datový typ, množina hodnot, množina operací, jednoduché datové typy, strukturované datové typy, standardní datové typy, číselné datové typy, aritmetické operace, relační operace. Vzhledem k tomu, že pro výuku byl zvolen programovací jazyk Borland Pascal, je nutné věnovat dostatečnou pozornost tomu, jak tento jazyk přistupuje k práci s daty. Jazyk BORLAND PASCAL vyžaduje, aby každá proměnná, kterou chceme v programu použít, měla stanoveno jméno a datový typ. Datový typem jednoznačně určujeme, zda do proměnné budeme ukládat celé číslo, desetinné číslo, znak, skupinu znaků nebo logickou hodnotu. Za tímto účelem byla v programu zavedena deklarační část a byla zavedena určitá klíčová slova, která umožňují jednoznačně datový typ proměnné určit. Průvodce studiem: Tady vás chci upozornit na to, že programovací jazyk Borland Pascal je velmi citlivý na stanovení datového typu proměnných. V dalším výkladu se vždy dovíte, co pro vás jako programátora znamená zvolený datový typ proměnné. Pečlivé dodržování stanovených pravidel vám ušetří mnoho času při odstraňování chyb v programu. Obecně platí: Datový typ jednoznačně určuje dvě charakteristiky proměnné: množinu hodnot, kterých může proměnná nabývat během programu (velikost paměťového místa, v němž budou uloženy hodnoty) množinu operací, které lze s touto proměnnou provádět. A tyto dvě informace také budou vždy přesně uvedeny u každého datové typu 38

39 Množina všech datových typů v Borland Pascalu: Borland Pascal obsahuje tuto množinu datových typů, kterou pak dělíme podle různých hledisek: - celočíselné - reálné - znakové (CHAR) - logické (BOOLEAN) - řetězec (STRING) - pole - výčtový typ - interval - záznam - množina - soubor - ukazatel Rozdělení datových typů podle vnitřní struktury: a) jednoduché typy nemají vnitřní strukturu. S proměnnými jednoduchých datových typů pracujeme vždy jen jako s celkem b) Strukturované typy hodnoty těchto typů mají vnitřní strukturu (členění na komponenty). S proměnnými strukturovaných typů lze pracovat buď jako s celkem nebo s jejími jednotlivými komponentami. Jednoduché datové typy: - celočíselné - reálné - znakové (CHAR) - logické (BOOLEAN) Strukturované datové typy - řetězec (STRING) - pole - záznam - množina - interval - výčtový typ - soubor Rozdělení datových typů podle způsobu definice: a) standardní datové typy jsou předem přesně definovány b) definované uživatelem uživatel sám definuje některé vlastnosti datového typu 39

40 Standardní typy - celočíselné - reálné - znakové (CHAR) - řetězec (STRING) - logické (BOOLEAN) Definované uživatelem - výčtový typ - typ interval - pole - záznam - množina - soubor - ukazatel Průvodce studiem: Vidíte, že dělení datových typů je různé. Možná se vám to nyní zdá úplně zbytečné. Mělo by vám to ale hned v úvodu posloužit k lepší orientaci v této problematice. Teprve až se postupně seznámíte v praxi s jednotlivými datovými typy, bude se vám toto dělení zdát naprosto přirozené Číselné datové typy V BORLAND PASCALU musíme rozlišovat mezi číslem celým a číslem s desetinnou částí Celočíselné datové typy Překladač Borland Pascalu rozlišuje 5 datových typů pro celá čísla. Typ Množina hodnot (rozsah) Velikost paměti v bytech BYTE SHORTINT WORD INTEGER LONGINT Průvodce studiem: Ti z vás, kteří pozorně studovali předchozí text, tak určitě pochopili, že výše uvedená tabulka nám sděluje jaké jsou dovolené hodnoty pro jednotlivé celočíselné datové typy, což je jedna z charakteristik proměnné. Druhá charakteristika proměnné dovolené operace je popsána v následujícím odstavci. 40

41 Dovolené operace s proměnnými celočíselných typů: a) aritmetické: +, -, *, DIV, MOD, / + sčítání - odčítání * násobení DIV celočíselné dělení MOD zbytek po celočíselném dělení / přesné dělení Použití operace dělení pomocí operátoru / je dovoleno pro celočíselné proměnné, ale výsledek tohoto dělení je reálné číslo (číslo s desetinnou částí). Výsledkem ostatních operací bude celočíselná hodnota. b) relační : = rovná se <> nerovná se > větší než >= větší nebo rovno < menší než <= menší nebo rovno Výsledkem těchto operací je logická hodnota TRUE nebo FALSE. Předdefinované celočíselné konstanty - není třeba je zavádět v deklarační části programu. MAXINT - obsahuje největší dovolenou hodnotu, kterou lze uložit do proměnné typu INTEGER, což je MAXLONGINT - obsahuje největší dovolenou hodnotu, kterou lze uložit do proměnné typu LONGINT, což je Je výhodné znát, že existují tzv. předdefinované konstanty. Tyto konstanty pak můžete použít, aniž byste je museli uvádět v deklarační část programu a pak také máte jistotu, že mají vždy stejnou hodnotu. V dalším textu jsou občas použity Datové typy pro čísla s desetinnou částí Průvodce studiem: Čísla s desetinnou částí jsou často v dalším textu nazývána reálná čísla. Je to v programátorské terminologii běžné, proto vás na to upozorňuji již zde v úvodních informacích. Taktéž vás chci upozornit na to, že i když do proměnné, kterou definujete jako reálnou, uložíte číslo celé (bez zadání desetinné části), je přesto toto číslo považováno za reálné a některé operace s ním tudíž nejsou dovoleny (např. celočíselné dělení). 41

42 V BORLAND PASCALU je předdefinováno 5 datových typů pro reálná čísla: TYP Množina hodnot (rozsah) Velikost paměti v bytech REAL 2.9 * * SINGLE 1.5 * * DOUBLE 5.0 * * EXTENDED 3.4 * * COMP Nejpoužívanější je datový typ REAL. Tento datový typ má přesnost 11 až 12 platných číslic. Dovolené operace s proměnnými reálného datového typu: a) aritmetické: + sčítání - odčítání * násobení / dělení Nelze použít operace DIV a MOD!!! b) relační : = rovná se <> nerovná se > větší než >= větší nebo rovno < menší než <= menší nebo rovno Výsledkem těchto operací je logická hodnota TRUE nebo FALSE. Předdefinované reálné konstanty - není třeba je zavádět v deklarační části programu. PI Ludolfovo číslo, které má hodnotu 3,14 Průvodce studiem: Načtení nebo přiřazení celočíselné hodnoty do proměnné reálného typu nezpůsobí chybu. Dojde k automatické konverzi (převodu) celého čísla na číslo s desetinnou částí. Obráceně to neplatí! Nelze tedy do proměnné celočíselného typu načíst nebo přiřadit číslo s desetinnou částí. Taktéž je dobré si uvědomit, že pokud je proměnná deklarována jako proměnná reálného typu, nelze s ní provést operace DIV a MOD, i když byste do ní uložili číslo celé. Již při uložení dojde ke konverzi celého čísla na číslo s desetinnou částí. 42

43 Kontrolní otázky: 1. K čemu slouží datové typy? 2. Jak se dělí datové typy z hlediska jejich definice? 3. Kolik datových typů máme pro celá čísla? 4. Které operace jsou dovoleny pro celočíselné proměnné? 5. Kolik datových typů máme pro reálná čísla? 6. Které operace jsou dovoleny pro reálné proměnné? 7. Které znáte předdefinované celočíselné konstanty? 8. Které znáte předdefinované reálné konstanty? Shrnutí: Ukládání dat do operační paměti, které je nutnou součástí programování, řeší programovací jazyk Borland Pascal prostřednictvím tzv. datových typů. Jsou stanovena klíčová slova, která přesně definují, zda budeme pracovat s číslem, znakem, řetězcem znaků či s logickou hodnotou. V této kapitole je uveden stručný přehled všech datových typů v Borland Pascalu, podrobněji jsou vysvětleny celočíselné datové typy a datové typy desetinných čísel. Ostatní možnosti ukládání dat nejsou předmětem tohoto studijního materiálu. 5. Příkazy jazyka Borland Pascal Cíl: Záměrem této kapitoly je, abyste po jejím prostudování byli schopni: - rozdělit příkazy jazyka Borland Pascal podle vnitřní struktury - prakticky použít přiřazovací příkaz - vysvětlit pojem kompatibilita vzhledem k přiřazení - vysvětlit pojem složený příkaz - zapsat příkazy pro rozhodování v syntaxi Borland Pascalu a prakticky je využít - zapsat příkazy pro cyklickou činnost v syntaxi Borland Pascalu a prakticky je využít Klíčová slova: Příkaz, jednoduchý příkaz, přiřazovací příkaz, kompatibilita, strukturovaný příkaz, složený příkaz, příkaz větvení, IF, CASE, selektor větvení, příkaz cyklu, WHILE, REPEAT, FOR, řídící proměnná. 43

44 Průvodce studiem: Pokud jste dostatečně pečlivě prostudovali kapitolu o vývojových diagramech, budete mít nyní občas dojem, že se některé informace opakují. Je to způsobeno tím, že nyní se budete učit, jak k řešení již sestaveného algoritmu ve formě vývojového diagramu využít programovací jazyk. Zatímco jste při tvorbě vývojového diagramu měli určitou volnost, při přepisu do programovacího jazyka musíte nutně dodržet předem daná pravidla, neboli syntaxi programovacího jazyka. Proto se zde opět objevují vývojové diagramy, ale jsou již nyní vždy doplněny ukázkou, jak je nutné provést zápis ve zdrojovém kódu programovacího jazyka. Co chápeme pod pojmem příkaz: Obecně pod pojmem příkaz rozumíme pokyn k provedení nějaké činnosti. V běžném životě mohou být příkazy nejrůznějších druhů, např. prostuduj si tuto knihu, napiš svou adresu, když nemáš peníze, nechoď do kina, atd. Příkazy pro počítač však musí mít předepsaný tvar a smysl. V dalším textu jsou postupně probrány příkazy jazyka Borland Pascal. Příkazy dělíme na: a) jednoduché přiřazovací příkaz příkaz skoku příkaz volání procedury b) strukturované složený příkaz podmíněné příkazy příkazy cyklu 5.1. Jednoduché příkazy Přiřazovací příkaz Přiřazovací příkaz přiřazuje hodnotu výrazu na pravé straně do proměnné uvedené na levé straně přiřazovacího příkazu!! Obecný tvar příkazu: P := v; název proměnné - konstanta (číslo, znak, řetězec znaků) - výsledek volání funkce (např. SQR(x)) - název proměnné - výraz (libovolný výpočet, např. x:=z+1) 44

Programovací jazyk Pascal

Programovací jazyk Pascal Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce

Více

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5 Obsah Obsah 1 Programovací jazyk Pascal 1 1.1 Struktura programu v Pascalu.................... 1 2 Proměnné 2 2.1 Vstup a výstup............................ 3 3 Operátory a některé matematické funkce 5

Více

Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi)

Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi) Programovací jazyk - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi) Odlišnosti implementace od normy - odchylky např.: nepovinná hlavička programu odlišná

Více

ALGORITMIZACE A PROGRAMOVÁNÍ

ALGORITMIZACE A PROGRAMOVÁNÍ Metodický list č. 1 Algoritmus a jeho implementace počítačovým programem Základním cílem tohoto tematického celku je vysvětlení pojmů algoritmus a programová implementace algoritmu. Dále je cílem seznámení

Více

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu: Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury

Více

Sada 1 - Základy programování

Sada 1 - Základy programování S třední škola stavební Jihlava Sada 1 - Základy programování 06. Proměnné, deklarace proměnných Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284

Více

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky Vyučovací hodina 1vyučovací hodina: Opakování z minulé hodiny Nová látka Procvičení nové látky Shrnutí 5 min 20 min 15 min 5 min 2vyučovací hodiny: Opakování z minulé hodiny Nová látka Procvičení nové

Více

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1 24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE

Více

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost Programování Algoritmus návod na vykonání činnosti, který nás od (měnitelných) vstupních dat přivede v konečném čase k výsledku přesně definovaná konečná posloupnost činností vedoucích k výsledku (postup,

Více

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem. Algoritmus Algoritmus je schematický postup pro řešení určitého druhu problémů, který je prováděn pomocí konečného množství přesně definovaných kroků. nebo Algoritmus lze definovat jako jednoznačně určenou

Více

Lekce 01 Úvod do algoritmizace

Lekce 01 Úvod do algoritmizace Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů Lekce 01 Úvod do algoritmizace Tento projekt CZ.1.07/1.3.12/04.0006 je spolufinancován Evropským sociálním

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

6 Příkazy řízení toku

6 Příkazy řízení toku 6 Příkazy řízení toku Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům pro řízení toku programu. Pro všechny tyto základní

Více

Sada 1 - Základy programování

Sada 1 - Základy programování S třední škola stavební Jihlava Sada 1 - Základy programování 07. Základní příkazy vstup a výstup hodnot Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Algoritmus Daniela Szturcová Tento

Více

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false Logické operace Datový typ bool může nabýt hodnot: o true o false Relační operátory pravda, 1, nepravda, 0, hodnoty všech primitivních datových typů (int, double ) jsou uspořádané lze je porovnávat binární

Více

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

Více

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Maturitní otázky z předmětu PROGRAMOVÁNÍ Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti

Více

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

Více

NPRG030 Programování I, 2016/17 1 / :58:13

NPRG030 Programování I, 2016/17 1 / :58:13 NPRG030 Programování I, 2016/17 1 / 31 10. 10. 2016 10:58:13 Podmínka = něco, co JE, nebo NENÍ splněno typ Boolean hodnoty: TRUE pravda FALSE lež domluva (optimistická): FALSE < TRUE NPRG030 Programování

Více

Výukový materiál zpracován v rámci projektu EU peníze školám

Výukový materiál zpracován v rámci projektu EU peníze školám Výukový materiál zpracován v rámci projektu EU peníze školám Registrační číslo projektu: CZ. 1.07/1.5.00/34.0637 Šablona III/2 Název VY_32_INOVACE_39_Algoritmizace_teorie Název školy Základní škola a Střední

Více

Algoritmizace. Obrázek 1: Přeložení programu překladačem

Algoritmizace. Obrázek 1: Přeložení programu překladačem Algoritmizace V každém okamžiku ví procesor počítače přesně, co má vykonat. Pojmem procesor se v souvislosti s algoritmy označuje objekt (např. stroj i člověk), který vykonává činnost popisovanou algoritmem.

Více

- speciální symboly + - * / =., < > <> <= >= a další. Klíčová slova jsou chráněnými útvary, které nelze použít ve významu identifikátorů.

- speciální symboly + - * / =., < > <> <= >= a další. Klíčová slova jsou chráněnými útvary, které nelze použít ve významu identifikátorů. Základní symboly - písmena A B C Y Z a b c y z - číslice 0 1 2 9 - speciální symboly + - * / =., < > = a další - klíčová slova and array begin case const a další Klíčová slova jsou chráněnými útvary,

Více

NPRG030 Programování I, 2010/11

NPRG030 Programování I, 2010/11 Podmínka = něco, co JE, nebo NENÍ splněno typ Boolean hodnoty: TRUE pravda FALSE lež domluva (optimistická): FALSE < TRUE když X, Y jsou (číselné) výrazy, potom X = Y X Y X < Y X > Y X = Y jsou

Více

Algoritmizace. 1. Úvod. Algoritmus

Algoritmizace. 1. Úvod. Algoritmus 1. Úvod Algoritmizace V dnešní době již počítače pronikly snad do všech oblastí lidské činnosti, využívají se k řešení nejrůznějších úkolů. Postup, který je v počítači prováděn nějakým programem se nazývá

Více

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7 Pascal Katedra aplikované kybernetiky Ing. Miroslav Vavroušek Verze 7 Proměnné Proměnná uchovává nějakou informaci potřebnou pro práci programu. Má ve svém oboru platnosti unikátní jméno. (Připadne, musí

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

Sada 1 - Základy programování

Sada 1 - Základy programování S třední škola stavební Jihlava Sada 1 - Základy programování 04. Datové typy, operace, logické operátory Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Algoritmus Daniela Szturcová Tento

Více

Algoritmus. Cílem kapitoly je seznámit žáky se základy algoritmu, s jeho tvorbou a způsoby zápisu.

Algoritmus. Cílem kapitoly je seznámit žáky se základy algoritmu, s jeho tvorbou a způsoby zápisu. Algoritmus Cílem kapitoly je seznámit žáky se základy algoritmu, s jeho tvorbou a způsoby zápisu. Klíčové pojmy: Algoritmus, vlastnosti algoritmu, tvorba algoritmu, vývojový diagram, strukturogram Algoritmus

Více

Identifikátory označují objekty v programu používané (proměnné, typy, podprogramy).

Identifikátory označují objekty v programu používané (proměnné, typy, podprogramy). JAZYK PASCAL ÚVOD materiály pro studenty Jiráskova gymnázia v Náchodě (verze 2005-10-28) RNDr Jan Preclík, PhD preclik@gymnachodcz Jazyk Pascal byl navržen profesorem curyšské univerzity Niklausem Wirthem

Více

6. Příkazy a řídící struktury v Javě

6. Příkazy a řídící struktury v Javě 6. Příkazy a řídící struktury v Javě Příkazy v Javě Příkazy v Javě Řídicí příkazy (větvení, cykly) Přiřazovací příkaz = Řízení toku programu (větvení, cykly) Volání metody Návrat z metody - příkaz return

Více

9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h> 9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include int main(void) { int dcislo, kolikbcislic = 0, mezivysledek = 0, i; int vysledek[1000]; printf("zadejte

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Výrazy Operátory Výrazy Verze pro akademický rok 2012/2013 1 Operace, operátory Unární jeden operand, operátor se zapisuje ve většině případů před operand, v některých případech

Více

Paměť počítače. alg2 1

Paměť počítače. alg2 1 Paměť počítače Výpočetní proces je posloupnost akcí nad daty uloženými v paměti počítače Data jsou v paměti reprezentována posloupnostmi bitů (bit = 0 nebo 1) Připomeňme: paměť je tvořena řadou 8-mi bitových

Více

5 Přehled operátorů, příkazy, přetypování

5 Přehled operátorů, příkazy, přetypování 5 Přehled operátorů, příkazy, přetypování Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně budou uvedeny detaily týkající se operátorů. Doba nutná k nastudování

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Vývojové diagramy Daniela Szturcová

Více

Základy algoritmizace

Základy algoritmizace Algoritmus Toto je sice na první pohled pravdivá, ale při bližším prozkoumání nepřesná definice. Například některé matematické postupy by této definici vyhovovaly, ale nejsou algoritmy. Přesné znění definice

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Typy Základní (primitivní) datové typy Deklarace Verze pro akademický rok 2012/2013 1 Typy v jazyce Java Základní datové typy (primitivní datové typy) Celočíselné byte, short,

Více

Vývojové diagramy 1/7

Vývojové diagramy 1/7 Vývojové diagramy 1/7 2 Vývojové diagramy Vývojový diagram je symbolický algoritmický jazyk, který se používá pro názorné zobrazení algoritmu zpracování informací a případnou stručnou publikaci programů.

Více

Úvod do programování

Úvod do programování Úvod do programování Základní literatura Töpfer, P.: Algoritmy a programovací techniky, Prometheus, Praha učebnice algoritmů, nikoli jazyka pokrývá velkou část probíraných algoritmů Satrapa, P.: Pascal

Více

Sada 1 - Základy programování

Sada 1 - Základy programování S třední škola stavební Jihlava Sada 1 - Základy programování 05. Turbopascal, prostředí TP6, struktura programu v TP Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284

Více

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5 Obsah Obsah 1 Řídicí struktury 1 2 Podmínka 1 2.1 Podmínka typu case......................... 2 3 Příkaz skoku 3 4 Cykly 4 4.1 Cyklus s podmínkou na začátku................... 4 4.2 Cyklus s podmínkou

Více

Úvod do programování. Lekce 1

Úvod do programování. Lekce 1 Úvod do programování Lekce 1 Základní pojmy vytvoření spustitelného kódu editor - psaní zdrojových souborů preprocesor - zpracování zdrojových souborů (vypuštění komentářů atd.) kompilátor (compiler) -

Více

VY_32_INOVACE_08_2_04_PR

VY_32_INOVACE_08_2_04_PR Ing. Petr Stránský VY_32_INOVACE_08_2_04_PR Příkazy vstupu - definice Výstupním zařízením může být obrazovka, tiskárna nebo soubor. Jednotlivé údaje se zapisují pomocí příkazu WRITE nebo WRITELN. Příkaz

Více

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty Data v počítači Informační data (elementární datové typy) Logické hodnoty Znaky Čísla v pevné řádové čárce (celá čísla) v pohyblivé (plovoucí) řád. čárce (reálná čísla) Povelová data (instrukce programu)

Více

Příklady: (y + (sin(2*x) + 1)*2)/ /2 * 5 = 8.5 (1+3)/2 * 5 = /(2 * 5) = 1.3. Pavel Töpfer, 2017 Programování 1-3 1

Příklady: (y + (sin(2*x) + 1)*2)/ /2 * 5 = 8.5 (1+3)/2 * 5 = /(2 * 5) = 1.3. Pavel Töpfer, 2017 Programování 1-3 1 Výraz - syntaxe i sémantika podobné jako v matematice - obsahuje proměnné, konstanty, operátory, závorky, volání funkcí - všechny operátory nutno zapisovat (nelze např. vynechat znak násobení) - argumenty

Více

CZ.1.07/1.5.00/

CZ.1.07/1.5.00/ Celá čísla Celočíselný typ má označení INTEGER. Kromě tohoto základního jsou k dispozici ještě další celočíselné typy, které uvádí následující tabulka. Každý typ umožňuje definovat určitý rozsah celých

Více

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA ze sady: 03 tematický okruh sady: Tvorba skript a maker ze šablony: 10 Algoritmizace a programování určeno pro: 4. ročník vzdělávací obor: vzdělávací

Více

dovolují dělení velkých úloh na menší = dekompozice

dovolují dělení velkých úloh na menší = dekompozice Podprogramy dovolují dělení velkých úloh na menší = dekompozice Příklad: Vytiskněte tabulku malé násobilky ve tvaru XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X X 1 2 3 4 5 6 7 8 9 10 X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Více

Algoritmy a algoritmizace

Algoritmy a algoritmizace Otázka 21 Algoritmy a algoritmizace Počítačové programy (neboli software) umožňují počítačům, aby přestaly být pouhou stavebnicí elektronických a jiných součástek a staly se pomocníkem v mnoha lidských

Více

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2014 5, 5.1 a 5.2 8/14

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2014 5, 5.1 a 5.2 8/14 ZÁKLADY PROGRAMOVÁNÍ Mgr. Vladislav BEDNÁŘ 2014 5, 5.1 a 5.2 8/14 Co je vhodné vědět, než si vybereme programovací jazyk a začneme programovat roboty. 1 / 18 0:40 Algoritmus Algoritmem by se dal nazvat

Více

NPRG030 Programování I, 2015/16 1 / :25:32

NPRG030 Programování I, 2015/16 1 / :25:32 NPRG030 Programování I, 2015/16 1 / 21 22. 10. 2015 13:25:32 Podprogramy Příklad: Vytiskněte tabulku malé násobilky ve tvaru XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X X 1 2 3 4 5 6 7 8 9 10 X

Více

NPRG030 Programování I, 2018/19 1 / :25:37

NPRG030 Programování I, 2018/19 1 / :25:37 NPRG030 Programování I, 2018/19 1 / 26 24. 9. 2018 10:25:37 Čísla v algoritmech a programech 10 26 Poloměr vesmíru 2651 studujících studentů MFF UK 3.142857... Ludolfovo číslo 10 16 stáří vesmíru v sekundách!!!

Více

Základy algoritmizace a programování

Základy algoritmizace a programování Základy algoritmizace a programování Přednáška 1 Olga Majlingová Katedra matematiky, ČVUT v Praze 21. září 2009 Obsah Úvodní informace 1 Úvodní informace 2 3 4 Organizace předmětu Přednášky 1. 5. Základní

Více

Program a životní cyklus programu

Program a životní cyklus programu Program a životní cyklus programu Program algoritmus zapsaný formálně, srozumitelně pro počítač program se skládá z elementárních kroků Elementární kroky mohou být: instrukce operačního kódu počítače příkazy

Více

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové

Více

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných Tematický celek 03 3.1 Proměnné Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace. 3.1.1 Deklarace proměnných Dim jméno_proměnné [As typ] - deklarace uvnitř procedury platí pouze pro

Více

1. D Y N A M I C K É DAT O V É STRUKTUR Y

1. D Y N A M I C K É DAT O V É STRUKTUR Y 1. D Y N A M I C K É DAT O V É STRUKTUR Y Autor: Petr Mik Abychom se mohli pustit do dynamických datových struktur, musíme se nejdřív podívat na datový typ ukazatel. 1. D AT O V Ý TYP U K A Z AT E L Datové

Více

VISUAL BASIC. Přehled témat

VISUAL BASIC. Přehled témat VISUAL BASIC Přehled témat 1 ÚVOD DO PROGRAMOVÁNÍ Co je to program? Kuchařský předpis, scénář k filmu,... Program posloupnost instrukcí Běh programu: postupné plnění instrukcí zpracovávání vstupních dat

Více

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech 7 Formátovaný výstup, třídy, objekty, pole, chyby v programech Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost formátovanému výstupu,

Více

PODPROGRAMY PROCEDURY A FUNKCE

PODPROGRAMY PROCEDURY A FUNKCE PODPROGRAMY PROCEDURY A FUNKCE Programy bez podprogramů Příklady: a) Napište program, který na obrazovku nakreslí čáru složenou ze znaků pomlčka. program Cara; b) Napište program, který na obrazovku nakreslí

Více

ALGORITMIZACE Příklady ze života, větvení, cykly

ALGORITMIZACE Příklady ze života, větvení, cykly ALGORITMIZACE Příklady ze života, větvení, cykly Cíl kapitoly: Uvedení do problematiky algoritmizace Klíčové pojmy: Algoritmus, Vlastnosti správného algoritmu, Možnosti zápisu algoritmu, Vývojový diagram,

Více

KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM

KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM CÍLE KAPITOLY Využívat pokročilé možnosti formátování, jako je podmíněné formátování, používat vlastní formát čísel a umět pracovat s listy. Používat

Více

Formátové specifikace formátovací řetězce

Formátové specifikace formátovací řetězce 27.2.2007 Formátové specifikace formátovací řetězce - je to posloupnost podle které překladač pozná jaký formát má výstup mít - posloupnosti začínají znakem % a určující formát vstupu/výstupu - pokud chcete

Více

Programy na PODMÍNĚNÝ příkaz IF a CASE

Programy na PODMÍNĚNÝ příkaz IF a CASE Vstupy a výstupy budou vždy upraveny tak, aby bylo zřejmé, co zadáváme a co se zobrazuje. Není-li určeno, zadáváme přirozená čísla. Je-li to možné, používej generátor náhodných čísel vysvětli, co a jak

Více

ANOTACE vytvořených/inovovaných materiálů

ANOTACE vytvořených/inovovaných materiálů ANOTACE vytvořených/inovovaných materiálů Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast Formát Druh učebního materiálu Druh interaktivity CZ.1.07/1.5.00/34.0722 III/2 Inovace a

Více

Řídicí struktury. alg3 1

Řídicí struktury. alg3 1 Řídicí struktury Řídicí struktura je programová konstrukce, která se skládá z dílčích příkazů a předepisuje pro ně způsob provedení Tři druhy řídicích struktur: posloupnost, předepisující postupné provedení

Více

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Číslo projektu: CZ.1.07/1.5.00/34.0410 Číslo šablony: 1 Název materiálu: Ročník: Identifikace materiálu: Jméno autora: Předmět: Tématický celek:

Více

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox 02. HODINA Obsah: 1. Typy souborů a objektů 2. Ovládací prvky Label a TextBox 3. Základní příkazy a vlastnosti ovládacích prvků 4. Práce s objekty (ovládací prvky a jejich vlastnosti) 2.1 Typy souborů

Více

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Jazyk Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět Cílová skupina (ročník) Úroveň

Více

Pracovní listy - programování (algoritmy v jazyce Visual Basic) Algoritmus

Pracovní listy - programování (algoritmy v jazyce Visual Basic) Algoritmus Pracovní listy - programování (algoritmy v jazyce Visual Basic) Předmět: Seminář z informatiky a výpočetní techniky Třída: 3. a 4. ročník vyššího stupně gymnázia Algoritmus Zadání v jazyce českém: 1. Je

Více

Základy algoritmizace a programování

Základy algoritmizace a programování Základy algoritmizace a programování Přednáška 1 Olga Majlingová Katedra matematiky, ČVUT v Praze 19. září 2011 Obsah Úvodní informace 1 Úvodní informace 2 3 4 Doporučená literatura web: http://marian.fsik.cvut.cz/zapg

Více

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání Čtvrtek 3. listopadu Makra v Excelu Obecná definice makra: Podle definice je makro strukturovanou definicí jedné nebo několika akcí, které chceme, aby MS Excel vykonal jako odezvu na nějakou námi definovanou

Více

Základní vzorce a funkce v tabulkovém procesoru

Základní vzorce a funkce v tabulkovém procesoru Základní vzorce a funkce v tabulkovém procesoru Na tabulkovém programu je asi nejzajímavější práce se vzorci a funkcemi. Když jednou nastavíte, jak se mají dané údaje zpracovávat (některé buňky sečíst,

Více

3 Co je algoritmus? 2 3.1 Trocha historie... 2 3.2 Definice algoritmu... 3 3.3 Vlastnosti algoritmu... 3

3 Co je algoritmus? 2 3.1 Trocha historie... 2 3.2 Definice algoritmu... 3 3.3 Vlastnosti algoritmu... 3 Obsah Obsah 1 Program přednášek 1 2 Podmínky zápočtu 2 3 Co je algoritmus? 2 3.1 Trocha historie............................ 2 3.2 Definice algoritmu.......................... 3 3.3 Vlastnosti algoritmu.........................

Více

Algoritmy I. Cvičení č. 2, 3 ALGI 2018/19

Algoritmy I. Cvičení č. 2, 3 ALGI 2018/19 Algoritmy I Cvičení č. 2, 3 1 ALG I, informace Cvičící RNDr. Eliška Ochodková, Ph.D., kancelář EA439 eliska.ochodkova@vsb.cz www.cs.vsb.cz/ochodkova Přednášející doc. Mgr. Jiří Dvorský, Ph.D., kancelář

Více

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 1/41 Základní příkazy Všechny příkazy se píšou malými písmeny! Za většinou příkazů musí být středník (;)! 2/41 Základní příkazy

Více

C# konzole Podíl dvou čísel, podmínka IF

C# konzole Podíl dvou čísel, podmínka IF C# konzole Podíl dvou čísel, podmínka IF Tematická oblast Datum vytvoření 2013 Ročník 3 Stručný obsah Způsob využití Autor Kód Internetové technologie, programování Výpočet podílu v konzolové aplikaci

Více

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina 5a. Makra Visual Basic pro Microsoft Escel Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina Cyklické odkazy a iterativní výpočty Zde bude stránka o cyklických odkazech a iteracích.

Více

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI EVROPSKÝ SOCIÁLNÍ FOND Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI Úvod do PHP PHP Personal Home Page Hypertext Preprocessor jazyk na tvorbu dokumentů přípona: *.php skript je součást HTML stránky!

Více

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace Číslo projektu Číslo materiálu Autor Průřezové téma Předmět CZ.1.07/1.5.00/34.0565 VY_32_INOVACE_284_Programovací_jazyky

Více

VISUAL BASIC. Práce se soubory

VISUAL BASIC. Práce se soubory VISUAL BASIC Práce se soubory Práce se soubory 1/2 2 Vstupní data pro programy bývají uloženy do souborů Vstupy pro výpočet, nastavení vzhledu aplikace Výsledky práce programu je potřeba uchovat uložit

Více

NPRG030 Programování I RNDr.Tomáš Holan, Ph.D. 4.patro, č

NPRG030 Programování I RNDr.Tomáš Holan, Ph.D. 4.patro, č NPRG030 Programování I RNDr.Tomáš Holan, Ph.D. 4.patro, č.404 http://ksvi.mff.cuni.cz/~holan/ Tomas.Holan@mff.cuni.cz NPRG030 Programování I, 2014/15 1 / 37 6. 10. 2014 11:42:59 NPRG030 Programování I,

Více

1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1

1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1 1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1 1. Prvocisla: Kratky ukazkovy priklad na demonstraci baliku WEB. Nasledujici program slouzi pouze jako ukazka nekterych moznosti a sluzeb,

Více

PROGRAMOVÁNÍ V SHELLU

PROGRAMOVÁNÍ V SHELLU PROGRAMOVÁNÍ V SHELLU Prostředí, jazyk, zdrojový kód chceme-li posloupnost jistých příkazů používat opakovaně, případně z různých míst adresářové struktury, můžeme tuto posloupnost uložit souboru, který

Více

Závěrečná zkouška z informatiky 2011

Závěrečná zkouška z informatiky 2011 Závěrečná zkouška z informatiky 2011 1) Číslo A je v dvojkové soustavě a má hodnotu 1101011. Číslo B je v šestnáctkové soustavě a má hodnotu FF3. Vypočítejte : A * B a výsledek napište v desítkové soustavě.

Více

VZORCE A VÝPOČTY. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen 2013. Ročník: sedmý

VZORCE A VÝPOČTY. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen 2013. Ročník: sedmý Autor: Mgr. Dana Kaprálová VZORCE A VÝPOČTY Datum (období) tvorby: září, říjen 2013 Ročník: sedmý Vzdělávací oblast: Informatika a výpočetní technika 1 Anotace: Žáci se seznámí se základní obsluhou tabulkového

Více

type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik;

type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik; Vícerozměrné pole type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik; M[2,3] := 3145; - počet indexů není omezen (v praxi obvykle nejvýše tři) - více indexů pomalejší přístup k prvku (počítá

Více

2 Strukturované datové typy 2 2.1 Pole... 2 2.2 Záznam... 3 2.3 Množina... 4

2 Strukturované datové typy 2 2.1 Pole... 2 2.2 Záznam... 3 2.3 Množina... 4 Obsah Obsah 1 Jednoduché datové typy 1 2 Strukturované datové typy 2 2.1 Pole.................................. 2 2.2 Záznam................................ 3 2.3 Množina................................

Více

Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto

Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto Registrační číslo projektu Šablona Autor Název materiálu CZ.1.07/1.5.00/34.0951 III/2 INOVACE A ZKVALITNĚNÍ VÝUKY PROSTŘEDNICTVÍM ICT Mgr. Jana

Více

1 Strukturované programování

1 Strukturované programování Projekt OP VK Inovace studijních oborů zajišťovaných katedrami PřF UHK Registrační číslo: CZ.1.07/2.2.00/28.0118 1 Cíl Seznámení s principy strukturovaného programování, s blokovou strukturou programů,

Více

Algoritmizace- úvod. Ing. Tomáš Otáhal

Algoritmizace- úvod. Ing. Tomáš Otáhal Algoritmizace- úvod Ing. Tomáš táhal Historie 9. století perský matematik a astronom Mohammed Al-Chorezím v latinském přepise příjmení= algoritmus Nejstarší algoritmus Euklides řecký matematik, 4. století

Více

Zápis programu v jazyce C#

Zápis programu v jazyce C# Zápis programu v jazyce C# Základní syntaktická pravidla C# = case sensitive jazyk rozlišuje velikost písmen Tzv. bílé znaky (Enter, mezera, tab ) ve ZK překladač ignoruje každý příkaz končí ; oddělovač

Více

Assembler - 5.část. poslední změna této stránky: Zpět

Assembler - 5.část. poslední změna této stránky: Zpět 1 z 5 19.2.2007 7:52 Assembler - 5.část poslední změna této stránky: 9.2.2007 1. Pseudoinstrukce a direktivy Zpět Kromě instrukcí můžete v Assembleru psát také další konstrukce, které se obšem nepřekládají

Více

Číselné soustavy. Binární číselná soustava

Číselné soustavy. Binární číselná soustava 12. Číselné soustavy, binární číselná soustava. Kódování informací, binární váhový kód, kódování záporných čísel. Standardní jednoduché datové typy s pevnou a s pohyblivou řádovou tečkou. Základní strukturované

Více

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku Znaky - standardní typ char var Z, W: char; - znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku - v TP (často i jinde) se používá kódová

Více

Jazyk C Program v jazyku C má následující strukturu: konstanty nebo proměnné musí Jednoduché datové typy: Strukturované datové typy Výrazy operátory

Jazyk C Program v jazyku C má následující strukturu: konstanty nebo proměnné musí Jednoduché datové typy: Strukturované datové typy Výrazy operátory Jazyk C Program v jazyku C má následující strukturu: Direktivy procesoru Globální definice (platné a známé v celém programu) Funkce Hlavička funkce Tělo funkce je uzavřeno mezi složené závorky { Lokální

Více