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

Час 14 - Низови

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

  • ­­чувању већег броја података;

  • низовима и њиховој примени.

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

_images/222.png

Свакој кованици (новчићу) у колекцији потребан је властити простор за складиштење и јединствена адреса (0, 1, 2,…) како бисмо касније могли да пронађемо жељену кованицу. Како се наши МејкКоду програми све више усложњавају и захтевају више променљивих да бисмо пратили одређене ствари, мораћемо да уместо променљивих које смо до сада изучили да пронађемо друге начине за складиштење и организовање свих својих података. Ситуације у којима треба да сачуваш већи број података честе су у раду сваког програмера. Оне захтевају примену другачије врсте променљивих, потребно је користити низове. За то у МејкКоду можемо користити блок niz.

Низови представљају колекцију податка и можеш да га схватиш као „полицу” на којој се налази велики број „кутија”. Свака од „кутија” нумерисана је бројем (од 0 надаље). У свакој од „кутија” чува се по један податак (број, реч, знак,…). Дакле, у низовима се могу чувати бројеви, речи или музичке ноте, који се једним именом називају елементи низа.

Сваки елемент у низу је дефинисан индексом, број којим је одређен положај елемента у низу. Први елемент у низу има индекс 0. Дужина низа односи се на укупан број елемената у низу, а индекс последњег елемента у низу је увек један мањи од његове дужине (нпр. ако је дужина низа 5, индекс последњег елемента низа је 4).

Листу креираш тако што у категорији Advanced изабереш подкатегорију Array и изабереш блок:

_images/224.png

Горњи блок креира празну листу под именом Lista (одабиром опције New variable… из падајуће листе).

_images/225.png

Затим, листу можемо попунити са пет бројева, индексираних од 0 до 4. Елементе додајеш кликом на знак „+” уписивањем вредности у одговарајући простор.

_images/227.png

Хајде да направимо програм помоћу кога ћеш провежбати падеже, тачније утврдити падежни облик одређене речи (нпр. Који падежни облик добијаш одговором на питања ко, шта?).

Фаза 1

Размисли о проблему: За сваки падежни облик поставља се одговарајуће питање. Кликом на дугме А биће приказано питање, које ће се насумично бирати, док ће кликом на дугме Б бити приказан падежни облика који одговара том питању.

Фаза 2

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

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

Сваком падежном облику одговара одређено питање. Потребно је да се креирају две листе: list1list2. У ове низове уносиш елементе приказане на следећој слици:

Изглед низова:

_images/230.png

Дефинисање низова list1blok1.

Изглед кода:

_images/233.png

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

Као што видиш, величина (димензија) низа је 7, тј. оба низа имају по 7 елемената.

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

Тачно је да ће игра бити интересантнија, али је исто тако тачно да, ако рачунару кажеш да насумично бира питање, нећеш знати које питање је изабрао. Чим не знаш питање, не можеш знати ни падеж.

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

Креирај променљиву blok2.

Нека променљива blok2blok3):

Ако је садржај променљиве blok2list2.

Када је притиснут тастер А на Микробиту потребно је насумично изабрати питање из низа list2 и приказати га на екрану.

Да бисмо приказали одређени елемент низа (нпр. трећи елемент низа) можемо приказати на екрану коришћењем следећег блока blok4.

Изглед кода:

_images/238.png

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

Изглед кода:

_images/239.png

Коначан код: https://makecode.microbit.org/_fyhKwVhhUEXT

Фаза 3

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

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

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

Још један пример употребе низова, али на нумеричке вредности. Потребно је да у зависности од броја који је генерисан случајним избором из интервала од -10 до 10, пронађемо број у низу од бројева -10, -5, -2, 0, 2 5, 6, 4, 10 који је мањи од њега.

Фаза 1

Размисли о проблему: Број који добијамо случаним избором из интервала од -10 до 10 потребно је да упоредимо са сваким од елемената низа бројева -5, -10, 0, -2, 2, 5, 6, 4, 10. Ако је на пример генерисани број -1, вредност која је мања од ње је -10.

Фаза 2

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

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

Дефинишемо променљиву Najmanji чија се вредност добија случаним избором броја из интервала од -10 до 10:

_images/240.png

Креирамо и низ Niz чији су елементи -5, -10, 0, -2, 2, 5, 6, 4, 10:

_images/241.png

Да бисмо проверили сваки елемент (чува се у променљивој value) листе Niz користимо блок blok5.

Да бисмо проверили која је вредност низа мања од броја Najmanji, и да бисмо сачували најамњу вредност користимо следеће блокове:

_images/243.png

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

_images/244.png

Фаза 3

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

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

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

Уради

Креирај низ елемената 1, 2, 3. Затим, у већ креиран низ додај број 5 на крај низа. Мала помоћ: користи блок blok6.

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

_images/246.png

Поред нумеричких вредности могуће је да користите низове и за чување нота у облику стринга. Нота је представљена октавом, као и дужином. Облик једне ноте је: C:2. То значи да се чује нота C током 2 откуцаја времена. Паузу можемо да представимо у облику R:1, где R значи одмор и одмор за један ритам. Одмор је време тишине, у звуку. Дефинишемо низ Ноте 1 да бисмо представили првих пет нота Тwinkle twinkle little star:

_images/247.png

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

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

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

  • сваки елемент у низу је дефинисан индексом, број којим је одређен положај елемента у низу.

  • први елемент у низу има индекс 0.

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

  • дужина низа односи се на укупан број елемената у низу.

  • низове креирамо из категорије Advanced - Array.

Квиз

    Q-15: Проучи блок.

    _images/248.png

    Коју вредност има елемент са индексом 3?

  • 4
  • Твој одговор није тачан. Покушај поново!
  • 2
  • Твој одговор није тачан. Покушај поново!
  • 3
  • Твој одговор није тачан. Покушај поново!
  • 1
  • Браво! Твој одговор је тачан.
  • 5
  • Твој одговор није тачан. Покушај поново!

    Q-16: Проучи блок.

    _images/249.png

    Коју вредност има елемент са индексом 3?

  • 4
  • Твој одговор није тачан. Покушај поново!
  • 2
  • Твој одговор није тачан. Покушај поново!
  • 3
  • Браво! Твој одговор је тачан.
  • 1
  • Твој одговор није тачан. Покушај поново!
  • 5
  • Твој одговор није тачан. Покушај поново!

    Q-17: Проучи блок.

    _images/250.png

    Која вредност ће бити приказана након извршавање следећег кода?

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

    Q-18: Проучи блок.

    _images/251.png

    Коју вредност има елемент са индексом 2?

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