$$ \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.

Час 3 - Низање блокова

На овом часу говорићемо о: ­

  • ­блоковима у МејкКоду;

  • повезивању блокова у програме.

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

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

У МејкКоду су блокови наредби подељени у категорије, као што видиш на доњој слици.

_images/58.png

Име категорије (нпр. Music) упућује корисника на врсте наредби (блокова) које се у тој категорији могу наћи. Сви блокови једне категорије су исте боје.

У претходној лекцији смо креирали једноставан програм за приказивање поруке „Здраво, свете!”, где смо користили једну врсту података под наводницима који се у програмским језицима назива стринг. Стринг представља низ карактера, представљених између знака навода. Стрингови имају велику примену у програмирању. За микробит уређај подржани су само ASCII кодови знакова од 32 до 126, у те знаке спадају слова, цифре, интерпункцијски знаци и неколико симбола. Сви остали знаци појављују се као ? на екрану микробита.

Напомена: ASCII чини скуп карактера тј. кодова који се најчешће користе у рачунарству, али и у комуникационој и управљачкој опреми у раду са текстом.

Хајде да сада креирамо још неке једноставне програме коришћењем блокова из категорије basicmusic. У свим тим програмима блокове ћемо ређати један за другим. Такви програми у којима се блокови извршавају по редоследу по коме су наведени називају се линијски програми.

Нека то буде приказ трепћућег срца (које симулира рад срца) на екрану микробита.

Поступак решавања било ког задатка (проблема) подразумева прелазак кроз сваку од следећих фаза:

Фаза 1: Размисли о проблему и напиши или нацртај алгоритам (кораке) за његово решавање.

Фаза 2: У складу са алгоритмом, одабери и сложи блокове.

Фаза 3: Тестирај и анализирај рад програма. Исправи грешке (ако их има).

Фаза 1

Размишљање о проблему: Приказ трепћућег срца (симулација срца које куца) на екрану микробита представља укључивање појединих лед диода у облику срца и њихово искључивање.

Корак 1. Приказати слику срца, укључивањем диода на екрану микробита.

Корак 2. Уклањање слике срца са екрана микробита.

Фаза 2

Покрени МејкКод за одабир и слагање блокова у простор за програмирање. На интернет страници на адреси https://makecode.microbit.org покрени нов пројекат кликом на дугме New Project Dugme.

Да бисмо приказали слику срца на екрану микробита, потребно је из категорије Basic, у простору за програмирање превучемо блок showLedonstart.

_images/64.png

Кликом на одређена поља у блоку show leds (укључивање лед диода) исцртавамо срце.

_images/65.png

Следеће је да додамо још један блок show leds у коме ћемо исцртати пуно срце чиме ћемо симулирати откуцаје срца.

_images/66.png

Фаза 3

Тестирање и анализа програма.

Да бисмо тестирали програм имамо две могућности: 1 да га покренемо у симулатору кликом на дугме dugmence. 2 да га пребацимо на микробит. Да бисмо програм пребацили на микробит треба да га прикачимо на рачунар коришћењем USB кабла. Кликом на дугме download преузмите .hex фајл на ваш рачунар. Превлачењем фајла на микробит, уређај је спреман за рад.

Након пребацивања програма он ће се покренути на микробиту.

Важно: Микробит може да чува само један програм. Микробит ће извршавати одређени програм све док се не унесе нови програм.

У случају да немамо физички уређај, програме можемо да тестирамо и коришћењем уграђеног симулатора у окружењу МејкКода.

Након тестирања и анализе, постоји грешка, слике два срца се промене, тачније блокови за приказ слика се изврше. У програму су извршене сви блокови чиме нисмо добили симулацију откуцаја срца. Грешке у програмима које доводе до неочекиваног резултата или неправилног извршавања програма називају се багови (енгл. bugs – бубе). Процес проналажења и исправљања грешака назива се дебаговање (енгл. debugging).

Занимљивост: 9. септембра 1947. године, рачунар Марк 2 показивао је проблеме у раду. Након целодневне истраге, откривен је мољац у унутрашњости рачунара. Мољац је уклоњен и залепљен у дневник рада. Текст је гласио: „Први случај нађене бубе”. Убрзо потом, раширила се вест да је тим научника са Харварда „дебаговао“ рачунар. Тако је створен термин „дебаговање рачунарског програма“.

_images/67.png

Овако изгледа поступак за отклањање грешака у програму:

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

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

  3. Исправи грешке (Унеси исправке и поново тестирај програм. На овај начин пружа ти се сјајна прилика да учиш из својих грешака и тако постанеш бољи програмер.).

Грешка 1. Блокови се извршавају само једном.

Исправљање грешака. Променићемо начин покретања програма, уместо блока оn start, где су поређани блокови извршавају само једном, превућићемо блок Foreverbreak.

Изглед измењеног кода:

_images/70.png

Размисли: Да ли овако блокови, са сликама два срца, симулирају откуцаје срца, да ли се дешава нека промена? Зашто?

Грешка 2. Слике се пребрзо мењају.

Исправљање грешака. Између блокова show leds додати блок којим се дефинише временски интервал од на пример пола секунди, или 500 милисекунди. Блок pauza којим се дефинише временски интервал којим се чека извршење следећег блока за дефнисан број милисекунди. Овај блок превлачимо из категорије Basic.

Након исправљених грешака, требало би да програм изгледа овако:

_images/72.png

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

Хајде сада да напишемо програм којим ћемо направити мелодију песме „На крај села жута кућа“.

Фаза 1

Размишљање о проблему: Мелодија песме „На крај села жута кућа“ гласи:

  • d, f, g, g

  • d, f, g, g

  • d, f, g

  • d, f, g, g

  • d, f, g

  • g, g, f, f, d

Фаза 2

Покрени МејкКод за одабир и слагање блокова у простор за програмирање.

На интернет страници на адреси https://makecode.microbit.org покрени нов пројекат кликом на дугме New Project Dugme.

Да бисмо одсвирали неки тон или мелодију користимо категорију Music и блокове који се у њој налазе. Помоћу блока pesma репродукује тон одређене дужине. Прва нота коју превлачимо у блок on start биће нота d, дужине једног бита, или тачније једне милисекунде.

Изглед кода:

_images/74.png

Сада је потребно само превући испод датог блока остале ноте d, f, g, g.

Изглед кода:

_images/75.png

На исти начин ређамо блокове за остале ноте:

  • d, f, g, g

  • d, f, g

  • d, f, g, g

  • d, f, g

  • g, g, f, f, d

Коначан изглед кода:

_images/76_1.png

Код можете погледати на линку: https://makecode.microbit.org/_D1553sX4v5Cj

Фаза 3

Тестирање и анализа програма.

Да бисмо тестирали програм имамо две могућности:

1 да га покренемо у симулатору кликом на дугме dugmence. 2 да га пребацимо на микробит. Да бисмо програм пребацили на микробит треба да га прикачимо на рачунар коришћењем USB кабла. Кликом на дугме download преузмите .hex фајл на ваш рачунар. Превлачењем фајла на микробит, уређај је спреман за рад.

Након пребацивања програма он ће се покренути на микробиту.

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

_images/77.png

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

Шта смо научили?
  • Линијски програм је програм у коме се блокови извршавају по редоследу по ком су наведени.

  • Поступак решавања било ког задатка (проблема) подразумева прелазак кроз сваку од следећих фаза:

    • Фаза 1: Размисли о проблему и напиши или нацртај алгоритам (кораке) за његово решавање.

    • Фаза 2: У складу са алгоритмом, одабери и сложи блокове.

    • Фаза 3: Тестирај и анализирај рад програма. Исправи грешке (ако их има).

  • Блокови за пуштање тонова или мелодија налазе се у категорији Music.

Квиз

    Q-33: У којој категорији се налази блок за пуштање тона G?

  • Input
  • Твој одговор није тачан. Покушај поново!
  • Loop
  • Твој одговор није тачан. Покушај поново!
  • Music
  • Браво! Твој одговор је тачан.
  • Basic
  • Твој одговор није тачан. Покушај поново!

    Q-34: Пажљиво проучи код:

    _images/78.png

    Шта ће се десити након извршавања датог кода:

  • биће одсвиран тон D, а након паузе биће пуштена мелодија dadadum једном
  • Браво! Твој одговор је тачан.
  • биће одсвиран тон D
  • Твој одговор није тачан. Покушај поново!
  • биће одсвирана мелодија dadadum једном
  • Твој одговор није тачан. Покушај поново!
  • ништа се неће десити
  • Твој одговор није тачан. Покушај поново!

    Q-35: У којој категорији се налази блок за приказивање насмејаног лица?

  • Input
  • Твој одговор није тачан. Покушај поново!
  • Loop
  • Твој одговор није тачан. Покушај поново!
  • Music
  • Твој одговор није тачан. Покушај поново!
  • Basic
  • Браво! Твој одговор је тачан.

    Q-36: У којој категорији се налази блок којим се дефинише временски интервал којим се чека извршење неког блока?

  • Input
  • Твој одговор није тачан. Покушај поново!
  • Loop
  • Твој одговор није тачан. Покушај поново!
  • Music
  • Твој одговор није тачан. Покушај поново!
  • Basic
  • Браво! Твој одговор је тачан.