Одлучивање (гранање)¶
Надамо се да ти ова програмерска авантура прија и да непрестано напредујеш.
Прави је тренутак да ти, као већ искусном, младом програмеру, дамо моћ одлучивања! :)
Програми које смо до сада стварали извршавали су се блок по блок, од првог до последњег блока. Овакво извршавање програма назива се секвенцијално. При секвенцијалном извршавању нема прескакања (изостављања) блокова. Сви они се извршавају једном или више пута.
Међутим, дешаваће се да задатак који решаваш захтева да промениш начин извршавања програма.
На пример, ако правиш програм који ће користити ученици млађих разреда за учење рачунања (аритметике), желећеш да се изврше одређени блокови којима похваљујеш тачан одговор или да се изврше сасвим други блокови, којима коментаришеш нетачан одговор. На основу доношења одлуке о тачности или нетачности одговора, имаћеш потребу да се изврше различити низови блокова. Зато кажемо да се програм грана, тј. да се извршавају скрипте једне гране, док се скрипте друге гране не извршавају.
Свакога дана доносиш одлуке и на основу њих настављаш са дневним активностима. На пример, имаш 100 динара и желиш да купиш сладолед. Следећи корак је да провериш цену сладоледа у продавници и одлучиш да ли ћеш да га купиш или не.
Слично је и у програмирању.
Када је доношење одлука у питању, Scratch нуди:
операторе поређења
блокове за одлучивање (гранање програма)
Коришћењем оператора поређења, можеш да упоредиш вредности и утврдиш да ли је једна већа/мања од друге или су једнаке. Резултат поређења може бити ТАЧНО или НЕТАЧНО.
- Као резултат извршавања скрипте А, програм ће исписати реченицу "Купићу сладолед!".
- Пажљиво погледај оператор поређења скрипте А. Уочаваш да ће програм исписати реченицу "Купићу сладолед!" само ако је цена сладоледа мања од 100 динара.
- Извршавањем скрипти А и B добиће се исти резултат - програм ће исписати реченицу "Купићу сладолед!".
- Пажљиво погледај како je дефинисан оператор поређења у скрипти А, а како у скрипти B. Уочаваш да ће извршавањем скрипте А реченица "Купићу сладолед!" бити исписана само ако је његова цена мања од 100 динара. Извршавањем скрипте B, реченица "Купићу сладолед!" биће исписана ако је цена сладоледа мања или једнака 100 динара.
- Као резултат извршавања скрипте B, програм ће исписати реченицу "Купићу сладолед!".
- Имаш одлично запажање! Програм ће исписати реченицу "Купићу сладолед!" ако је његова цена мања или једнака 100 динара.
Q-10: Цена сладоледа је 100 динара. Анализирај скрипте дате на слици и означи тачно тврђење.
Хајде да програмирамо! Стављамо пред тебе два изазова:
Направи Scratch програм који садржи један лик - шарену лопту. Лопта треба бесконачно да се креће по позорници одбијајући се о њене зидове. Када је на десној страни позорнице, лопта треба да мења боје. Када се врати на леву страну позорнице, лопта треба да задржи последњу боју коју је имала.
Мала помоћ: За одбијање лопте о зидове позорнице користи блок , а за одређивање боје лопте сети се координатног система позорнице.
Наше решење налази се на адреси https://scratch.mit.edu/projects/171584194/. Анализирај га и упореди са својим.
Направи Scratch програм који захтева од корисника да унесе произвољан природни број, а затим га обавештава да ли је унео паран или непаран број.
Мала помоћ:
Наше решење можеш да анализираш на адреси https://scratch.mit.edu/projects/171676671/.
Ово нису били сасвим једноставни задаци. Ако имаш потешкоћа у њиховом решавању, спремни смо додатно да помогнемо.
Видео-лекција Одлучивање (гранање) разрешиће твоје недоумице.