Час 14 - Низови¶
На овом часу говорићемо о:
чувању већег броја података;
низовима и њиховој примени.
Сваки колекционар маркица, новчаница или сличица зна да je у неком тренутку потребно да организује своју колекцију, како би на што лакши начин могли да пронађу одређене сличице или новчанице. На пример, колекционар кованица може имати кутију за кованице нумерисане на овај начин (као на доњој слици):
Свакој кованици (новчићу) у колекцији потребан је властити простор за складиштење и јединствена адреса (0, 1, 2,…) како бисмо касније могли да пронађемо жељену кованицу. Како се наши МејкКоду програми све више усложњавају и захтевају више променљивих да бисмо пратили одређене ствари, мораћемо да уместо променљивих које смо до сада изучили да пронађемо друге начине за складиштење и организовање свих својих података. Ситуације у којима треба да сачуваш већи број података честе су у раду сваког програмера. Оне захтевају примену другачије врсте променљивих, потребно је користити низове. За то у МејкКоду можемо користити блок .
Низови представљају колекцију податка и можеш да га схватиш као „полицу” на којој се налази велики број „кутија”. Свака од „кутија” нумерисана је бројем (од 0 надаље). У свакој од „кутија” чува се по један податак (број, реч, знак,…). Дакле, у низовима се могу чувати бројеви, речи или музичке ноте, који се једним именом називају елементи низа.
Сваки елемент у низу је дефинисан индексом, број којим је одређен положај елемента у низу. Први елемент у низу има индекс 0. Дужина низа односи се на укупан број елемената у низу, а индекс последњег елемента у низу је увек један мањи од његове дужине (нпр. ако је дужина низа 5, индекс последњег елемента низа је 4).
Листу креираш тако што у категорији Advanced изабереш подкатегорију Array и изабереш блок:
Горњи блок креира празну листу под именом Lista (одабиром опције New variable… из падајуће листе).
Затим, листу можемо попунити са пет бројева, индексираних од 0 до 4. Елементе додајеш кликом на знак „+” уписивањем вредности у одговарајући простор.
Хајде да направимо програм помоћу кога ћеш провежбати падеже, тачније утврдити падежни облик одређене речи (нпр. Који падежни облик добијаш одговором на питања ко, шта?).
Фаза 1
Размисли о проблему: За сваки падежни облик поставља се одговарајуће питање. Кликом на дугме А биће приказано питање, које ће се насумично бирати, док ће кликом на дугме Б бити приказан падежни облика који одговара том питању.
Фаза 2
Покрени МејкКод одабери и сложи блокове у простор за програмирање.
На интернет страници на адреси https://makecode.microbit.org покрени нов пројекат кликом на дугме New Project .
Сваком падежном облику одговара одређено питање. Потребно је да се креирају две листе: . У ове низове уносиш елементе приказане на следећој слици:
Изглед низова:
Изглед кода:
Питања која се постављају за падежни облик треба да буду елементи низа .
Као што видиш, величина (димензија) низа је 7, тј. оба низа имају по 7 елемената.
У горњим низовима, уочаваш да питање на позицији 1 низа . Ово важи и за све остале елементе низа. Овакав принцип нам је важан због спаривања питања са падежним обликом. Да би игра била што занимљивија (да питања не би увек кретала од првог и ишла до последњег), можеш да уведеш насумични одабир питања из листе .
Тачно је да ће игра бити интересантнија, али је исто тако тачно да, ако рачунару кажеш да насумично бира питање, нећеш знати које питање је изабрао. Чим не знаш питање, не можеш знати ни падеж.
У овој ситуацији, добро је да користиш обичну променљиву у којој ћеш чувати редни број питања.
Када је притиснут тастер А на Микробиту потребно је насумично изабрати питање из низа и приказати га на екрану.
Да бисмо приказали одређени елемент низа (нпр. трећи елемент низа) можемо приказати на екрану коришћењем следећег блока .
Изглед кода:
Када је притиснут тастер B на микробиту биће приказан падежни облик који одговара датом питању и приказаће га на екрану.
Изглед кода:
Коначан код: https://makecode.microbit.org/_fyhKwVhhUEXT
Фаза 3
Да бисмо тестирали програм имамо две могућности:
1 да га покренемо у симулатору кликом на дугме .
2 да га пребацимо на микробит. Да бисмо програм пребацили на микробит треба да га прикачимо на рачунар коришћењем USB кабла. Кликом на дугме преузмите .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 .
Дефинишемо променљиву Najmanji чија се вредност добија случаним избором броја из интервала од -10 до 10:
Креирамо и низ Niz чији су елементи -5, -10, 0, -2, 2, 5, 6, 4, 10:
Да бисмо проверили сваки елемент (чува се у променљивој value) листе Niz користимо блок .
Да бисмо проверили која је вредност низа мања од броја Najmanji, и да бисмо сачували најамњу вредност користимо следеће блокове:
Коначан изглед кода:
Фаза 3
Да бисмо тестирали програм имамо две могућности:
1 да га покренемо у симулатору кликом на дугме .
2 да га пребацимо на микробит. Да бисмо програм пребацили на микробит треба да га прикачимо на рачунар коришћењем USB кабла. Кликом на дугме преузмите .hex фајл на ваш рачунар. Превлачењем фајла на микробит, уређај је спреман за рад.
Уради
Креирај низ елемената 1, 2, 3. Затим, у већ креиран низ додај број 5 на крај низа. Мала помоћ: користи блок .
Могуће решење:
Поред нумеричких вредности могуће је да користите низове и за чување нота у облику стринга. Нота је представљена октавом, као и дужином. Облик једне ноте је: C:2. То значи да се чује нота C током 2 откуцаја времена. Паузу можемо да представимо у облику R:1, где R значи одмор и одмор за један ритам. Одмор је време тишине, у звуку. Дефинишемо низ Ноте 1 да бисмо представили првих пет нота Тwinkle twinkle little star:
Тестирање и анализа програма.
- Шта смо научили?
низ – тип података сложене структуре који омогућава чување више вредности истовремено.
у низовима се могу чувати бројеви, речи или музичке ноте, који се једним именом називају елементи низа.
сваки елемент у низу је дефинисан индексом, број којим је одређен положај елемента у низу.
први елемент у низу има индекс 0.
индекс последњег елемента у низу је увек један мањи од његове дужине.
дужина низа односи се на укупан број елемената у низу.
низове креирамо из категорије Advanced - Array.
Квиз¶
- 4
- Твој одговор није тачан. Покушај поново!
- 3
- Твој одговор није тачан. Покушај поново!
- 1
- Браво! Твој одговор је тачан.
- 5
- Твој одговор није тачан. Покушај поново!
- На екрану микробита биће приказана грешка.
- Твој одговор није тачан. Покушај поново!
Q-17: Проучи блок.
Која вредност ће бити приказана након извршавање следећег кода?