Něco málo o programu Imagine Logo



Podobné dokumenty
ALGORITMIZACE PRAKTICKÉ

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

- 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

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

Téma: Arkanoid. X36SOJ Strojově orientované jazyky Semestrální práce. Vypracoval: Marek Handl Datum: červen 2006

Vánoční setkání ve Strakonicích 2018

Lekce 03 Prostředí programu SCRATCH

Imagine Logo pokračování 1 Seznamy

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

František Hudek. květen ročník. Práce s aplikací Malování

Celostátní kolo soutěže Mladý programátor 2012, kategorie A, B

Uživatelská příručka pro program

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

VY_32_INOVACE_E 14 01

Program je určen pro děti se specifickými poruchami učení.

M I S Y S - W E B. Intranet řešení systému MISYS. Verze Příručka uživatele

Stejnou věc můžete udělat naráz v jednom příkazu. Ikonku animovaného předmětu pak stačí použít jen jednou na začátku řádku.

Když už má vykopané cesty, může postavit domyr opět přesně podle obrázku. Domy se objeví najednou. Program opět čeká.

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

2.4.2 Kreslení grafů funkcí metodou napodobení výpočtu I

A) IF předmět před Baltíkem

Dobrý den, dámy a pánové, rád bych vás seznámil s posledními trendy v oblasti sběru a zpracování účelových map velkých měřítek, a to zejména

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

UŽIVATELSKÁ PŘÍRUČKA KLÁVESNICE

Operační systémy Linux, Mac OS X a jejich srovnání

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

Dálkové ovládání HP Mobile Remote Control (pouze u vybraných modelů) Uživatelská příručka

Programování v jazyku LOGO - úvod

AUTOMATICKÁ SEKAČKA VÝZKUMNÁ ZPRÁVA

Sbírka příkladů. verze

Výuka počítačové grafiky

Jak instalovat Windows? Pokusíme si to zde co nejlépe popsat. Při instalaci Windows vycházíme ze dvou zákaldních možností a to:

Úvod do počítačových sítí

Uživatelská příručka systému pro administrátory obcí a manuál pro správce portálu

Tabulkové processory MS Excel (OpenOffice Calc)

Rámcový manuál pro práci s programem TopoL pro Windows

Mezinárodní programátorská soutěž Baltík 2005 úlohy školního kola

Správa online kurzů v moodlu na příkladu e-learningové platformy Vodní hospodářství

Na základě Business Targets autora Simona Greenalla, vydaných nakladatelstvím Macmillan Heinemann English Language Teaching (Oxford).

Funkce a vzorce v Excelu

AUTORIZOVANÝ SOFTWARE VALVE-CONTROL-V-1

Dálkové ovládání HP Mobile Remote Control (pouze u vybraných modelů) Uživatelská příručka

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

l: I. l Tento projekt je spolufinancován Evropskou unií a státním rozpočtem České republiky.

DUM 01 téma: Úvod do Corelu

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

ŢELVÍ GRAFIKA VE VISUAL BASIC

Školní kolo soutěže Mladý programátor 2013, kategorie A, B. Úloha č. 1 - Baltík v zoo

Obrázek 6.14: Prohlížec nápovedy

Programovací stanice itnc 530

MLE2 a MLE8. Datalogery událostí

Základní ovládání aplikace

Ovládání mapového prohlížeče a aplikace. Přehled honiteb České republiky


Výukový materiál zpracovaný v rámci projektu. Základní škola Sokolov, Běžecká 2055 pracoviště Boženy Němcové 1784

Uživatelská příručka ClinkMe

VYPISUJE Výzvu zájemcům k podávání nabídek

Provozní dokumentace. Seznam orgánů veřejné moci. Příručka pro administrátora krizového řízení

VYTVÁŘENÍ OBSAHU KURZŮ

Zadání úloh mezinárodního kola soutěže Baltík 2006

JEDNOPOTRUBNÍ DÁVKOVAČ CM, CL

Školní kolo soutěže Mladý programátor 2015, kategorie A, B

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

FTC08 instalační manuál k dotykovému panelu systému Foxys

PARAMETRICKÉ PROGRAMOVÁNÍ SOUČÁSTI V ŘÍDICÍM SYSTÉMU HEIDENHAIN SVOČ FST 2015

SPRÁVNÉ ŘEŠENÍ ÚLOH DEMOTESTU V KATEGORII BENJAMIN. soutěže BOBŘÍK INFORMATIKY U každé otázky najdete znění správné odpovědi a zdůvodnění.

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

Kapitola 1: Úvodní strana PARTICLER

Barvy na počítači a grafické formáty

1. vydání příručky 2009, Národní památkový ústav, Ing. Martin Lazák

ATLETIKA Pohybové hry zaměřené na rozvoj rychlosti Kočka chytá myšku

TECHNICKÁ UNIVERZITA V LIBERCI FAKULTA UMĚNÍ A ARCHITEKTURY. Studijní program: B8206 Výtvarná umění. Obor: Vizuální komunikace BAKALÁŘSKÁ PRÁCE

Uloha1 šumavský prales

Stav: červen TRACK-Guide

Záznamník teploty ZT, ZT1ext Návod k použití

Metodika pro učitele

Dálkové ovládání HP Mobile Remote Control (pouze u vybraných modelů) Uživatelská příručka

Výukovápříručka. Ocelové patky

SMART Ink. Operační systém Mac OS X. Uživatelská příručka

DUM č. 11 v sadě. 25. Inf-1 Animace (bitmapové i vektorové)

Úloha 1 prokletá pyramida

Hodnocení soutěžních úloh

Česky. Funkce kamery VideoCAM GF112. Instalace kamery VideoCAM GF Objektiv 3 Nastavitelná základna

Stručná příručka k funkci Visual Voic 8.5 a novější

Vizuální programovací jazyk

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

Novinky verze 5.4x programu PRO Ecru by Ecru Software

Okno Editoru nabízí v panelu nástrojů

Mikroskopická obrazová analýza

Kurz Word 2000 Odrážky a číslování Kurz Word 2000 Odrážky a číslování Oddíly Záhlaví a zápatí

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

Přidávání animací do programů

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

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

Svislé dopravní značení Část 1: Proměnné dopravní značky

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

Obsah. Kapitola 1 Stažení a instalace Kapitola 2 Orientace v programu a základní nastavení Úvod... 9

Základní úlohy: vytvoření dokumentu...13

Třída PTIME a třída NPTIME. NP-úplnost.

WiFiS Uživatelská příručka Obsah

Transkript:

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 "objektově". My samozřejmě víme, že tento styl programování je daleko náročnější a pro začátečníka téměř nezvládnutelný. Naproti tomu Imagine nabízí objektový pohled: téměř vše, s čím studenti v Logu pracují - želvy, grafická plocha, tlačítka,... jsou ve skutečnosti objekty, t.j. instance nějakých předdefinovaných tříd se stavovými proměnnými a metodami. Naštěstí je toto celé navrženo tak, aby se objekty daly před žáky či studenty úplně zamlčet a ti se učili podle klasických postupů výuky programování. Objektový pohled mohou studenti postupně objevovat až v pokročilejších etapách učení se a mohou si takto postupně zvykat na jiný styl programátorského myšlení. Protože jazyk Logo je ve své podstatě interpretační jazyk, filozofie objektů má mírné odchylky např. od objektů v Delphi nebo C++: třídy. Instance můžeme dynamicky během běhu programu měnit, doplňovat, můžeme vytvářet instance nejen od tříd, ale také od jiných instancí, můžeme vytvářet klony (klonovat objekty). Díky koncepci chování (behavior) můžeme objektům přiřazovat i chování jiných objektů - říkáme, že kromě statické hierarchie objektů je možno vytvářet i dynamickou hierarchii - Imagine používá vícenásobné dynamické dědění. Imagine a události Koncepce objektů si vynutila jednu zásadnější změnu oproti ComLogu: podobně jako jiná programovací prostředí pod Windows (VB, Delphi, C++Builder apod.) programování je řízeno událostmi. Toto znamená, že nepíšeme nějaký rozsáhlý souvislý program, který se soustřeďuje na řešení všech možných situací, ale píšeme mnoho malých, někdy pouze jednopříkazových podprogramů, které se automaticky vyvolávají při vzniku různých událostí. Např. klepnutí myší, táhnutí, kolize s jiným 1

objektem apod. Pro různé objekty a jejich události definujeme různé podprogramy. Zřejmě se způsob práce s myší a klávesnicí bude oproti ComLogu dost odlišovat. Imagine a paralelismus V jistém smyslu paralelismus vyplývá z toho, že programy jsou řízeny událostmi - tyto události vyvolávají různé podprogramy, které ale běží paralelně. Kromě toho můžeme spouštět další příkazy pomocí různých paralelních konstrukcí, např. pořád, spusť, každých a podobně. Imagine podporuje paralelní nezávislé procesy. Imagine a želvy "Hlavním hrdinou" prostředí Logo je pravděpodobně objekt želva. Kromě toho, že kreslí do grafické plochy nebo se jen po ní pohybuje, může měnit svůj tvar. Želva se může "převlékat" do různých obrázků a jsou tyto obrázky animované (např. animovaný GIF), tak se automaticky v ploše animují. Tyto obrázkové tvary nemusí být želvámm přiřazeny jen ze souborů, ale mohou být nakresleny logovským programem, např. příkazem tvar! [barvapera! červená kruh 50] želva změní tvar na červený kruh. Pro přípravu obrázků, zvláště pro tvary želv, slouží pro Imagine velmi důvtipný bitmapový editor LogoMotion. Ten pomáha vytvářet i efektní animace. Želva kreslí do grafické plochy. Grafická plocha nemusí být na rozdíl od ComLoga jediná, ale programátor může svůj projekt rozdělit na stránky a každá stránka (to je vlastně grafická plocha) může v sobě obsahovat několik menších grafických listů (papír). I v těchto menších listech, které se mohou vzájemně překrývat, se pohybují a kreslí želvy. Imagine nabízí více strategií, podle kterých se chovají objekty - želvy, pokud narazí na okraj své plochy. 2

Videostop Vypracované příklady + vysvětlení příkazů příkaz videostop1 každá [faze! lib] cekej 1000 videostop1 příkaz videostop zrušželvu vše smaž nová "Želva [tvar videostop.lgf poz[-50 0]] nova "zelva [tvar videostop.lgf poz[0 0]] nova "zelva [tvar videostop.lgf poz[50 0]] dosaď "bod 0 odted vsechny videostop1 Vysvětlení příkazů každá [faze! lib] - každá želva bude náhodně měnit fázi (od 1-6) cekej 1000 - každá želva bude čekat před každou změnou 1000ms videostop1 - příkaz spustí znova videostop1 (rekurzivně) zrušželvu vše - zruší všechny existující želvy smaž - smaže obrazovku nová "Želva [tvar videostop.lgf poz[-50 0]] - vytvoří novou želvu s tvarem videostop na pozici [-50 0] dosaď "bod 0 - dosadí do proměnné bod hodnotu 0 odted vsechny videostop1 - odteď budou všechny želvy provádět příkaz videostop 1 3

Změna fází příkaz zmena_fazi smaž zrušželvu vše nová "želva [poz[-350 0] směr 90] nová "želva [poz[-350-100] směr 90] nová "želva [poz[-350 100] směr 90] nová "Želva [tvar videostop.lgf poz[-370 230] fáze lib] nova "želva [tvar videostop.lgf poz[-320 230] fáze lib] nova "želva [tvar videostop.lgf poz[-270 230] fáze lib] každých 30 [odteď [ž1] bp!(nahodně 15) tp!"10 do ž4'fáze cekej 100] každých 30 [odteď [ž2] bp!(nahodně 15) tp!"10 do ž5'fáze cekej 100] každých 30 [odteď [ž3] bp!(nahodně 15) tp!"10 do ž6'fáze cekej 100] Vysvětlení příkazů nová "želva [poz [-350 0] směr 90] - vytvoří novou želvu na pozici se směrem 90 nová "Želva [tvar videostop.lgf poz[-370 230] fáze lib] (vytvoří novou želvu ve tvaru videostop na pozici a nastaví libovolnou fázi) každých 30 [odteď [ž1] bp!(nahodně 15) tp!"10 do ž4'fáze cekej 100] ( každých 30ms želva1 změní náhodně barvu pera, nastaví tloušťku pera na hodnotu 10, posune se dopředu o číslo které bude zrovna na kostce hozeno) Obdobně to je i u dalších želv 4

Animovaná předpověď počasí příkaz pocasi novazelva2 pohyb příkaz poczac zrusobjekt vsechny smaz domů pocasi příkaz novazelva2 novazelva odteď "ž1 tvar! " mapy\česko.lgf zvětšení! 8 odteď "ž2 tvar! " počasí.lgf pn poz! [230-10] záběr! 1 odteď "ž3 tvar! " počasí.lgf pn poz! [-120 25] záběr! 4 odteď "ž4 tvar! " počasí.lgf pn poz! [20 0] záběr! 2 příkaz novazelva smaž zrusobjekt vsechny opakuj 4 [nová "Želva []] příkaz pohyb odteď [ž2 ž3 ž4] opakuj 1000 [každá [zvetsi1 zvetsi2 zm_pohybu]] příkaz zvetsi1 pro "ž2 [poz! [230-10]] zvětšení! zvětšení * 1.5 čekej 100 pro "ž2 [poz! [230-10]] zvětšení! zvětšení / 1.5 čekej 100 příkaz zvetsi2 pro "ž3 [poz! [-125 35]] zvětšení! zvětšení * 1.2 čekej 150 pro "ž3 [poz! [-120 25]] zvětšení! zvětšení / 1.2 čekej 150 příkaz zm_pohybu čekej 200 pro "ž4 [poz! [40 0]] čekej 100 pro "ž4 [poz! [60 0]] čekej 100 pro "ž4 [poz! [80 0]] čekej 100 pro "ž4 [poz! [100 0]] čekej 100 pro "ž4 [poz! [120 0]] čekej 100 5

pro "ž4 [poz! [120 0]] čekej 100 pro "ž4 [poz! [100 0]] čekej 100 pro "ž4 [poz! [80 0]] čekej 100 pro "ž4 [poz! [60 0]] čekej 100 pro "ž4 [poz! [40 0]] čekej 100 pro "ž4 [poz! [20 0]] čekej 100 Vysvětlení příkazů Několik příkazů už bylo vysvětleno v předchozích příkladech, proto zmíníme jen ty, které jsou nové odteď [ž2 ž3 ž4] - od této chvíle platí pro želvy 2,3,4 opakuj 100 [každá [zvetsi1 zvetsi2 zvetsi3]] - bude 100x opakovat zvětšení obrázků pro "ž2 [poz! [230-10]] zvětšení! zvětšení * 1.5 čekej 100 (pro želvu 2 se změní pozice na udané souřadnice, zároveň se zvětší obrázek želvy 1,5x a pak počká 100 ms) Obdobně to bude také u želvy "ž3 s tím rozdílem, že se obrázek bude zvětšovat 1,2x a počká 150 ms U želvy "ž4 se želva nebude zvětšovat, ale bude se pohybovat stále doprava a doleva 6

I-tá želva honí (i + 1) vou želvu příkaz udelej.zelvy :n zrusobjekt vsechny smaz opakuj :n [nová "Želva [.jmeno (poc-1) poz lib]] odted vsechny kazda [bp! nahodne 15] tp! 2 příkaz honicka :n kazda [dosaďzde "a zbytek kdo + 1 :n dosadzde "b kdo pro :a [dosadzde "PozA poz] pro :b [dosadzde "PozB poz] směr! směremk :a Poz! :PozA poz! :pozb do 0.1 * abs poz - pro :a [poz]] cekej 300 honicka :n příkaz start :n udelej.zelvy :n honicka :n Vysvětlení příkazů opakuj :n [nová "Želva [.jmeno (0) poz lib]] vytvoří :N želv na libovolné pozici, pojmenovávat bude od čísla 0 odted všechny od této chvíle začnou všechny aktivní želvy dělat určitý příkaz 7

kazda [bp! nahodne 15] každá želva změní barvu pera náhodně do hodnoty 15 tp!2 nastaví tloušťku pera na hodnotu 2 8