$$ \newcommand{\floor}[1]{\left\lfloor{#1}\right\rfloor} \newcommand{\ceil}[1]{\left\lceil{#1}\right\rceil} \newcommand{\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{\mmin}{\,\mathrm{\frac{m}{min}}} \newcommand{\smin}{\,\mathrm{\frac{s}{min}}} $$
Hour of Code / Како се програмира?

Како се програмира?

Претходна лекција: Програми и наредбе

Како се програмира?

Погледајте прво овај уводни видео:

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

(Слика преузета са сајта: https://studio.code.org/s/course1/stage/4/puzzle/7 )

Птица не зна како да дође до прасета тако да ми морамо да јој то објаснимо. Ми ћемо јој то објаснити тако што ћамо јој дати неке наредбе које ће она извршавати. Птица разуме наредбе иди лево, иди десно, иди горе и иди доле. Ово је језик који она разуме и ми то зовемо програмски језик. Ако би робот разумео српски језик, могли бисмо да му напишемо овакав програм:

иди десно
иди горе

Програм горе је написан на српском језику, али тешко да робот разуме српски језик. Чешће се користе наредбе написане на неком програмском језику који личи на енглески језик. JavaScript језик који има наредбе сличне енглеском би изгледао овако:

moveRight()
moveUp()

Видите да су наредбе сличне наредбама у претходном програму само су преведене на енглески.

Међутим, пошто птица не разуме ни JavaScript, ми ћемо д ајој дајемо наредбе у облику стрелица горе, доле, лево и десно. Сада ћемо да сложимо ове наредбе и да јој дамо програм у коме су наредбе које треба изврши да бо дошла до свог циља:

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

Замислимо да треба да објаснимо роботу на слици како да дође до две гомиле метала тако што му говоримо да ли иде лево, десно, горе или доле.

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

Робот не разуме слике као љута птица. Језик који он разуме су наредбе: "помери десно", "помери лево", "помери горе" и "помери доле". Стављаћемо наредбе једну иза друге и тако ћемо да направимо програм. Страна за писање програма и решавање проблема је приказана на слици:

Са леве стране видимо проблем који решавамо. Ту видимо где се налази робот и где су гомиле метала до којих треба да дође. У средини видимо наредбе које можемо да користимо (тј. програмски језик који робот разуме). Ове наредбе су блокови које ћемо да слажемо један иза другог. Са десне стране је радни простор у коме пишемо програм који ће робот да изврши. У овом програму слажемо наредбе стављајући их једну испод друге почевши од "Када кренеш" блока.

Када притиснете "Изврши дугме" робот ће да крене од наранџастог блока и извршаваће наредбу по наредбу испод ње.

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

Ако робот успе да дође до обе гомиле помоћу програма видећемо овакву поруку:

Ако кликнете на дугме "Настави" прећи ћете на нови проблем који можете да решите.

Домаћи задатак

Можете да нађете овакве примере са ББ-8 роботом на сајту часа програмирања https://studio.code.org/s/starwarsblocks/stage/1/puzzle/1. Идите на ову страну, пробајте да решите проблеме и помогнете ББ-8 роботу да покупи метал.

Када увежбате неке од ових проблема, идите у секцију са тестовима и проверите своје знање.

Када пробате неке од ових примера, погледајте наредну лекцију - Линијски програми и љуте птичице.