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

Час 9 - Понављање

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

  • ­понављању делова програма;

  • понављању делова програма.

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

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

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

Понављање наредби је врло честа појава у програмирању.

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

  • ­ одређени број пута:

_images/146.png

Овај блок треба да користимо када унапред знамо тачан број понављања (каже се и итерација). ­

  • бесконачан број пута (непрестано, све док корисник не заустави програм):

_images/147.png

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

  • све док не буде испуњен одређени услов:

_images/149.png

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

Хајде да направимо програм којим се активира звук који се понавља одређени број пута сваки пут када корисник помери микробит.

Фаза 1

Разумевање проблема: Када се протресе или направи било какав покрет са микробит уређајем поновиће се звук 3 пута.

Корак 1: Детектуј покрет

Корак 2: Понови звук три пута

Фаза 2

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

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

Да бисмо могли да детектујемо било какав покрет у простор за програмирање превлачимо блок on shake из категорије Input:

_images/150.png

Како желимо да поновимо звук три пута, у блок on shake превлачимо блок repeat .. for из категорије Loops. У делу за унос вредности (броја) уносимо број 3.

_images/151.png

У горњи блок ћемо превући блок play tone … for… из категорије Music којим се репродукује звук.

_images/152.png

У датом блоку из падајућих листа бирамо тон и дужину истог.

_images/153.png

Коначан изглед програма:

_images/154.png

Фаза 3

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

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

1 да га покренемо у симулатору кликом на дугме startuj.

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

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

Грешка 1. Не чује се јасно понављање звука.

Исправљање грешака. Да бисмо постигли да се јасно звук чује три пута увешћемо блок pause .. из категорије Basic. Поставићемо да је временски интервал након кога се понавља звук 1 секунда (или 1000 милисекунди).

Након исправљеног кода, коначан изглед програма:

_images/155.png

Поново тестирамо програм. Сада он ради како треба.

Хајде да направимо још један програм којим се активира паљење лед диодица на средини екрана микробита све док је температура у просторији мања од 30.

Фаза 1

Разумевање проблема: Све док је измерена температура мања од 30 пали се лед диода на средини екрана микробита.

Фаза 2

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

Да бисмо извршили одређене наредбе (паљење лед диода) док не буде испуњен неки услов (температура мања од 30), у блок forever превлачимо блок while..do..:

Изглед кода:

_images/156.png

Да бисмо упалили лед диоду на средини екрана, тачније на позицији (2, 2) из менија Led превлачимо блок: plot .

Коначан изглед програма:

_images/157.png

Фаза 3

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

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

1 да га покренемо у симулатору кликом на дугме startuj.

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

Размисли:

Пажљиво проучи горње блокове. Шта се дешава када температура порасте, и буде већа од 30? Зашто?

Допуни горњи кôд како би лед диода била упаљена само док је температура мања од 30.

Могуће решење: https://makecode.microbit.org/_92LeH58vY4je

Сећаш се задатка из Лекције 3 – Унос података, помоћу кога смо укључивали лед диоде на главној дијагонали екрана микробита.

_images/158.png

Фаза 1

Разумевање проблема: Главна дијагонала представља линију која повезује горњи леви угао екрана са доњим десним. Тај задатак смо решили линијским програмом, ређајући блокове plotled један за другим.

Изглед кода је следећи:

_images/159.png

Фаза 2

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

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

Међутим, овај задатак ћемо решити елегантније користећи блок blokp1. (О променљивима ћемо причати детаљније у следећој лекцији, можеш их схватити као „чуваре“ различитих вредности, било нумеричких било текстуалних).

У блок forever превлачимо блок for .. from to … Граница од које креће бројање је 0, а до које се завршава је 4, зато што је у овом случају положај лед диода на екрану микробита дефинисан по хоризонтали и вертикали од 0 до 4.

Изглед кода:

_images/163.png

У горњи блок превучемо plotp1.

Корак по корак извршавање блока for .. from to …

Tабела компоненти Микробита

Променљива p1

Блока plot

Извршавање кода на екрану микробита

index = 0

plot11

s1

index = 1

plot1

s2

index = 2

plot2

s3

index = 3

plot3

s4

index = 4

plot4

s5

Блок ће се поновити пет пута.

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

_images/173.png

Фаза 3

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

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

1 да га покренемо у симулатору кликом на дугме startuj.

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

_images/174.png

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

  • да постоје различити блокови за понављање (бројачки, бесконачни, условни) и када се они користе.

  • да се бројачки извршавају када тачно знамо колико ће се пута поновити нека радња.

  • да се условна понављања користимо када не знамо колико је пута потребно извршити неку радњу. Тај блок се извршава све док не буде испуњен одређени услов.

  • које вредности узима index у блоку понављања, тачније која је почетна, а која крајња вредност.

Квиз

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

    _images/175.png

    Шта ће бити приказано на микробиту?

  • На екрану ће бити приказано срце.
  • Твој одговор није тачан. Покушај поново!
  • На екрану ће бити приказано срце све док је дугме А притиснуто.
  • Браво! Твој одговор је тачан.
  • На екрану ће бити приказано срце све док је температура већа од 30.
  • Твој одговор није тачан. Покушај поново!
  • На екрану неће бити приказано ништа.
  • Твој одговор није тачан. Покушај поново!

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

    _images/176.png

    Шта ће бити приказано на микробиту?

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

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

    _images/177.png

    Шта ће бити приказано на микробиту?

  • На екрану ће бити редом бројеви од 0 до 4.
  • Браво! Твој одговор је тачан.
  • На екрану ће бити приказан број 5.
  • Твој одговор није тачан. Покушај поново!
  • На екрану ће пет пута бити приказан број 4.
  • Твој одговор није тачан. Покушај поново!
  • На екрану неће бити приказано ништа.
  • Твој одговор није тачан. Покушај поново!

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

    _images/178.png

    Шта ће бити приказано на микробиту?

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