Logo2 operace, rekurze, větvení výpočtu
|
|
- Drahomíra Bartošová
- před 7 lety
- Počet zobrazení:
Transkript
1 Operace Logo2 operace, rekurze, větvení výpočtu Je naše vlastní operace, jejím výsledkem je nějaká hodnota. Na určení tohoto výsledku musíme použít základní příkaz jazyka Imagine logo. A tím je výsledek. Vždy když program Imagine při vykonávání procedury najde příkaz výsledek, zastaví výpočet této procedury a hodnotu výrazu za příkazem výsledek vrátí jako výstup procedury. Příkaz výsledek má vlastně stejný význam jako příkaz. Příklad 1 Porovnáme dvě hodnoty a určíme, která je menší. Tu pak označíme jako min. Běžně se samozřejmě pracuje s větším množstvím čísel např. s poslouostí n čísel. Tento příklad je tu pro názornost. Příkaz min :a :b kdyžjinak :a < :b [výsledek :a] [výsledek :b] V Imagine logo existují tyto druhy operací číselné - logické - operace jejichž výsledkem je ano nebo ne, podmínky, predikáty Číselné operace Číselné operace jsou procedury s jedním, dvěma nebo více číselnými vstupy a číselným výsledkem. Tento výsledek lze, obdobně jako u funkcí v Delphi, použít pro jiné operace nebo příkaz jako jejich vstup např. logická operace, operace náhodně. Podmínkou může být jakákoliv operace, ať už základní nebo definovaná námi, která vyhodnotí určitou podmínku či vztah mezi svými vstupy a podle pravdivosti vrátí jako výsledek ano nebo ne. Logické operace Logické operace. Ty vykonávají bitové operace na celočíselných vstupech. Každý z níže vypsaných očekává jako svůj vstup jedno, dvě nebo i několik celých čísel. Jsou to - bitand bitnot bitor bitxor Některé další z logických operací umožňují kombinovat jednoduché podmínky a vytvářet z nich složitější. Vstupy pro tyto operace jsou logické hodnoty. Imagine nejprve vyhodnotí všechny vstuí výrazy a jejich hodnoty potom pošle jako vstupy operacím nebo,zároveň apod. např. zároveň číslo? :p prvočíslo? :p. 1
2 Nesmíme však zapomenout, že někdy je výhodnější nevyhodnocovat všechny vstuí výrazy napřed, ale až v té chvíli než je začne zpracovávat operace zároveň, nebo atd. Proč? Protože pokud by např. zadané prvočíslo nebylo číslo, je potom zbytečné vykonávat ostatní příkazy. Lepší je zadat celou podmínku v jiném tvaru a to - zároveň číslo? :p [prvočíslo? :p]. To znamená, že druhý výraz/příkaz se vyhodnotí až operací zároveň (t.j. ne před samotným jádrem Imagine)a to i v případě, jestliže je první hodnota slovo ano. Operace jejichž výsledkem je ano nebo ne Operace jejichž výsledkem je ano nebo ne, nazýváme podmínky nebo predikáty. Příkladem takovýchto podmínek jsou číselné operace <, >, <=, >=, <>, =, a nebo predikáty jako slovo? seznam? atd. Slovo ano znamená, že určitá podmínka je pravdivá. Ne pak znamená, že podmínka je nepravdivá. Některé procedury prostředí Imagine očekávají jako jeden ze svých vstupů buď ano nebo ne, když, když2 nebo otestuj, a získávají je testováním určitých podmínek. Procedury jako slovo? nebo stejné? prázdný? Jsou jednoduché základní podmínky. Někdy však potřebujeme otestovat/zjistit složitější podmínku složenou z více jednoduchých. Imagine má několik operací, kterými můžeme spojovat jednoduché podmínky do složitějších. Jsou jimi např. zároveň, nebo, není a xor. Příklady Příklad 2 Máme za úkol vykreslit na plochu obdelník. Pak necháme želvu libovolně chodit po ploše. Pokud se bude nacházet v obdelníku vypíše se do příkazového řádku Ano, pokud bude mimo obdelník vypíše se Ne. - želva příkaz lib.procházka.pozice:a:b // dvě proměnné a,b = strany obdelníka // pero nahoru do 20 vp lib // do libovolně, vpravo libovolně => želva si chodí kde chce tp! 3 // tloušťka pera číslo 3 kdyz nebo (abs poz < :a/2) // když nebo = buď nebo; (abs poz < :b/2) když je absolutní pozice želvy menší než polovina strany [pis "Ano.] a tak vypiš [Ano.] nebo i případě když je absolutní pozice želvy menší než strana b kdyz nebo (abs poz > :a/2) (abs poz > :b/2) [pis "Ne.] * 2 // opak když je absolutní pozice želvy větší než polovina strany a tak vypiš [Ne.].
3 Pokud bychom chtěli mít z této operace koncovou/ocasovou rekurzi, museli bychom zavolat operaci před koncem viz.*. Zápis - lib.procházka.pozice:a:b. Další variantu řešení najdete u větvení. Rekurze Definice rekurze Funkce, jejíž definice se odkazuje na sebe samu. Rekurzivní programy bývají stručnější a jednoduší pro pochopení než jiné modely, protože vystihují podstatu funkce. Zvláštním případem rekurze je iterace tzn. Rekurze se objevuje na začátku nebo konci sady instrukcí. Hloubka rekurze musí být konečná, ale ve skutečnosti i malá. Operuje na lineárních seznamech, stromech, grafech. Realizace rekurze Důležitým a účinným prostředkem na vyjádření rekurze v programování je procedura (nebo podprogram), které identifikátor slouží na rekurzivní aktivaci jejího těla. A podle zvoleného způsobu volání pak označujeme rekurzi buď jako přímou nebo nepřímou (viz. níže). Podmínky ukončení rekurze Protože u rekurzivních procedur je možnost nekonečných výpočtů, musíme se zaobírat my otázkou ukončení výpočtu. Základním požadavkem je, aby se rekurzivní volání procedury P řídilo podmínkou, která je za určité situace nesplnitelná. Např. dokud n > 0 opakuj Rozdělení rekurzí Rozeznáváme dva druhy rekurze - přímá rekurze procedura volá sama sebe - nepřímá rekurze procedura volá jinou proceduru a ta volá opět původní proceduru Kdy nepoužívat rekurzy Rekurzi bychom neměli používat, pokud již samotný charakter úlohy nevede přirozeným způsobem k rekurzivnímu řešení. Nesprávné a nevhodné je použití také tehdy, jestliže úlohu dokážeme stejně dobře, nebo dokonce i lépe řešit bez rekurze. V takovém případě je rekurze zbytečná a zpravidla vede jenom ke zvýšení časových a paměťových nároků programu při výpočtu. Naproti tomu se můžeme setkat s úlohami, které se pomocí rekurze řešily naprosto přirozeně a u nichž bylo použití rekurze zcela na místě. Jako příklad můžeme uvést techniku 3 prohledávání do hloubky včetně její aplikace při řešení grafových úloh na rekurzi je založena metoda rozděl a panuj, která se využívá například v některých třídících algoritmech. Výhody rekurze Hlavními výhodou rekurze je to, že -
4 - často poskytuje elegantnější a jednodušší řešení problému než u jiných nerekurzivních programů např. iterace - je mocným nástrojem pro řešení problémů, které jsou rekurzivně definovány - může být ekonomickým řešením problému, pokud není hloubka rekurzivního volání příliš velká - můžeme realizovat vše od matematických úloh až po obrazce - umožní zapsat podobně složité úlohy srovnatelně jednoduše, i jednodušeji pomocí rekurzivního algoritmu Nevýhody rekurze malá efektivita výpočtu - velké nároky na paměť Důvod je ten, že při každém volání rekurzivní procedury P vyžaduje procedura přidělení určitého množství paměti potřebné na lokální proměnné. Kromě těchto lokálních proměnných potřebujeme ještě paměť na uchování momentálního stavu výpočtu procedury. Praxe Pokud chceme psát jakýkoli program, a to i rekurzivní, musíme chápat jeho princip. Snad nejlépe se rekurze dá pochopit na rekurzivní proceduře na výpočet faktoriálu (n) nebo Fibonacciho čísla. Pokud tyto příklady chápete, tak vám psaní rekurze, ať už jakékoliv nebude dělat problémy. A nyní jeden z mnoha rekurzních příkladů z Imagine Loga. U každé operace je popis, co v programu vykoná. Další příklady naleznete na konci textu. Příklad 1 Náhodná procházka je jedna z nejvíce známých procedur v Imagine Logo. Želva má v tomto případě omezený prostor pro vykreslování. Samozřejmě můžeme želvu nechat chodit i volně, ale takto se dají vytvořit pěkné obrázky. Co má želva vykreslit vidíte na obrázku. Nezapomeňte želvu zneviditelnit. příkaz proch.kruh100 // libovolná procházka, kruh průměr 100 do lib vp lib // dopředu lib vpravo libovolně => želva si jde o náhodně zvolenou vzdálenost dopředu a o náhodně zvolený úhel doprava barvapera! "žlutá // nezapomínejte psát vykřičník a před barvou uvozovky 4 kdyz abs poz > 50 // pokud želva absolutní pozice želvy bude větší než 50 [bp! "červená] změní barvu pera na červenou kdyz abs poz > 101 // pokud absolutní pozice želvy bude větší než 101 želva se vrátí [domu barvapera! "žlutá] domu (do středu stránky)a barva pera se jí změní zpět na žlutou lib.procházka.kruh100 // zavoláním procedury A v proceduře A vytvoříme nikdy
5 nekončící rekurzi; tím že umístíme toto zavolání těsně před procedury vytvoříme rekurzi ocasovou Větvení Často potřebujeme při vytváření programu zajistit, aby se určité příkazy provedly jen tehdy, když je splněna nějaká podmínka. Podmínka = tvrzení, o kterém lze jednoznačně rozhodnout, zda je pravdivé či nepravdivé. (V Delphi používáme slova true, false). Příkaz = označuje jak jednoduchý, tak strukturovaný příkaz; např. příkaz cyklu, více příkazů poslouost příkazů, ale i další příkaz větvení. Rozeznáváme dva druhy větvení a to neúplné a úplné. Neúplné větvení Používáme v případě, chceme-li, aby se určitý příkaz vykonal/ provedl jen v případě, že je splněna zadaná podmínka. Zápis obecně jestliže podmínka pak příkaz ; Co se stane? Počítač si v programu přečte podmínku a jestliže je splněna provede příkaz. Jestliže není splněna, program se ukončí. Nestane se nic. Úplné větvení U úplného větvení je to trochu jinak. Používáme jej v případě, že chceme, aby se při splnění podmínky vykonal nějaký příkaz. Když se nesplní vykoná s jiný nebo jiná sada příkazů. Zápis obecně Jestliže podmínka pak příkaz1 jinak příkaz2 Co se stane v tomto případě je popsáno výše. 5 Praxe Příklad 1 Druhá verze v určení pozice želvy pomocí příkazu kdyžjinak. Neprve vykreslíme obdelník a poté, co přesuneme želvu na pozici domu můžeme se začít ptát, zda je v obdelníku či ne. příkaz obdelnik smaž
6 domů vl 90 do 100 vl 90 do 50 vp 180 opakuj 2 [do do ] domů příkaz kd obdelnik // voláme proceduru obdelník, aby se nám na ploše vykreslil kdyžjinak mimo? [ ] // ptáme se je-li želva mimo pozici zapsanou v hranaté [text"ano] závorce když není vypíše se Ano. ; jinak se vypíše Ne. [text"ne] Další příklady Příklad 1 Vykreslí sněhovou vločku. Jednu z rekurzivních křivek. Viz. obr. příkaz vločka1 :a do :a vl 60 do :a vp 120 do :a vl 60 do :a příkaz vločka3 vl 90 do 25 vp 90 do 15 opakuj 6 [vlocka1 20 vp 120 vlocka1 20 vl 60] do příkaz vločka4 příkaz vločka2 opakuj 6 [vlocka1 10 vp 120 vlocka1 10 vl 60] vl 90 do 50 vp 90 do 25
7 opakuj 6 [vlocka1 30 vp 120 vlocka1 30 vl 60] do 100 příkaz vločkac smaž domů tp! 2 vlocka2 cekej 500 domů vlocka3 cekej 500 domu vlocka4 Zavoláním vločkyc vznikne obrázek. Příklad 2 Vykreslí trojúhelníkovou spirálu. příkaz troj :d dosad ":d 10 tp! 3 bp! lib do :d vp 119 cekej 100 troj.spir :d + 5 Při jiném nastavení úhlu otáčení vznikají úplně jiné obrazce. Navíc je tato procedura rekurzivní tzn. Vidíte jen část spirály. Příklad 3 Rekurzivní program pro vykreslení nekonečného počtu bodu. příkaz body smaž 7
8 domů do 1 vp lib tp! 33 bp! lib do 20 body 8
ALGORITMIZACE PRAKTICKÉ
LOGO IMAGINE Obsah 1. Příkazy 1.1. Základní příkazy 1.2. Vestavěné příkazy Imagine 1.2.1.Příkaz mnohoúhelník 1.2.2.Náhodná procházka 2. Matematické operace 3. Funkce 4. Predikáty 5. Konstruktory 6. Selectory
VíceProhledávání do šířky = algoritmus vlny
Prohledávání do šířky = algoritmus vlny - souběžně zkoušet všechny možné varianty pokračování výpočtu, dokud nenajdeme řešení úlohy průchod stromem všech možných cest výpočtu do šířky, po vrstvách (v každé
VíceNěco málo o programu Imagine Logo
Něco málo o programu Imagine Logo Imagine a objekty Objektově orientované programování (OOP) se v posledních letech stává velmi populárním. Mnoho začínajících programátorů sní o možnosti naučit se pracovat
Více1. 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íceImagine Logo pokračování 1 Seznamy
Imagine Logo pokračování 1 Seznamy autor: Viktor Svoboda Konstruktory vlozprvni a vlozposledni Konstruktory jsou to procedury, které umožňují spojovat slova nebo čísla. Obecněji řečeno jsou to procedury
VíceInformatika 8. třída/6
Rekurze Jedním z důležitých principů pro návrh procedur je tzv. rekurze. Nejlépe uvidíme tento princip na příkladech dvou velmi jednoduchých procedur (hvězdička označuje násobení). Rekurze vlastně označuje
Více1. 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íce2 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íceAlgoritmizace 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íceComenius Logo. Princip programování. Prostředí Comenius Logo
Comenius Logo je objektově orientovaný programovací nástroj pracující v prostředí Windows. Byl vyvinut na Slovensku jako nástroj k výuce programování na základních školách. Rozvíjí tvořivost a schopnost
VíceDUM č. 5 v sadě. 30. Inf-6 Imagine Logo a animace pro nižší gymnázium
projekt GML Brno Docens DUM č. 5 v sadě 30. Inf-6 Imagine Logo a animace pro nižší gymnázium Autor: Hana Křetínská Datum: 25.06.2014 Ročník: 1AV, 2AV Anotace DUMu: Imagine Logo je vývojové prostředí s
Více2.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íceProgramování v jazyku LOGO - úvod
Programování v jazyku LOGO - úvod Programovací jazyk LOGO je určen pro výuku algoritmizace především pro děti školou povinné. Programovací jazyk pracuje v grafickém prostředí, přičemž jednou z jeho podstatných
VíceČ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íceLekce 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íceRekurze. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.
Rekurze doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 12. září 2016 Jiří Dvorský (VŠB TUO) Rekurze 161 / 344 Osnova přednášky
VíceDUM 06 téma: Tvorba makra pomocí VBA
DUM 06 téma: Tvorba makra pomocí 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: 18-20-M/01 Informační technologie
VíceImagine práce se seznamy (stručný manuál)
Imagine práce se seznamy (stručný manuál) Jiří Vaníček, 2008 (V materiálu byly použity příklady z přednášek prof. Kalaše, UK Bratislava) Seznam jakákoliv data uzavřená do hranatých závorek (seznam čísel,
VíceAlgoritmus. 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íceANOTACE 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íceProgramovací 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íceAlgoritmizace 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íceAlgoritmizace 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ícetype 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Řešení: PŘENESVĚŽ (N, A, B, C) = přenes N disků z A na B pomocí C
Hanojské věže - 3 kolíky A, B, C - na A je N disků různé velikosti, seřazené od největšího (dole) k nejmenšímu (nahoře) - kolíky B a C jsou prázdné - úkol: přenést všechny disky z A na B, mohou se odkládat
VíceDUM č. 11 v sadě. 30. Inf-6 Imagine Logo a animace pro nižší gymnázium
projekt GML Brno Docens DUM č. 11 v sadě 30. Inf-6 Imagine Logo a animace pro nižší gymnázium Autor: Hana Křetínská Datum: 25.06.2014 Ročník: 1AV, 2AV Anotace DUMu: Imagine Logo je vývojové prostředí s
VíceAlgoritmy a datové struktury
Algoritmy a datové struktury 1 / 34 Obsah přednášky Základní řídící struktury posloupnost příkazů podmínka cyklus s podmínkou na začátku cyklus s podmínkou na konci cyklus s pevným počtem opakování Jednoduchá
VíceImplementace LL(1) překladů
Překladače, přednáška č. 6 Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 30. října 2007 Postup Programujeme syntaktickou analýzu: 1 Navrhneme vhodnou LL(1) gramatiku
VíceProgramujeme v softwaru Statistica
Programujeme v softwaru Statistica díl druhý Newsletter Statistica ACADEMY Téma: Programování, makra, skripty Typ článku: Návody V tomto článku si ukážeme další možnosti při psaní maker v softwaru Statistica.
VíceComenius Logo. Úterý 20. března. Princip programování. Prostředí Comenius Logo
Úterý 20. března Comenius Logo je objektově orientovaný programovací nástroj pracující v prostředí Windows. Byl vyvinut na Slovensku jako nástroj k výuce programování na základních školách. Rozvíjí tvořivost
VíceVISUAL 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íceNPRG030 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íceRekurze. Jan Hnilica Počítačové modelování 12
Rekurze Jan Hnilica Počítačové modelování 12 1 Rekurzivní charakter úlohy Výpočet faktoriálu faktoriál : n! = n (n - 1) (n - 2)... 2 1 (0! je definován jako 1) můžeme si všimnout, že výpočet n! obsahuje
VíceÚvod do programování 10. hodina
Úvod do programování 10. hodina RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015 Umíme z minulé hodiny Syntax Dvojrozměrné pole
VícePODPROGRAMY 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íceVýroková logika II. Negace. Již víme, že negace je změna pravdivostní hodnoty výroku (0 1; 1 0).
Výroková logika II Negace Již víme, že negace je změna pravdivostní hodnoty výroku (0 1; 1 0). Na konkrétních příkladech si ukážeme, jak se dají výroky negovat. Obecně se výrok dá negovat tak, že před
VíceVzorce. StatSoft. Vzorce. Kde všude se dá zadat vzorec
StatSoft Vzorce Jistě se Vám již stalo, že data, která máte přímo k dispozici, sama o sobě nestačí potřebujete je nějak upravit, vypočítat z nich nějaké další proměnné, provést nějaké transformace, Jinak
VíceInovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Jednoduché příkazy jazyka Pascal
Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1 Šablona: Název: Téma: Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Jednoduché příkazy
Více- příkaz pohybující želvou zpět a o kolik. vlevo 45 vl 45 libovolně zadáme) směrem doleva. Na obrázku jsme pro
Logo Imagine Základní příkazy První informací by mělo být, že nejdůležitějším objektem a tím, od kterého se vše odvíjí dál je želva. Při prvním spuštění programu je to to první, co můžete uprostřed bianco
Více6 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íceMaturitní 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íce4. Rekurze. BI-EP1 Efektivní programování Martin Kačer
4. Rekurze BI-EP1 Efektivní programování 1 ZS 2011/2012 Ing. Martin Kačer, Ph.D. 2010-11 Martin Kačer Katedra teoretické informatiky Fakulta informačních technologií České vysoké učení technické v Praze
VíceRekurze. Pavel Töpfer, 2017 Programování 1-8 1
Rekurze V programování ve dvou hladinách: - rekurzivní algoritmus (řešení úlohy je definováno pomocí řešení podúloh stejného charakteru) - rekurzivní volání procedury nebo funkce (volá sama sebe přímo
VíceVýpočet excentrického klikového mechanismu v systému MAPLE 11 Tomáš Svoboda Technická fakulta Česká Zemědělská Univerzita
Výpočet excentrického klikového mechanismu v systému MAPLE 11 Tomáš Svoboda Technická fakulta Česká Zemědělská Univerzita ročník:2 studijní skupina:2 Page 1 Excentrický klikový mechanismus je zadán parametry
VíceAlgoritmizace 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íceRozklad problému na podproblémy
Rozklad problému na podproblémy Postupný návrh programu rozkladem problému na podproblémy zadaný problém rozložíme na podproblémy pro řešení podproblémů zavedeme abstraktní příkazy s pomocí abstraktních
VíceVyuč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íceVyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.
Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 21. září 2018 Jiří Dvorský (VŠB TUO) Vyhledávání 242 / 433 Osnova přednášky
Vícedovolují 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íceDUM č. 9 v sadě. 30. Inf-6 Imagine Logo a animace pro nižší gymnázium
projekt GML Brno Docens DUM č. 9 v sadě 30. Inf-6 Imagine Logo a animace pro nižší gymnázium Autor: Hana Křetínská Datum: 25.06.2014 Ročník: 1AV, 2AV Anotace DUMu: Imagine Logo je vývojové prostředí s
VíceVýukový materiál Hardware je zaměřený především na výuku principů práce hardwaru a dále uvádí konkrétní příklady použití.
Metodický list hardware Výukový materiál Hardware je zaměřený především na výuku principů práce hardwaru a dále uvádí konkrétní příklady použití. Postupuje od výčtu základních prvků, bez kterých se PC
VíceParalelní programování
Paralelní programování přednášky Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 14 Atomické akce dále nedělitelná = neproložitelná jiným procesem izolovaná =
VíceRasterizace je proces při kterém se vektorově definovaná grafika konvertuje na. x 2 x 1
Kapitola 4 Rasterizace objektů Rasterizace je proces při kterém se vektorově definovaná grafika konvertuje na rastrově definované obrazy. Při zobrazení reálného modelu ve světových souřadnicích na výstupní
VíceVYŠŠÍ ODBORNÁ ŠKOLA a STŘEDNÍ PRŮMYSLOVÁ ŠKOLA Mariánská 1100, 407 47 Varnsdorf PROGRAMOVÁNÍ FUNKCE, REKURZE, CYKLY
Jméno a příjmení: Školní rok: Třída: VYŠŠÍ ODBORNÁ ŠKOLA a STŘEDNÍ PRŮMYSLOVÁ ŠKOLA Mariánská 1100, 407 47 Varnsdorf 2007/2008 VI2 PROGRAMOVÁNÍ FUNKCE, REKURZE, CYKLY Petr VOPALECKÝ Číslo úlohy: Počet
VíceBinární soubory (datové, typované)
Binární soubory (datové, typované) - na rozdíl od textových souborů data uložena binárně (ve vnitřním tvaru jako v proměnných programu) není čitelné pro člověka - všechny záznamy téhož typu (může být i
VíceAlgoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010
Dynamické programování Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Rozděl a panuj (divide-and-conquer) Rozděl (Divide): Rozděl problém na několik podproblémů tak, aby tyto podproblémy odpovídaly původnímu
VíceSada 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íceVÝ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íceLogické 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íceAlgoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44
Algoritmizace a programování Ak. rok 2012/2013 vbp 1. ze 44 Vladimír Beneš Petrovický K101 katedra matematiky, statistiky a informačních technologií vedoucí katedry E-mail: vbenes@bivs.cz Telefon: 251
Více4 Želva se učí nové příkazy
4 Želva se učí nové příkazy Žofka je nejen inteligentní, ale také velmi učenlivá. Byla schopna nejen provádět základní příkazy, ale také si postupně rozšiřovala slovník příkazů. Když jsem ji naučil něco
Více4EK213 Lineární modely. 10. Celočíselné programování
4EK213 Lineární modely 10. Celočíselné programování 10.1 Matematický model úlohy ILP Nalézt extrém účelové funkce z = c 1 x 1 + c 2 x 2 + + c n x n na soustavě vlastních omezení a 11 x 1 + a 12 x 2 + a
VícePaměť 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ícePřednáška 3. Rekurze 1
Paradigmata programování 1 Přednáška 3. Rekurze 1 Michal Krupka KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI Obsah 1 Příklady 2 Rekurzivní procedury a rekurzivní výpočetní proces 3 Další příklady
VíceFormální systém výrokové logiky
Formální systém výrokové logiky 1.Jazyk výrokové logiky Nechť P = {p,q,r, } je neprázdná množina symbolů, které nazýváme prvotní formule. Symboly jazyka L P výrokové logiky jsou : a) prvky množiny P, b)
VíceProlog PROgramming in LOGic část predikátové logiky prvního řádu rozvoj začíná po roce 1970 Robert Kowalski teoretické základy Alain Colmerauer, David
Úvod do Prologu Prolog PROgramming in LOGic část predikátové logiky prvního řádu rozvoj začíná po roce 1970 Robert Kowalski teoretické základy Alain Colmerauer, David Warren (Warren Abstract Machine) implementace
VíceINTERNETOVÉ ZKOUŠKY NANEČISTO - VŠE: UKÁZKOVÁ PRÁCE
INTERNETOVÉ ZKOUŠKY NANEČISTO - VŠE: UKÁZKOVÁ PRÁCE. Součin 5 4 je roven číslu: a) 4, b), c), d), e) žádná z předchozích odpovědí není správná. 5 5 5 5 + + 5 5 5 5 + + 4 9 9 4 Správná odpověď je a) Počítání
VíceÚvod do informatiky. Miroslav Kolařík
Úvod do informatiky přednáška první Miroslav Kolařík Zpracováno dle učebního textu prof. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008. Obsah 1 Co a k čemu je logika? 2 Výroky a logické spojky
VíceAlgoritmizace. 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íceText úlohy. Která barva nepatří do základních barev prostoru RGB? Vyberte jednu z nabízených možností: a. Černá b. Červená c. Modrá d.
Úloha 1 Která barva nepatří do základních barev prostoru RGB? a. Černá b. Červená c. Modrá d. Zelená Úloha 2 V rovině je dán NEKONVEXNÍ n-úhelník a bod A. Pokud paprsek (polopřímka) vedený z tohoto bodu
VíceProgramovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)
Programovací jazyky Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog
VíceSémantika výrokové logiky. Alena Gollová Výroková logika 1/23
Výroková logika Alena Gollová Výroková logika 1/23 Obsah 1 Formule výrokové logiky 2 Alena Gollová Výroková logika 2/23 Formule výrokové logiky Výrok je oznamovací věta, o jejíž pravdivosti lze rozhodnout.
Více24-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íceProgramovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)
Programovací jazyky Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog
VíceK OZA SE PASE NA POLOVINĚ ZAHRADY Zadání úlohy
Koza se pase na polovině zahrady, Jaroslav eichl, 011 K OZA E PAE NA POLOVINĚ ZAHADY Zadání úlohy Zahrada kruhového tvaru má poloměr r = 10 m. Do zahrady umístíme kozu, kterou přivážeme provazem ke kolíku
VíceSyntaktická analýza. Implementace LL(1) překladů. Šárka Vavrečková. Ústav informatiky, FPF SU Opava
Implementace LL(1) překladů Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 6. ledna 2012 Postup Programujeme syntaktickou analýzu: 1 Navrhneme vhodnou LL(1) gramatiku
Více1 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íceSlepé prohledávání do šířky Algoritmus prohledávání do šířky Při tomto způsobu prohledávání máme jistotu, že vždy nalezneme koncový stav, musíme ale p
Hanojská věž Stavový prostor 1. množina stavů S = {s} 2. množina přechodů mezi stavy (operátorů) Φ = {φ} s k = φ ki (s i ) zadání [1 1 1] řešení [3 3 3] dva možné první tahy: [1 1 2] [1 1 3] který tah
VíceZá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íceSada 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íceAlgoritmizace 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 Datové struktury Daniela Szturcová
Vícefor (i = 0, j = 5; i < 10; i++) { // tělo cyklu }
5. Operátor čárka, - slouží k jistému určení pořadí vykonání dvou příkazů - oddělím-li čárkou dva příkazy, je jisté, že ten první bude vykonán dříve než příkaz druhý. Např.: i = 5; j = 8; - po překladu
VíceAlgoritmizace řazení Bubble Sort
Algoritmizace řazení Bubble Sort Cílem této kapitoly je seznámit studenta s třídícím algoritmem Bubble Sort, popíšeme zde tuto metodu a porovnáme s jinými algoritmy. Klíčové pojmy: Třídění, Bubble Sort,
VíceCykly. Základy programování 1 Martin Kauer (Tomáš Kühr)
Cykly Základy programování 1 Martin Kauer (Tomáš Kühr) Z minula Chary můžete používat jako znaky ale i jako čísla 0-255. Jakou formu vybrat záleží na konkrétní aplikaci. Když pracujete se znaky, používejte
VícePokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody
Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody Dynamická alokace paměti Jazyky C a C++ poskytují programu možnost vyžádat si část volné operační paměti pro
VícePascal. 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íceMATEMATIKA základní úroveň obtížnosti
ILUSTRAČNÍ DIDAKTICKÝ TEST MATEMATIKA základní úroveň obtížnosti DIDAKTICKÝ TEST Didaktický test obsahuje 8 úloh. Časový limit pro řešení didaktického testu je uveden na záznamovém archu. Povolené pomůcky:
VíceFunkce pokročilé možnosti. Úvod do programování 2 Tomáš Kühr
Funkce pokročilé možnosti Úvod do programování 2 Tomáš Kühr Funkce co už víme u Nebo alespoň máme vědět... J u Co je to funkce? u Co jsou to parametry funkce? u Co je to deklarace a definice funkce? K
VíceALGORITMIZACE 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íce3 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íceProgramování v C++, 2. cvičení
Programování v C++, 2. cvičení 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 Operátory new a delete 2 3 Operátory new a delete minule
VíceKMA/MDS Matematické důkazy a jejich struktura
Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.0141 KMA/MDS Matematické důkazy a jejich struktura Seminář 3 Predikátový počet Uvažujme následující úsudek.
VíceV každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2
Euklidův algoritmus Doprovodný materiál pro cvičení Programování I. NPRM044 Autor: Markéta Popelová Datum: 31.10.2010 Euklidův algoritmus verze 1.0 Zadání: Určete největšího společného dělitele dvou zadaných
VíceCVIČNÝ TEST 24. OBSAH I. Cvičný test 2. Mgr. Kateřina Nováková. II. Autorské řešení 6 III. Klíč 13 IV. Záznamový list 15
CVIČNÝ TEST 24 Mgr. Kateřina Nováková OBSAH I. Cvičný test 2 II. Autorské řešení 6 III. Klíč 13 IV. Záznamový list 15 I. CVIČNÝ TEST VÝCHOZÍ TEXT K ÚLOZE 1 Písemnou práci z chemie psalo všech 28 žáků ze
VíceStručný návod k programu Octave
Stručný návod k programu Octave Octave je interaktivní program vhodný pro technické výpočty. Je nápadně podobný programu MATLAB, na rozdíl od něho je zcela zadarmo. Jeho domovská vebová stránka je http://www.octave.org/,
Více5a. 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íce2. Svoje řešení pojmenujte podle čísel zadání úloh: uloha1.sgpbprj uloha4.sgpbprj
Pokyny: 1. Řešení úloh ukládejte do složky, která se nachází na pracovní ploše počítače. Její název je stejný, jako je kód, který váš tým dostal přidělený (C05, C10 apod.). Řešení, uložené v jiné složce,
VíceAlgoritmizace. 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íce7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd
7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd Algoritmizace (Y36ALG), Šumperk - 7. přednáška 1 Třída jako zdroj funkcionality Třída v jazyku Java je programová jednotka tvořená
VícePointery II. Jan Hnilica Počítačové modelování 17
Pointery II 1 Pointery a pole Dosavadní způsob práce s poli zahrnoval: definici pole jakožto kolekce proměnných (prvků) jednoho typu, umístěných v paměti za sebou int pole[10]; práci s jednotlivými prvky
Více