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

Квиз на два начина

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

Задатак је да направиш један квиз, али на два начина.

Другим речима, пред тобом је креирање два програма у Scratch-у која дају исти резултат.

У првом програму, направићеш квиз помоћу обичних променљивих (које памте само један податак, вредност),

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

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

Чим размотримо логику квиза, моћи ћеш да пређеш на програмирање.

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

  1. Постављање питања и чекање на одговор корисника

  2. Упоређивање одговора корисника са тачним одговором

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

  4. Понављање прва три корака онолико пута колико има питања.

Квиз помоћу обичних променљивих

У првом програму користићемо обичну променљиву L10_PromOdgovor.

Нека питање буде Која је планета најближа Сунцу?. Ти знаш да је то Меркур.

_images/L10_KvizObicanPitanje.png

Низањем оваквих блокова, у којима се једино мењају питања и одговори, лако се креира квиз. Имаш пет осмишљених питања и одговора. Направи Sctarch програм који проверава знање корисника.

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

Право је време да уведеш променљиву L10_PromBodovi.

_images/L10_KreiranjePromBodovi.png

Хајде да размислимо вредностима ове променљиве.

Колика треба да буде вредност променљиве L10_PromBodovi на почетку програма (упиши број): L10_Z1

Јасно је да вредност променљиве L10_PromBodovi треба да се увећа за 1 када корисник тачно одговори на питање.

_images/L10_BodoviPlusJedan.png

Сада имаш све потребне елементе да направиш квиз. Ако ти је потребна помоћ - ту смо. Анализирај наше решење на адреси https://scratch.mit.edu/projects/171628696/. На располагању имаш и видео-лекцију Квиз..

Пре него што се посветимо изради квиза помоћу листи:

    Q-8: Размисли и означи тачну тврдњу:

  • Дужина скрипти квиз-програма направљеног помоћу обичних променљивих не зависи од броја питања.
  • Предлажемо ти да додаш још два питања и донесеш закључак о дужини скрипти.
  • Квиз-програм направљен помоћу обичних променљивих мења дужину скрипти у зависности од броја питања.
  • У праву си! Што је већи број питања, дужина скрипти је све већа.

Квиз помоћу листи

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

За почетак, треба да креираш две листе: L10_ListaPitanja и L10_ListaOdgovori. Познат ти је поступак додавања елемената у листу.

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

_images/L10_DveListe.png

Уочаваш да питање на позицији 1 листе L10_ListaPitanja има одговор на позицији 1 листе L10_ListaOdgovori. Овај принцип односи се и на остале елементе листи.

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

Хајде да размишљамо о насумичном одабиру питања из листе L10_ListaPitanja.

Ако рачунару кажемо да насумично одабере питање, нећемо знати које питање бира, а самим тим нећемо знати који је тачан одговор на њега.

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

    Q-9: Зашто је потребно да чувамо редни број (положај у листи) насумично одабраног питања?

  • Овај број нам је неопходан да бисмо могли да упоредимо одговор корисника са тачним одговором (елементом листе Одговори).
  • Редни број питања одговара редном броју одговора.
  • Овај број нам је неопходан да бисмо знали да су постављена сва питања.
  • Насумичан одабир питања не гарантује да ће сва питања бити постављена, без обзира на чување редног броја насумично одабраног питања.

Дакле, креираћемо променљиву L10_PromRBrListe.

Наредни корак јесте обезбеђивање да променљива L10_PromRBrListe узме насумичну вредност од 1 до 3. Наравно, број 3 узимамо зато што је дужина наших листи 3 (оне садрже по три елемента).

Да ли је овакво размишљање заиста оправдано? Шта ако будемо желели да додамо елементе у листе?

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

_images/L10_DoDuzineListe.png

Читаву ову заврзламу радили смо да би стигли до могућности да кориснику поставимо питање следећег облика:

_images/L10_NasumicnoPitanje.png

Наш програм поставља кориснику под редним бројем сачуваним у променљивој L10_PromRBrListe и чека на одговор корисника.

Следи поређење корисниковог одговора са тачним одговором.

_images/L10_PoredjenjeOdgovora.png

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

_images/L10_PitanjeOdgovor.png

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

_images/L10_KvizListe.png

Ако ти се израда квиза уз помоћ листи учинила сувише сложеном, не брини. Наше решење налази се на адреси https://scratch.mit.edu/projects/171628825/. Као и увек, помоћ можеш да нађеш у видео лекцији Квиз и листе.

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

_images/L10_2Kviza.png

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

Значи, вредело је помучити се са листама. Браво за тебе!