$$ \newcommand{\floor}[1]{\left\lfloor{#1}\right\rfloor} \newcommand{\ceil}[1]{\left\lceil{#1}\right\rceil} \renewcommand{\mod}{\,\mathrm{mod}\,} \renewcommand{\div}{\,\mathrm{div}\,} \newcommand{\metar}{\,\mathrm{m}} \newcommand{\cm}{\,\mathrm{cm}} \newcommand{\dm}{\,\mathrm{dm}} \newcommand{\litar}{\,\mathrm{l}} \newcommand{\km}{\,\mathrm{km}} \newcommand{\s}{\,\mathrm{s}} \newcommand{\h}{\,\mathrm{h}} \newcommand{\minut}{\,\mathrm{min}} \newcommand{\kmh}{\,\mathrm{\frac{km}{h}}} \newcommand{\ms}{\,\mathrm{\frac{m}{s}}} \newcommand{\mss}{\,\mathrm{\frac{m}{s^2}}} \newcommand{\mmin}{\,\mathrm{\frac{m}{min}}} \newcommand{\smin}{\,\mathrm{\frac{s}{min}}} $$

Prijavi problem


Obeleži sve kategorije koje odgovaraju problemu

Još detalja - opišite nam problem


Uspešno ste prijavili problem!
Status problema i sve dodatne informacije možete pratiti klikom na link.
Nažalost nismo trenutno u mogućnosti da obradimo vaš zahtev.
Molimo vas da pokušate kasnije.

Понављање

Подсећамо те на 4 врсте блокова у Скречу:

_images/L3_4BlokaS3.png
  1. Блокове наредби;

  2. Блокове који повезују догађаје са извршавањем програма;

  3. Блокове који контролишу извршавање програма;

  4. Блокове који саопштавају неку врдност (функцијске блокове).

У овој лекцији користићемо све наведене врсте блокова. О прве две врсте већ смо говорили. У овој лекцији посебну пажњу посветићемо блоковима који контролишу извршавање програма, док ћемо блокове који саопштавају неку вредноост само поменути.

Блокови који контролишу извршавање програма

Слично блоковима наредби, блокови који контролишу извршавање програма имају удубљење на горњој и испупчење на доњој страни. Можемо да их надовежемо на друге блокове, како и да нове блокове додамо испод њих.

Ови блокови налазе се у категорији Управљање. Карактерише их способност да у себе приме друге блокове. На пример, скрипта S3PR1 обезбеђује да се наш лик креће 10 пута по 10 корака.

Блокови који саопштавају неку вредност (функцијски блокови)

Осим по облику, од осталих блокова разликују се и по томе што не могу самостално да буду део скрипте. Другим речима, они се не надовезују на друге блокове, већ чине њихов саставни део.

Функцијски блокови садрже неку вредност. Изглед им зависи од типа податка који садрже:

  • заобљени блокови садрже број или стринг;

  • угласти блокови садрже вредност Тачно (true) или Нетачно (false).

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

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

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

  • однос са позадином позорнице.

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

_images/zzz.png

Направићемо нови програм, који обезбеђује да се лик Маца непрестано шета лево-десно по позорници, али тако да се, када стигне на крај позорнице, окрене и настави свој пут.

Кретати се бесконачно пута значи да треба да направимо програм који садржи бесконачан број блокова наредби. То не делује изводљиво, зар не?

Добра вест је да решење ипак постији!

Пажљиво погледај видео-запис у коме је приказан начин извршавања програма који треба да направимо:

ВИДЕО L3Z2S3.mp4

Уочаваш да се извршавање програма покреће кликом на зелену заставицу. Нека наша маца крене из центра позорнице, удесно.

_images/L3_MH1S3.png

Кликом на картицу Костими добијамо увид у костиме нашег лика. Јасно је да Маца поседује два костима: костим1 и костим2. На почетку програма, Мацин костим је костим1. Да бисмо ово осигурали, додаћемо блок L3_MH2.

Видео-запис извршавања програма показује да Маца не клизи, већ се креће покретима сличним ходању. Како би избегли ефекат клизања лика, морамо да осмислимо начин да Маца „хода”. У овој ситуацији, од помоћи су нам костими. Смењивањем ових костима створићемо утисак хода.

_images/L3_MH3S3.png

Ходање је понављање корака. Да би наша Маца ходала све док не зауставимо извршавање програма, неопходно је употребимо блок L3_MH4. Овај блок је један од три блока за понављање наредби. Омогућава да се блокови постављени унутар њега бесконачно пута понављају.

Право је време да покренеш Скреч, сложиш приказане блокове и тестираш њихово извршавање.

Могуће решење

_images/L3_MH5S3.png

_images/zzz.png

У прошлој лекцији научили смо како да користимо блокове за цртање. Ипак, нисмо стварали уметничка дела. Коришћењем блокова за понављање, креирање програма чијим извршавањем настају заиста лепи цртежи постаје могуће и лако изводљиво.

Користећи предложене и додајући одговарајуће блокове за цртање направи програм који исцртава облик приказан на доњој слици. При изради програма користи пројекат Цртање облика који се налази на адреси https://scratch.mit.edu/projects/360052051/.

_images/L5_Z2S3.png

Могуће решење

_images/L5_Z2R2S3.png

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

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

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

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

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

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

_images/zzz.png

У оквиру пројекта Црвена линија https://scratch.mit.edu/projects/366572724/ креирај скрипту приказану на доњој слици.

_images/L5_Z4S3.png

    Q-10: Анализом извршавања програма уочавамо да лик престаје да се креће када дође до црвене линије. Означи тачну тврдњу:

  • Блок који понавља наредбе извршава се све док је испуњен услов: "Лик додирује црвену линију".
  • Ниси у праву. У тренутку када је услов "Лик додирује црвену линију" испуњен (када је тврђење тачно), лик се зауставља.
  • Блок који понавља наредбе извршава се све док не буде испуњен услов: "Лик додирује црвену линију".
  • У праву си! У тренутку када је услов "Лик додирује црвену линију" испуњен (када је тврђење тачно), лик се зауставља.

Од Скреча ка Пајтону

Претпоставимо да лик у Скречу има спуштену оловку, а да је у Пајтон програму учитана библиотека корњача (import turtle). Анализирај скрипте на доњој слици. Обе исцртавају квадрат. Уочаваш ли сличности у запису?

_images/L5_OdSkrecaKaPajtonu.png