Понављање

У лекцији Низање корака, слагали смо блокове наредби и направили први програм у Scratch-у.

Колекција (низ) блокова који су међусобно повезани назива се скрипта. Скрипта може да садржи два и више блокова.

Блокови и њихов распоред у скрипти веома су важни, зато што одређују:

  • понашање ликова и њихов међусобни однос
  • однос са позадином позорнице.

    Анализирај две скрипте приказане на слици и означи тачну тврдњу.

    _images/L6_Poredjenje.png
  • (A) Након покретања, ова два програма даће различите резултате.
  • Предлажемо ти да направиш овакве скрипте и видиш резултат њиховог извршавања.
  • (B) Након покретања, програми дају исти резултат, али је краћа скрипта елегантније решење.
  • У праву си! Извршавањем краће скрипте добија се потпуно исти резултат као извршавањем дуже. Предлажемо ти да направиш ове скрипте и увериш се у резултат њиховог извршавања.

Посматрајући дужу скрипту, није тешко закључити да низање идентичних група блокова чини програм дужим, тежим за разумевање и надограђивање. Ако би требало променити угао за који лик скреће у десну страну, промена би морала да буде урађена на 4 места.

Блок L6_BlokPonovi из категорије Управљање очигледно помаже да се овакави проблеми превазиђу.

Програмери (људи који пишу програме) сматрају да је корисно коментарисати скрипте и објаснити шта одређени блокови раде. Коментарисањем олакшаваш другим програмерима да разумеју програме које ствараш, као и да их надограђују.

_images/L6_Komentar.png

Коментар додајеш десним кликом на скрипту и одабиром опције “додајте коментар”.

У Scratch-у, на располагању имаш три врсте блокова за понављање. У њих се умећу блокови чије извршавање треба да се понови одређени број пута.

_images/L6_PonavljanjeBlokovi.png

Блок који понавља наредбе тачно одређен број пута употребили смо у програму за исцртавање квадрата. Дакле, треба да га користиш када унапред знаш тачан број понављања (каже се и итерација).

_images/L6_PonBroj.png

Други блок за понављање извршава се бесконачан број пута. То је један од најчешће коришћених блокова у Scratch-у. Његово извршавање зауставља се кликом на дугме за престанак рада програма (црвено дугме поред зелене заставице), коришћењем блока L6_ZaustaviSve, из категорије Управљање или постављањем блока L6_ZaustaviOvajProgram из категорије Управљање.

_images/L6_PonBeskonacno.png

    Пажљиво погледај изглед блокова за понављање. Уочаваш да блок за бесконачно понављање нема могућност повезивања са другим блоковима, тј. да се на њега не може додати ниједан блок. Зашто?
  • (A) У блок се могу додати нови блокови, па не постоји разлог да се скрипта наставља.
  • Могућност додавања нових блокова у блок "понављај" није разлог због кога овај блок не дозвољава наставак низања скрипти.
  • (B) У питању је грешка у програму Scratch. Блок за бесконачно понављање морао би да обезбеди наставак ређања скрипти.
  • Колико је вероватно да је један од најкоришћенијих блокова у Scratch-у погрешно конципиран? Размисли још једном.
  • (C) Даље додавање блокова је бесмислено, зато што они никада не би били извршени.
  • Одлично закључујеш!

Трећа врста блокова за понављање извршава се све док не буде испуњен одређени услов. Скрипте унутар овог блока извршавају се на основу испитивања тачности услова који се у блок поставља. Овај блок треба да користиш када не знаш колико је пута потребно извршити скрипте унутар блока за понављање и зато желиш да се оне извршавају све док не буде испуњен одређени услов.

_images/L6_PonUslov.png

    Желиш да направиш програм у коме твој лик испаљује ракете све док му ниво енергије не падне испод одређене вредности. Који блок за понављање треба да користиш?
  • (A) Блок који понавља скрипте одређени број пута.
  • Ако одабереш овај блок, испаљивање ракета нема никакве везе са нивоом енергије твог лика, зар не?
  • (B) Блок који понавља скрипте бесконачно.
  • Ако одабереш овај блок, испаљивање ракета нема никакве везе са нивоом енергије твог лика, зар не?
  • (C) Блок који понавља скрипте све док не буде испуњен неки услов.
  • Оног тренутка када ниво енергије твог лика падне испод одређене вредности, испаљивање ракета треба да се заустави.

Представљамо ти програм за цртање испрекидане линије:

_images/L6_IsprLin.png

Размисли и допуни горњу скрипту тако да корњача исцртава испрекидану линију у којој је свака од цртица различите боје.

_images/L6_VeselaLin.png

Анализирај пројекат на адреси https://scratch.mit.edu/projects/171626325/ и погледај видео-лекцију Цртање испрекидане линије (различите боје цртица). Упореди своје решење са нашим.

Имамо за тебе још један задатак: помози маци да нацрта четири степеника дужине и висине по 50 корака.

_images/L6_Stepenice.png

Добро размисли, направи програм и упореди га са нашим https://scratch.mit.edu/projects/171626568/. Ако осећаш потребу, погледај видео-лекцију Цртање степеница.