Низање корака¶
У претходној лекцији си упознао наредбe кретања, а сада ћеш се бавити дејством неких наредби из група Изглед и Догађаји. Показаћемо како повезивањем наредби у скрипте задајемо понашање ликова. Пројекти у овој лекцији састоје се од скрипти у којима се кораци нижу један за другим. За такве скрипте кажемо да имају просту линијску структуру.
Речник и визуелна граматика језика Скреч
Ликови могу да извршавају више од 100 наредби. Блокови који одговарају наредбама чине речник језика Скреч, а правила по којима се повезују у целину одговарају граматици језика. Блокови се чувају у палети блокова и распоређени су у 10 група различитих боја:
|
|
|
|
|
Блокови су издељени у групе да би се програмери лакше сналазили приликом креирања скрипти. Ма колико сложено било понашање ликова, скрипта која га описује састоји се од скупа елементарних операција ових 10 типова. Ако знаш коју врсту акције треба да уради лик, онда лако можеш да изабереш одговарајућу групу и из ње издвојиш потребан блок.
Постоје самостални и функцијски блокови.
Самостални блокови одговарају наредбама језика, односно корацима алгоритма. Неки од њих имају поља у која се може поставити вредност.
Функцијски блокови враћају вредности. Они не могу да стоје сами у скрипти, већ се умећу у поља блокова који примају вредности и прецизирају њихове акције.
Блокови су обликовани тако да могу да се повежу само они који могу да формирају исправне конструкције језика, односно Скреч има визуелну граматику која не дозвољава да се праве синтаксне грешке.
Самостални блокови
Блокове који одговарају корацима обраде зваћемо надаље стек блокови. Сваки стек блок одговара једној акцији, односно одговара на питање ШТА треба урадити. На пример, блок наређује лику да се помери задати број корака у смеру у коме је тренутно постављен. Облик овог блока подсећа на Lego коцку, а цела скрипта на коцке склопљене у стек.
Задати број корака уписује се у бели кружић - улазно поље блока.
У блоку једно улазно поље има облик заобљеног правоугаоника, а друго круга. Правоугаони улази прихватају и текстуалне и бројне, а кружни само бројне вредности.
Блок има чак три улаза.
Неки блокови имају шестоугаона улазна поља, на пример управљачки блок . Они прихватају логичке вредности (тачно или нетачно).
У групи Управљање постоје блокови С-облика, које називамо С-блокови. Слот унутар С-блока је специјална врста улаза који прима скрипту као улаз. Блок има 2 улаза: један за број и један за скрипту.
Постоји и један управљачки блок Е-облика који има три улаза, један за услов (логичку вредност) и два за скрипте. Од та два улаза за скрипте, први задаје шта треба урадити ако је услов испуњен, а други задаје шта треба урадити ако услов није испуњен.
Почетни блокови одговарају почетном алгоритамском кораку. Они одговарају на питање КАДА треба покренути скрипту. Овај тип блокова има заобљен врх и поставља се на врх стека, а повезује се са наредним блоковима преко испупчења на дну. Почетни блокови дефинишу који догађај треба да наступи да би се извршио стек блокова испод њих. Тај догађај може да буде, на пример, клик на дугме зелена заставица или притисак на неку дирку тастатуре.
Завршни блокови одговарају завршном алгоритамском кораку. Они имају удубљење на врху, али немају испупчење на дну. Како у Скречу једном објекту може бити придружено више скрипти које се могу паралелно извршавати, завршни блок може прекинути извршавање свих покренутих скрипти.
Функцијски блокови
Функцијски блокови чувају податке за друге блокове. Често се називају репортери зато што обавештавају колика је текућа вредност неке променљиве. Блокове репортере који чувају текуће координате и усмерење лика упознали смо у претходном поглављу. Неки блокови репортери и сами имају улазна поља кружног или правоугаоног облика, на пример и .
Логички блокови чувају логичке вредности (тачно или нетачно). Они имају облик шестоугла и могу да се поставе само у улазна поља одговарајућег облика (шестоугаоног или правоуглог). Такав је на пример, блок . У Скречу лако могу да се конструишу сложени логички услови тако што се логички блокови умећу у улазна поља других логичких блокова.
Функције блокова из групе Изглед и Догађаји
Блокови из групе кретање које смо упознали у претходној лекцији могли су да се примене само на ликове. За разлику од њих, блокове групе Изглед можеш да употребиш и за контролу изгледа ликова и за контролу позадина, односно изгледа позорнице. Али то не важи за све блокове ове групе. Межу њима има оних који се односе само на ликове и оних који се односе само на позорницу. Блокови из групе Догађаји покрећу извршавање скрипти. Преглед свих блокова ових група дати су у Додацима који се налазе у 11. лекцији овог практикума.
У претходним лекцијама већ смо упознали дејство неких блокова Изгледа и Догађаја, на пример, изговори
и клик на дирку
. У овој лекцији ћемо детаљније упознати блокове који омогућавају једноставну анимацију применама уграђених графичких ефеката и проширити речник Скреча коришћењем нових наредби.
Проучи следеће примере пројеката¶
Друштво можемо да забавимо причањем вицева, али и математичким триковима. Следећи пројекат илуструје један од њих. Има само једну скрипту простe линијскe структурe.
Пример 1 - Пројекат „Математичар”¶
Корак 1: Замисли један троцифрени број чије су све цифре једнаке, нпр. 111, 222.
Корак 2: Сабери све цифре тог броја.
Корак 3: Замишљени троцифрени број подели добијеним збиром.
Корак 4: Резултат је број 37.
Сценарио овог пројекта је сасвим једноставан. Лик наредбама задаје кориснику прва три захтева, а наредбом саопштава резултат.
Користићемо лик девојчице Avery из библиотеке ликова који има два костима (Кликни на картицу Костими да их видиш) и између свака два захтева задати промену костима наредбом .
Да би корисник имао времена да израчуна шта се од њега тражи у прве две наредбе ставићемо да се текст који лик изговара види 3 секунде, а у трећој 5 секунди. Наредба последњи текст оставља на екрану све док не прекинемо извршавање програма кликом на знак стоп - црвени осмоугао изнад горњег десног угла позорнице.
Скрипта овог пројекта приказана је на следећој слици.
Пример 2 - Пројекат „Разговор”¶
Овај пројекат представља надоградњу пројекта „Математичар”. У њему девојчица Avery и дечак Devin исти математички трик представљају кроз разговор у коме Devin „замишља” број 222 и врши тражена рачунања, а на крају пита: „Како си погодила?”. Понашање оба лика задају скрипте просте линијске структуре. Да би изгледало као да заиста разговарају, у скрипту девојчице треба додати наредбе чекања у време док дечак размишља, а у скрипту дечака чекања у време док девојчица поставља питања.
Следећа слика приказује сценарио пројекта.
Израда пројекта
Отвори пројекат Математичар.
Упамти овај пројекат под новим именом Разговор.
Савет. Када правиш нову верзију неког пројекта, на самом почетку је упамти под промењеним именом. Тако нећеш изгубити стару верзију.
Из библиотеке ликова изабери лик дечака Devin.
Постави дечака уз десни руб позорнице и у информацијама о лику промени његово усмерење на -90, тако да гледа према девојчици.
Ликовима придружи следеће скрипте.
у пројекту Математичар девојчица изговара 4 реченице, а 3 пута мења костим (има 2 костима). То значи да се у два узастопна извршавања пројекта девојчица неће на почетку појавити у истом костиму. Да би при сваком извршавању пројекта девојчица била приказана на исти начин (да се појави у првом костиму), на почетак скрипте смо додали одговарајућу наредбу.
Савет. На почетак пројекта стави наредбе које иницијализују ликове (задају где и у ком костиму треба да се појаве), нарочито ако се при извршавању пројекта ликови крећу.
Усклађивање понашања ликова постигли смо уметањем наредби чекања у скрипте оба лика.
Упамти овако измењен програм.
Ако те интересује одговор на дечаково питање „Како си погодила?”, кликни на дугме Прикажи упутство.
Упутство:
Девојчица је тражила да се замисли троцифрен број са истим цифрама. Означимо цифру која се понавља са х. Тада је замишљен број једнак 111*х, а збир цифара је 3*х. Резултат операције дељења броја збиром његових цифара једнак је 111/3=37, независно од броја који је замишљен.
Пример 3 - Пројекат „Рачунање”¶
И наредни пројекат је надоградња претходног. У њему дечак уместо фиксног броја 222 замишља произвољан троцифрен број са све три једнаке цифре и над њим врши тражене операције. Ово можемо да испрограмирамо захваљујући могућности да се генерише случајан број из задатог интервала.
Генерисање случајних бројева
У групи блокова Оператори налази се наредба . Генерисати случајан број значи на случајан начин одабрати број из неког интервала. Најмањи и највећи број тог интервала задаје се у пољима овог репортера. Значи, ако су то бројеви 1 и 10 биће изабран ма који број из интервала [1,10], а да су, на пример, то -100 и 100, био би генерисан неки број из интервала [-100,100].
У нашем примеру, у прво поље треба уписати број 1, а у друго број 9.
У овом пројекту су коришћене променљиве са којима ћемо се упознати тек у осмој лекцији. Зато је означен као тежак. Можеш га можеш прескочити, па се на њега врати касније.
Ако пак волиш изазове, да кажемо нешто мало унапред. Под променљивом подразумевамо област меморије рачунара у којој програм чува текуће вредности података са којима ради. Име променљиве је име те области, а вредност променљиве је оно што се чува у тој области.
Израда пројекта
Отвори пројекат Разговор и упамти га под новим именом Рачунање.
Направи променљиву x која одговара цифрама троцифреног броја и као почетну вредност јој додели случајан број из интервала [1,9].
Направи променљиву broj и као почетну вредност јој додели вредност израза 111*x.
У првом блоку замисли
дечакове скрипте постави репортер променљиве broj уместо броја 222.
Направи променљиву zbir и као почетну вредност јој додели вредност израза x+x+x. Како блок за сабирање има само 2 улазна поља, Уложићемо један блок за сабирање у улазно поље другог блока за сабирање. (Разуме се, исто смо могли постићи и једним блоком за множење јер је х+х+х=3х)
У другом блоку замисли
дечакове скрипте постави репортер променљиве zbir уместо текста 2+2+2.
Направи променљиву rezultat и као почетну вредност јој додели вредност израза broj/zbir.
У трећем блоку замисли
дечакове скрипте постави репортер променљиве rezultat уместо броја 37.
Изврши пројекат више пута како би проверио да ли генерише различите троцифрене бројеве.
Упамти тако измењен пројекат.
Пример 4 - Пројекат „Ефекти на лиꔶ
Следећи пројекат илуструје како наредба из групе Изглед може да утиче на приказ ликова. Такође показује и како догађај клик на лик може да покрене извршавање скрипте.
Сценарио пројекта
На позорници се налази 7 примерака истог лика. Кликом на неки од њих лик се мења коришћењем једног од седам графичких ефеката. То омогућава наредба . Лик такође изговара о којем се ефекту ради.
Израда пројекта
Започни нови пројекат.
Обриши лик мачка и из библиотеке ликова изабери Singer1.
Лику придружи следећу скрипту.
Сада десним кликом на лик у листи ликова отвори приручни мени и изабери опцију умножи. У листи ликова појавиће се лик Singer2 коме ће бити придружена иста скрипта као лику од кога је настао.
Промени ефекат у наредби на рибље око, а у наредби преправи текст у рибље око.
Понови ову операцију још 5 пута и сваки пут измени ефекат и поруку коју лик саопштава када се кликне на њега.
Равномерно распореди ликове на позорници и тестирај да ли пројекат ради то што је замишљено кликом на сваки од ликова.
При сваком новом клику на исти лик одговарајући ефекат ће се појачавати.
Зато треба додати скрипту позорници која ће по клику на зелену заставицу поништавати промене наредбом .
На следећој слици приказан је изглед ликова после једне или више примена одговарајућег ефекта.
Пример 5 - Пројекат „Ефекти на позадину”¶
За разлику од блокова из групе Кретање, блокови из групе Изглед могу се применити и на позорницу. Све скрипте у овом пројекту придружене су позорници. Сврха пројекта је да илуструје како наредба може да утиче на изглед позадине и да ти да идеје како би сам могао да је користиш у својим пројектима. Да би се све вратило у нормалу, догађају клик на зелену заставицу придружено је брисање свих графичких ефеката.
Сценарио пројекта
Мачак се налази усред пустиње. Корисник може да промени изглед позадине притискањем неке од дирки са бројевима од 1 до 3. Сваки од ових догађаја одговара неком од графичких ефеката на позадини. На следећој слици приказано је како изгледа позорница на почетку (0) и после неколико притисака на дирку: 1 - ефекат боја, 2 - ефекат рибље око, 3 - ефекат вртлог и 4 - ефекат позрнати.
Одговори на следећа питања¶
Питање 1¶
Питање 2¶
Питање 3¶
Питање 4¶
- да
- Погрешно.
- не
- Тачно.
Q-52: Да ли једна скрипта може имати више почетних блокова?
Питање 5¶
- блокови репортери
- стек блокови
- Тачно.
- почетни блокови
- завршни блокови
Q-53: Којој врсти припадају блокови који имају удубљење на горњој и испупчење на доњој страни.
Питање 6¶
- блокови репортери
- Тачно.
- стек блокови
- почетни блокови
- С-блокови
Q-54: Којој врсти припадају блокови који чувају вредности и не могу да стоје самостално у скрипти, већ се умећу у улазна поља других блокова.
Питање 7¶
-
Q-55: Превлачењем упари облик блокова са њиховом улогом у Скречу.
Покушај поново
- почетни
- задају КАДА треба покренути скрипту
- репортери
- чувају вредности
- С-блокови
- примају скрипту као улаз
- стек блокови
- дефинишу ШТА треба урадити
Питање 8¶
- да
- не
- Тачно.
Q-56: Да ли изрази и имају исту вредност?
Питање 9¶
- ниједан
- Нетачно. Други има вредност 10/(-1)=-10
- први
- Нетачно. Први има вредност 5-3=2
- други
- Тачно.
- оба
- Нетачно. Први има вредност 2.
Q-57: Који од израза и има негативну вредност?
Питање 10¶
Колика је вредност израза
Питање 11¶
- 45
- Нетачно. 5+(2*(7-4)) = 5+2*3 = 5+6 = 11
- 11
- Тачно.
- 15
- Нетачно. 5+(2*(7-4)) = 5+2*3 = 5+6 = 11
Q-58: Колика је вредност израза ?
Питање 12¶
- 3
- Нетачно. ((2+1)*(9-5))/2 = 3*4/2 = 6
- 11
- Нетачно. ((2+1)*(9-5))/2 = 3*4/2 = 6
- 6
- Тачно.
Q-59: Колика је вредност израза ?
Покушај¶
Вежба 1 - Увећање¶
Креирај пројекат који омогућава да се лик на позорници увећава и смањује. Увећавање треба да покреће клик на дирку стрелица горе, а смањивање клик на дирку стрелица доле. Обезбеди да се кликом на зелену заставицу лик врати на своју природну величину.
Упутство:
Лику треба придружити следеће скрипте:
Вежба 2 - Окретање¶
Уз лик мачка учитај још два лика из библиотеке ликова: девојчицу Avery и дечака Devin. Постави девојчицу лево, а дечака десно од мачка. Креирај пројекат који омогућава да се мачак на позорници окреће налево ка девојчици и надесно ка дечаку. Окретање налево треба да покреће клик на дирку стрелица лево, а окретање надесно клик на дирку стрелица десно. Обезбеди да се мачак приликом окретања налево не окреће наглавачке.
Упутство:
Лику мачак треба придружити следеће скрипте:
Вежба 3 - Промена боје позадине¶
Креирај пројекат који омогућава да, после сваког клика на позорницу, позадина мења боју. Користи ефекат боја и обезбеди да се кликом на зелену заставицу уклоне графички ефекти.
Упутство:
Позорници треба придружити следеће скрипте:
Вежба 4 - Кодирање аритметичког израза са заградама (1)¶
Формирај аритметички израз у Скречу који одговара следећем математичком изразу: (5*(5+4))-(2*(2+3)). Постављањем одговарајућег репортера у улазно поље наредбе изговори
провери да ли добијаш његову тачну вредност: (5*(5+4))-(2*(2+3)) = 5*9-2*5 = 45-10 = 35
Одговор:
Вежба 5 - Кодирање аритметичког израза са заградама (2)¶
Формирај аритметички израз у Скречу који одговара следећем математичком изразу: (8/(4-2))*(8-(6/2)) Постављањем одговарајућег репортера у улазно поље наредбе изговори
провери да ли добијаш његову тачну вредност: (8/(4-2))*(8-(6/2)) = 8/2*(8-3) = 4*5 = 20.
Одговор:
Исправи грешке¶
Грешка 1¶
- Питање
Да ли је следећи разговор добро синхронизован?
Одговор:
Није добро постављено време. Инструкције чекај
и изговори
треба да имају исто време да би разговор био добро синхронизован.
Грешка 2¶
- Питање
Ученик воли да све ради по правилима и зато жели да сваком програму дода и наредбу за заустављање програма. Тако је и на крај скрипте за математичара поставио наредбу . Међутим, текст последње наредбе уопште се није видео. Како да ученик ово исправи, а да на крају ипак остане наредба која га зауставља?
Одговор:
Наредба изговори Резултат је 37
се тренутно извршава и одмах затим се извршава наредба заустави све
, па ми практично и не успевамо да видимо дејство наредбе изговори
. Зато ову наредбу треба заменити наредбом изговори__током__секунде
и поставити да се приказ види, на пример, током 5 секунди.
Грешка 3¶
- Питање
Ученик жели да његов лик ротира када притисне тастер размак. Али лик се не покреће. У чему је грешка?
Одговор:
Лик се окреће, али сувише брзо, брзином којом рачунар извршава наредбе, па људско око то не може да испрати. Да би се окретање лика видело треба између наредби окрет удесно
ставити наредбе чекања, рецимо за десети део секунде. Тако ћемо успети да испратимо окретање лика.
Шта смо научили¶
У овој лекцији упознали смо се са групама и облицима блокова из палете блокова којима се задају наредбе програмског језика Скреч. Визуелни речник Скреча садржи више од 100 блокова подељених у 10 група. Визуелна граматика Скречa реализована је кроз облик блокова: не дозвољава да се повежу блокови чије функције нису одговарајуће. Самостални блокови повезују се у скрипте које задају понашње објеката, а функцијски им постављају потребне вредности.
Примери пројеката: 3Studio
Појмови: догађаји, акције, аритметички оператори, случајни бројеви, линијска структура скрипте.
Наредбе: - , ; - , ;
- , , , , , ; : , , , , ;
- .
Напомена. Наредбе означене знаком биће обрађене у наредним лекцијама.
Уради неки од следећих пројеката¶
Пројекат 1 - „Геније”¶
Овај пројекат направи по узору на пример Математичар.
Започни нови пројекат који ћеш назвати Геније. Изабери главни лик из библиотеке ликова и позадину из библиотека позадина. Лик треба да поставља следеће задатке.
“Замисли било који троцифрени број.”
“Поређај његове цифре од већих ка мањим - то је први број.”
“Поређај његове цифре одмањих ка већим - то је други број.”
“Одузми други број од првог.”
“Запамти резултат, а затим обрни његове цифре.”
“Тај број додај резултату који си запамтио.”
“Добио си број 1089.”
Пројекат 2 - „Чококолач”¶
Започни нови пројекат који ћеш назвати Чоко колач. То треба да буде анимација у којој кувар објашњава рецепт (алгоритам) за прављење чоколадних колача.
За ову анимацију биће ти потребни следећи ликови: кувар, јаја, брашно, шећер, чоколада, чинија, миксер, шпорет, колачи. Пронађи одговарајуће слике на свом рачунару или на интернету и прилагоди их пројекту (очисти од позадине, увећај, умањи…).
Води рачуна о синхронизацији скрипти за сваки лик убацивањем команде чекај
потребне дужине.
Једини лик који све време треба да буде на позорници је кувар. Он чита рецепт (алгоритам) и одређује појављивање и нестајање осталих ликова.
Кувар је сам на позорници. Изговара: “Ево АЛГОРИТМА за прављење колача!” (2 секунде)
Кувар изговара следеће: “Узмите јаја, брашно, шећер и чоколаду.” У том тренутку на позорници се појављују јаја, брашно, шећер и чоколада. Сцена траје 2 секунде.
Кувар изговара следеће: “Све ставите у чинију и измешајте миксером.” У том тренутку са позорнице нестају јаја, брашно, шећер и чоколада, а појављују се чинија и миксер. Сцена траје 2 секунде.
Кувар изговара следеће: “Ставите чинију у врућу рерну.” У том тренутку са позорнице нестају чинија и миксер, а појављује се шпорет. Сцена траје 2 секунде.
Кувар изговара следеће: “Пеците колач пола сата.” На позорници се ништа не мења. Сцена траје 2 секунде.
Кувар изговара следеће: “Послужите колаче.” У том тренутку са позорнице нестаје шпорет, а појављују се колачи. Сцена траје 2 секунде.