Imagine práce se seznamy (stručný manuál)

Podobné dokumenty
ALGORITMIZACE PRAKTICKÉ

Imagine Logo pokračování 1 Seznamy

Konvertor diakritiky 3. Instalace

Školní kolo soutěže Baltík 2009, kategorie C

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

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

Algoritmizace a programování

PODPROGRAMY PROCEDURY A FUNKCE

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole

Zadání soutěžních úloh

Dotazy tvorba nových polí (vypočítané pole)

Logo2 operace, rekurze, větvení výpočtu

PHP tutoriál (základy PHP snadno a rychle)

Regionální kolo soutěže Mladý programátor 2016, kategorie A, B

4. Statika základní pojmy a základy rovnováhy sil

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

Kreslení elipsy Andrej Podzimek 22. prosince 2005

DSL manuál. Ing. Jan Hranáč. 27. října V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

Programování v jazyku LOGO - úvod

DUM č. 11 v sadě. 30. Inf-6 Imagine Logo a animace pro nižší gymnázium

Školní kolo soutěže Baltík 2009, kategorie A a B

Výčtový typ strana 67

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

zapište obslužnou metodu události Click tlačítka a vyzkoušejte chování polevýsledek.text = polečíslo1.text + polečíslo2.text;

Excel tabulkový procesor

Něco málo o programu Imagine Logo

Skripta ke školení. Základy VBA. vypracoval: Tomáš Herout. tel:

PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 7

Programovací jazyk Pascal

ALGORITMIZACE A PROGRAMOVÁNÍ

Aplikované úlohy Solid Edge. SPŠSE a VOŠ Liberec. Ing. Jan Boháček [ÚLOHA 27 NÁSTROJE KRESLENÍ]

II. Úlohy na vložené cykly a podprogramy

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

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

Comenius Logo. Princip programování. Prostředí Comenius Logo

Regionální kolo soutěže Baltík 2007, kategorie A a B

Novinky v programu SKLADEK

Hodnocení soutěžních úloh

Úvod do programování. Lekce 1

DUM č. 5 v sadě. 30. Inf-6 Imagine Logo a animace pro nižší gymnázium

Střední odborná škola a Střední odborné učiliště, Hořovice

X36UNX 16. Numerické výpočty v sh příkazy expr, bc, dc. Zdeněk Sojka

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

Absolutní hodnota I. π = π. Předpoklady: = 0 S nezápornými čísly absolutní hodnota nic nedělá.

PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky.

Mezinárodní kolo soutěže Baltík 2007, kategorie A a B

BARVY. Příkaz barva. Barvy TrueColor. Se objeví dialogové okno

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

Základy programování v jazyce Python pro střední školy

Kontingenční tabulky v MS Excel 2010

umenugr JEDNOTKA PRO VYTVÁŘENÍ UŽIVATELSKÝCH GRAFICKÝCH MENU Příručka uživatele a programátora

verze Grafický editor PALSTAT s.r.o. systémy řízení jakosti PALSTAT CAQ 1 Obsah

Úvod do Unixu. man: příkaz pro zobrazení nápovědy k danému příkazu, programu (pokud je k dispozici), např. man cp. pwd: vypíše cestu k aktuální pozici

Comenius Logo. Úterý 20. března. Princip programování. Prostředí Comenius Logo

2. cvičení z ZI1 - Excel

Aplikované úlohy Solid Edge. SPŠSE a VOŠ Liberec. Radek Havlík [ÚLOHA 32 ODKAZY A TEXTY]

PROGRAMOVÁNÍ V SHELLU

1 Zrcadlení, středění

MAXScript výukový kurz

Prohledávání do šířky = algoritmus vlny

Obsah KAPITOLA 1 Několik slov o Wordu

Radka Veverková Flash

Algoritmizace a programování

Programování: základní konstrukce, příklady, aplikace. IB111 Programování a algoritmizace

Micro:bit lekce 3. - Konstrukci If Then a If Then Else najdete v kategorii Logic - Podmínky od If (např. porovnání < >= atd.) najdete taktéž v Logic

Úterý 8. ledna. Cabri program na rýsování. Základní rozmístění sad nástrojů na panelu nástrojů

Stěžejní funkce MS Excel 2007/2010, jejich ovládání a možnosti využití

Regionální kolo soutěže Baltík 2008, kategorie A a B

KIV/ZIS cvičení 5. Tomáš Potužák

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016

Baltík 2008 zadání školního kola kategorie A a B

Příkazy programovacího jazyka LOGO pro program KTurtle

SkiJo podpora pro vytyčování, řez terénem a kreslení situací

Hodnocení soutěžních úloh

Stručný návod k programu Octave

Přebírání okrsků v aplikaci Wanas

Mezinárodní kolo soutěže Baltík 2009, kategorie A a B

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

2. Svoje řešení pojmenujte podle čísel zadání úloh: uloha1.sgpbprj uloha4.sgpbprj

GeoGebra známá i neznámá

Zobrazovač teploty, času, datumu a textů. 1. Nastavení nového datumu ( z procedury Vlož text )

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


Funkce, elementární funkce.

Matematická olympiáda ročník ( ) Komentáře k úlohám 2. kola pro kategorie Z5 až Z9. kategorie Z5 Z5 II 1 Z5 II 2 Z5 II 3

Pointery II. Jan Hnilica Počítačové modelování 17

METODICKÝ POKYN PRÁCE S MS Word MÍRNĚ POKROČILÍ. Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky.

Vzdělávací obsah vyučovacího předmětu MATEMATIKA pro 1. stupeň

CNC soustružení pro pokročilé

Popis výukového materiálu

Střední odborná škola a Střední odborné učiliště, Hořovice

Výpočet excentrického klikového mechanismu v systému MAPLE 11 Tomáš Svoboda Technická fakulta Česká Zemědělská Univerzita

Systém je citlivý na velikost písmen CASE SENSITIVE rozeznává malá velká písmena, např. PROM=1; PROm=1; PRom=1; Prom=1; prom=1; - 5 různých proměnných

Úvod...1 Instalace...1 Popis funkcí...2 Hlavní obrazovka...2 Menu...3 Práce s aplikací - příklad...5

Psaní programu pro PLC SIMATIC S7-300 pomocí STEP 7

MRBT. Stacionární průmyslový robot EPSON C3 aplikace pro prezentaci

Zadání: TÉMA: Zápis algoritmu, čtení textového souboru, porovnání řetězců.

Hydroprojekt CZ a.s. WINPLAN systém programů pro projektování vodohospodářských liniových staveb. HYDRONet 3. Modul PODKLADOVÉ MAPY

Formulář pro křížový filtr

Lokální definice (1) plocha-kruhu

Transkript:

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, slov, želv, věta, seznam seznamů) [úterý středa čtvrtek pátek sobota] [1-3 5 2.33333] [ž1 ž2 Karel] [Jak se máte?] [[2 5][3 4][7 1.2][0 0]] Některé funkce v Imagine pracují se seznamy přímo: pozice želvy - dvě souřadnice zobraz ž1'poz [232-153] (příkl.: pozice želvy mezi 2 želvami každých 10 [poz! (ž2'poz + ž3'poz)/2] ) pozice myši piš myš -134 312 aktuální čas - 4 prvky (h, min, s, ms) zobraz čas [14 28 32 564] seznam želv zobraz všechny [ž1 ž2 ž3 ž4 malá] seznam aktivních želv zobraz stránka1'aktivnínastránce [ž1] Přístup k datům v seznamu (následující příklady na sebe navazují, obsah :a se mění) Seznam může být obsahem proměnné: dosaď "a [2 3 6 8 11] Počet prvků seznamu piš počet :a 5 První prvek ze seznamu piš první :a 2 Poslední prvek ze seznamu piš poslední :a 11 Konkrétní prvek piš prvek 4 :a 8 Libovolný prvek ze seznamu pro libprvek [ž1 ž2 ž3][do 15] Výpis prvků seznamu opakuj počet :a [piš prvek poč :a] Přidávání prvků k seznamu Přidání prvku před seznam * zobraz vložprvní 7 :a [7 2 3 6 8 11] Přidání prvku za seznam ** dosaď "a vložposlední "s :a zobraz :a [2 3 6 8 11 s] (všimněte si, že v řádku * se obsah proměnné nezmění, zatímco v ** se změní). Odebírání prvků seznamu Odebrání prvního prvku seznamu zobraz bezprvního :a [3 6 8 11 s] Odebrání dvou posledních prvků dosaď "a bezposledního bezposledního :a zobraz :a [2 3 6 8] Odebrání konkrétního prvku zobraz bezprvku 2 :a [2 6 8] Vytvoření seznamu dosaď "b [2 3] dosaď "c "kdo Seznam ze dvou prvků zobraz seznam "b "c zobraz seznam :b :c [b c] [[2 3] kdo] Věta seznam z prvků seznamů zobraz věta :b :c [2 3 kdo] Seznam více prvků zo (seznam 2 :b :c) [2 [2 3] kdo] Seznam z jednoho prvku zo (seznam 12) [12] 2 3 6 8 11 1

Další příkazy pro práci se seznamy nahraď zo nahraď 3 [a b c d] "w [a b w d] zamíchej zo zamíchej [1 2 3 4 5] [2 4 3 5 1] převrať zo převrať [Karel brečel] [brečel Karel] prvek? piš prvek? "bc [a bc] ano seznam? piš seznam? "koloběžka ne podrobnější popis syntaxe a použití najdete v nápovědě Imagine Počítání uvnitř seznamů místo jednoduchého zápisu pomocí znamének: zo 100*myš [-23200 34500] piš čas + [0 0 0 5] 16 13 09 981 uvnitř složitějších příkazů se používají příkazy součet, součin, rozdíl, podíl: dosaď "a [1 2 3 4 5] opakuj 4 [dosaď "a součin 10 :a] zo :a [10000 20000 30000 40000 50000] piš součet čas bezposledního :a 10016 20013 30055 40657 Složitější příklady Hádanky (uhodněte, co Imagine vypíše na uvedené příkazy nebo zkuste porozumět výpisům) piš prvek? "b [a bc] ne b není samostatným prvkem seznamu piš prvek? "b poslední [a bc] ano dotaz, zda b je prvkem posledního prvku seznamu dosaď "a [česnek cibule skořice] piš prvek? "česnek bezprvního :a ne piš první poslední :a s piš poslední bezposledního :a cibule zo vložposlední "ne bezposledního :a [česnek cibule ne] Vyčištění seznamu dosaď "a [] piš prázdný? :a ano piš počet :a 0 Ovládání více želv Příkazy každá, prokaždou postupně procházejí seznamy aktivních želv. Viz příklady: odteď všechny nyní budou poslouchat příkazy všechny želvy směr! směremk myš natočí se všechny stejným směrem, podle nastavení první aktivní želvy (obr. 1) každá [směr! směremk myš] postupně je aktivní vždy jen jedna želva, všechny se natočí k myši (obr. 2) obr. 1 obr. 2 pro [ž1 ž2][piš poz] pro [ž1 ž2] [každá[piš poz]] 210-180 prokaždou [ž1 ž2][piš poz] 210-180 vypíše se pozice první aktivní želvy ž1 želvy jsou aktivní postupně, vypíše se pozice obou želv jiný zápis téhož příkazu 2

Postupné vkládání souřadnice myši do seznamu každých 100 [dosaď "a vložposlední myš :a] zobraz :a [[20 47][-1 120][31 90][121-65]...] pd opakuj počet :a [poz! prvek poč :a] (želva obkreslí čáru ze souřadnic v seznamu) opakuj počet :a [poz! seznam první :a součin -1 poslední :a] (želva nakreslí čáru souměrnou s původní čarou podle osy x) Seřazení želv do řady dosad "sez.želv stránka1'aktivnínastránce zobraz :sez.želv [ž1 ž2 ž3 ž4 ž5 ž6 ž7] opakuj 7 [pro prvek poč :sez.želv [poz! seznam 35*poč 0]] (želvy se pravidelně rozmístí po ose x s rozestupem 35) Stopky obsah proměnné, do které se dosazuje dosaď "startčas čas [15 32 52 765] dosaď "stopčas čas [15 33 06 954] dosad "x rozdíl :stopčas :startčas [0 1-46 189] Oprava odečteného času: když prvek 3 :x < 0 [dosad "x nahrad 3 :x prvek 3 :x + 60 dosad "x nahrad 2 prvek 2 :x - 1] zobraz :x [0 0 14 189] piš (věta [Naměřil se čas] prvek 3 :x [sekund a ] prvek 4 :x [setin]) Naměřil se čas 9 sekund a 671 setin sekundy Tvar želvy vytvořený jako seznam příkazů ke kreslení Příklad: tvar želvy jako obdélník od počátku ke kurzoru myši ž1'tvar!![opakuj 2 [ do (poslední myš) vp 90 do (první myš) vp 90]] Hromadná úprava prvků seznamu Definujeme operaci, jejímž vstupem je seznam čísel :sez. Výslednou hodnotou bude týž seznam, ale každé číslo bude zvětšené o 5. Pomocí opakování: opakuj počet :sez [dosaď "sez nahraď poč :sez součet prvek poč :sez 5] (každý prvek je postupně nahrazen součtem sebe sama a čísla 5) Pomocí rekurze: příkaz přidej5 :sez když prázdný? :sez [výsledek []] výsledek vložprvní 5 + první :sez přidej5 bezprvního :sez Definujeme proceduru, jejímž vstupem je seznam čísel :sez. Výslednou hodnotou bude seznam pouze těch z těchto čísel, která jsou menší než 20. příkaz menší.20 :sez dosaď "výsl [] opakuj počet :sez [když prvek poč :sez > 20 [dosaď "výsl vložposlední prvek poč :sez :výsl]] Slova jsou seznamy písmen Základní práce se slovy je stejná jako se seznamy piš počet "norek 5 piš bezprvku 2 "Ostrava Otrava piš věta [Vojta ze mlýna][vedl krávu na trh.] Vojta ze mlýna vedl krávu na trh. Při použití více parametrů, než je předepsáno, se použijí kulaté závorky. dosaď "x [vedl krávu na trh] piš (věta [Vojta ze mlýna] :x [a chytil u splavu chrousta.]) Vojta ze mlýna vedl krávu na trh a chytil u splavu chrousta. 3

Práce s textovým polem Textové pole změní seznam v řetězec znaků, který jím zůstane, i když je z textového pole přemínśtěn do proměnné. dosad "verš [[pole][jsou už][dávno holá]] piš počet :verš 3 piš prvek 3 :verš dávno holá text1 hodnota! :verš piš počet text1 31 piš prvek 3 text1 p dosad "verš text1 piš počet :verš 31 piš prvek 3 :verš p piš prvek? "pole text1 ano piš prvek? [pole] text1 Čísla v textovém poli Čísla jsou chápána jako řetězec znaků (při použití nástrojů pro práci se seznamy). dosaď "souř [100 16] piš 2*prvek 1 :souř 200 prvek? neuznává [pole] jako svůj vstup Procedura prvek? očekává slovo jako svůj vstup text1 hodnota! :souř piš počet text1 8 piš 2*prvek 2 text1 2 dosaď "souř text1 piš počet :souř 8 Zatímco před vložením do textového pole se obsah proměnné souř choval jako dvouprvkový, v textovém poli je prvkem každý jeho znak. text1 hodnota! bezprvního bezposledního text1 Sestavení názvu proměnné uvnitř cyklu příkazy slovo a obsah Chceme vypsat obsah proměnných :a1, :a2, :a3, :a4 dosad "a1 "Svatý dosaď "a2 "Jan dosaď "a3 "nad dosaď "a4 "Malší opakuj 4 [piš slovo "a poč] opakuj 4 [piš obsah slovo "a poč] Svatý Jan nad Malší Komentář k posledním dvěma řádkům příkazů: funkce slovo sestaví název proměnné podle aktuální hodnoty počítadla, tedy: "a1, "a2, funkce obsah vrátí obsah proměnné s příslušným názvem, tedy obsah proměnné :a1... obsah je ekvivalent : piš :a je totéž jako piš obsah "a a1 a2 a3 a4 Sestavení názvu želvy dosaď "a 3 pro slovo "ž :a [do 100] leze pouze želva ž3 Oslovování více želv opakuj počet [ž1 ž2 ž3 ž4] [pro slovo "ž poč [tvar! "abeceda záběr! poč]] (každá želva převezme tvar písmena, jehož pořadí v abecedě odpovídá číslu v jejím jméně) Záběry želv podle slova Definujeme proceduru, v níž želvy převezmou tvary písmen abecedy podle znaků slova parametru :vstup (slovo je psáno velkými písmeny). 4

Předpokládáme, že máme vytvořen dostatek želv vhodně seřazených, všechny s načteným tvarem "abeceda se záběry od A do Z (bez znaků s diakritikou, bez ch). U všech želv je nastaveno určování záběrů (je vypnuto automatické nastavení záběru podle směru natočení želvy). příkaz oživlé.slovo :vstup opakuj počet :vstup [ pro slovo "ž poč [záběr! rozdíl kódznaku prvek poč :vstup 64] ] Na příkaz oživlé.slovo "CHLAP se změní tvar želv: Vysvětlivky: kódznaku zjistí ASCII kód znaku ze seznamu; od něho se odečte 64 (znak A má kód 65 a tomu odpovídá 1. záběr tvaru "abeceda). Tatáž úloha pro celou větu Želvy se budou postupně měnit ve slova věty. příkaz oživlá.věta :vstupní.věta opakuj počet :vstupní.věta [oživlé.slovo prvek poč :vstupní.věta čekej 2000] Vstupním parametrem procedury oživlé.slovo jsou postupně jednotlivá slova vstupní věty. Příklad volání procedury z příkazového řádku: oživlá.věta [Měsíc v úplňku svítil přes záclony na tygra v knize.] 5