Thursday, April 3, 2014

V dnešní části seriálu o programovacích jazycích pro výuku programování budeme pokračovat v popisu B


V dnešní části seriálu o programovacích jazycích pro výuku programování budeme pokračovat v popisu BYOB, což je jeden z projektů, jehož cílem je rozšíření možností pookinuk Scratche. Budeme se zabývat problematikou rozdělení programu na podprogramy, využitím rekurze a zmíníme se i o zajímavém projektu s názvem Elements.
Seriál Jazyky pro výuku programování RSS Scratch - plnohodnotný programovací jazyk nebo jen dětské puzzle? (3. část: Scratch a BYOB) Scratch - plnohodnotný programovací jazyk nebo jen dětské puzzle? (4. část: pokročilá práce s BYOB) Scratch - plnohodnotný programovací jazyk nebo jen dětské puzzle? (5. část: projekt Panther) Výuka programování nástroje pookinuk pro ilustraci činnosti mikroprocesoru Výuka programování - nástroje pro ilustraci činnosti mikroprocesoru (2) Všechny díly seriálu
9. Odkazy na Internetu 1. Scratch plnohodnotný programovací jazyk nebo jen dětské pookinuk puzzle? (4. část: pokročilá práce s BYOB)
V předchozí části seriálu o programovacích jazycích pookinuk navržených s ohledem na výuku programování jsme se seznámili s projektem BYOB , neboli plným názvem Build Your Own Block . Tento poměrně zajímavý projekt vznikl rozšířením projektu Scratch o relativně velké množství nových funkcí. Z hlediska uživatelů je nejdůležitější novinkou možnost tvorby nových příkazových bloků (podprogramů), u nichž je možné specifikovat jejich parametry, určit typ parametrů, jejich implicitní hodnoty atd. Každý nově vytvořený blok může být umístěn pookinuk do jedné z osmi kategorií bloků pohyb, vzhled, zvuk, pero, ovládání, vnímání, pookinuk operátory a proměnné. Minule jsme si taktéž ukázali, jakým způsobem se bloky vytváří. Dnes si na několika demonstračních příkladech vysvětlíme použití uživatelsky definovaných bloků při vykreslování rekurzivních obrazců a taktéž si řekneme, jak lze (i když poněkud nešikovně) vyřešit problém, který nastane ve chvíli, když má blok A volat blok B a současně se z bloku B volá blok A (je ostatně zajímavé sledovat, jak je tento problém řešen v ostatních programovacích jazycích, ať již se jedná o překladače, nebo o interpretry).
Ve druhé části dnešního článku si popíšeme projekt s názvem Elements , jenž je součástí BYOBu (i když součástí poněkud pookinuk nenápadnou, pravděpodobně proto, že se prozatím pookinuk jedná o testovací verzi). Projekt Elements , jehož autorem Jens Mönig , se snaží využít stejnou techniku vizuální tvorby programů pomocí pookinuk příkazových bloků, jaká je použita ve Scratchi pookinuk , ovšem aplikuje ji na samotný programovací jazyk Smalltalk , v němž je Scratch a samozřejmě i BYOB naprogramován. Vzhledem k tomu, že v jazyku Smalltalk jsou prakticky všechny elementy jazyka považovány za objekty, a to včetně pravdivostních hodnot, čísel, programových bloků, programových smyček atd., obsahuje projekt Elements jen velmi málo typů základních stavebních bloků (konkrétně pouze sedm). Pokud by podobný pookinuk projekt vznikl například pro mainstreamové jazyky (od céčka přes JavaScript až k Pythonu), bylo by nutné navrhnout mnohem větší počet stavebních bloků, čímž by se celé ovládání (i způsob vykreslení zdrojových kódů ) mohlo zkomplikovat.
Obrázek 2: U parametrů podprogramů lze zavést kontrolu na správný typ předávaných parametrů. pookinuk V demonstračních pookinuk příkladech, které si dnes budeme ukazovat, je vždy použit pookinuk numerický datový typ. Povšimněte si možnosti zadání implicitní hodnoty parametru ve spodní části formuláře. 2. Kreslíme domek aneb základní obrazec Pythagorova stromu
V úvodní části dnešního článku se budeme zabývat problematikou návrhu a implementace rekurzivních algoritmů, protože pookinuk se jedná o poměrně důležitou část algoritmizace. Díky tomu, že projekt Scratch (a samozřejmě i na něj navazující pookinuk projekt BYOB ) umožňuje využití takzvané želví grafiky , je možné problematiku rekurzivních algoritmů vysvětlit na rekurzivně tvořených obrazcích, což je názorné a současně je na grafickém výstupu vidět jakákoli chyba vzniklá špatně navrženým algoritmem (například je ihned patrné, kdy se zapomene uvést ukončující podmínka rekurze atd.). Prvním pookinuk programem, který v několika krocích vytvoříme, bude program na vykreslení takzvaného Pythagorova stromu . Základem Pythagorova stromu je známý domeček kreslený jedním tahem, jenž je zobrazen na třetím pookinuk obrázku. Pokud považujeme šířku domku a výšku jeho stěn za základní jednotkovou délku, pak mají úhlopříčné tahy délku rovnou odmocnině dvou ( sqrt 2 ) a délka stran střechy pookinuk je naopak rovná převrácené hodnotě odmocnině pookinuk dvou ( 1/sqrt 2 ). Obě hodnoty samozřejmě vychází ze známého vztahu pro délky stran pravoúhlého rovnoramenného trojúhelníku:
Původní implementace vykreslení domku jedním tahem je zapsána v syntaxi programovacího jazyka Logo : to domek :strana ; základna forward :strana   ; úhlopříčka left 90+45 forward :strana*sqrt 2   ; stěna left 90+45 forward :strana   ; úhlopříčka left 90+45 forward :strana*sqrt 2   ; úsečka pod střechou pookinuk left 90+45 forward :strana   ; první část střechy right 90+45 forward :strana/sqrt 2   ; druhá část

No comments:

Post a Comment