Садржај
1. Робот Карел - линијски програми и бројачка петља
1.1. Линијски програми
1.2. Бројачка петља for
1.3. Квиз
1.4. Вежбање
2. Робот Карел - условна петља и гранање
2.1. Условне петље
2.2. Гранање
2.3. Квиз
2.4. Вежбање
3. Робот Карел - задаци за вежбање
3.1. Робот Карел - задаци за вежбање
4. Корњача графика - линијски програми и петље
4.1. Наредбе корњаче
4.2. Линијски програми
4.3. Петље
4.4. Квиз
4.5. Вежбање
5. Корњача графика - гранање, процедуре, торке/листе
5.1. Гранање
5.2. Угнежђене петље
5.3. Процедуре
5.4. Торке/листе
5.5. Квиз
5.6. Вежбање
6. Корњача графика - задаци за вежбање
6.1. Корњача графика - задаци вежбање
7. Израчунавања - изрази, оператори, променљиве
7.1. Основне аритметичке операције и примена
7.2. Променљиве - имена међурезултата
7.3. Тестирање и дебаговање програма
7.4. Квиз
7.5. Вежбање
8. Израчунавања - цели и реални бројеви, дељење
8.1. Цели и реални бројеви
8.2. Реално и целобројно дељење
8.3. Позициони запис бројева
8.4. Квиз
8.5. Вежбање
9. Израчунавања - коришћење и дефинисање функција
9.1. Коришћење функција
9.2. Дефинисање функција
9.3. Квиз
9.4. Вежбање
10. Израчунавања - задаци за вежбање
10.1. Израчунавања - задаци за вежбање
11. Гранање
11.1. Гранање
11.2. Комбинација више логичких услова
11.3. Конструкција elif
11.4. Квиз
11.5. Вежбање
12. Понављање
12.1. Понављање
12.2. Условна петља
12.3. Угнежђене петље
12.4. Квиз
12.5. Вежбање
13. Контрола тока - задаци за вежбање
13.1. Контрола тока - задаци вежбање
14. Структуре података
14.1. Торке, листе и ниске
14.2. Скупови и речници
14.3. Квиз
14.4. Вежбање
15. Структуре података и петље
15.1. Торке, листе, ниске и петље
15.2. Речници и петље
15.3. Квиз
15.4. Вежбање
16. Откривање и исправљање грешака
16.1. Откривање и исправљање грешака и коришћење дебагера

Добродошли! Ово је ваш први курс текстуалног програмирања. Ове године ћете учити програмски језик Пајтон. Хајде да се на почетку упознамо са садржајем курса:

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

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

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

Желимо вам срећан и успешан рад!

1.1. Линијски програми

Хајде на почетку мало да се играмо тако да кроз игру научимо неке основне појмове програмирања. Одличан начин за то је писање програма за робота који се зове Карел (по чешком писцу Карелу Чапеку, који је измислио реч робот).

Наредбе које Карел разуме

Робот Карел се налази у лавиринту и разуме наредне наредбе

  • napred() - помери се једно поље напред,

  • levo() - окрени се 90 степени налево (у смеру супротном казаљки на сату),

  • desno() - окрени се 90 степени надесно (у смеру казаљке на сату),

  • uzmi() - покупи лоптицу са поља на којем се налазиш,

  • ostavi() - спусти лоптицу на поље на којем се налазиш

Робот Карел разуме и програмски језик Python и, програмирајући га, научићемо неколико основних наредби тог језика. Испрограмирали смо га тако да ради унутар прегледача веба и не мораш ништа додатно да инсталираш да би писао програме за Карела.

Линијски програми

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

Иди до лоптице и узми је

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

Да би дошао на жељено поље робот мора два пута да иде напред, да се окрене на лево, затим опет да иде два пута напред и на крају да покупи лоптицу. То му можемо наредити наредним програмом.

Please try loading this page in HTML5 enabled web browsers. All the latest versions of famous browsers such as Internet explorer, Chrome, Firefox, Opera support HTML5.

(Карел_на_поље_33)

Прва линија програма from karel import * је линија којом почињу сви програми за Карела - остави је таквом каква јесте. Након тога се роботу задаје једна по једна наредба, свака у посебном реду. Иза сваке наредбе роботу наведене су заграде (њих не смемо изоставити). Додатно, свака наредба мора бити у посебном реду и испред наредби не смеш писати размаке. Оваква правила називају се синтаксичка правила и ако се неко од њих не испоштује долази до синтаксичке грешке. Програм не сме садржати ни једну синтаксичку грешку да би исправно радио.

Текст иза знака # представља такозване коментаре. Робот тај текст не чита - написали смо га само да би теби било јасније шта која наредба значи.

У наредном програму има неколико синтаксичких грешака. Ако покушаш да га покренеш добићеш поруку

SyntaxError: bad input on line 4

Примети да је грешка пријављена у линији 4 иако је грешка направљена већ у линији 3, где су изостављене заграде. Ово се често дешава, па када анализираш где је грешка настала, увек провери и линију испред оне која је у поруци о грешци наведена.

Исправи све синтаксичке грешке, па онда покрени програм.

Please try loading this page in HTML5 enabled web browsers. All the latest versions of famous browsers such as Internet explorer, Chrome, Firefox, Opera support HTML5.

(Карел_на_поље_33_грешке)

У претходном програму је свака наредба Карелу била написана у посебној линији. Могуће је задати и више наредби у једној линији, али тада их је потребно раздвојити тачка-запетом (симболом ;).

Please try loading this page in HTML5 enabled web browsers. All the latest versions of famous browsers such as Internet explorer, Chrome, Firefox, Opera support HTML5.

(Карел_на_поље_33_један_ред)

Решење у којем је свака наредба у посебној линији се ипак мало чешће користи (вероватно зато што се такав код лакше чита и мења, ако је то потребно).

Програмирање слагањем блокова

Пошто претпостављамо да већ познајеш програмирање уз помоћ слагања блокова (на пример у програму MIT Scratch или на сајту code.org), омогућили смо ти да прве програме пишеш на два начина: текстом у програмском језику Python или слагањем блокова. Сваки програм написан за робота Карела се може приказати и у облику блокова - довољно је да притиснеш дугме Blockly. Програм састављен од блокова можеш мењати и прилагођавати (можеш променити редослед блокова, додати нове блокове, обрисати неке блокове, променити вредности уписане у неке блокове и слично) и када завршиш дугметом Врати у Python, које се налази у доњем десном углу прозора, тај програм можеш добити написан у језику Python. Ускоро ћеш и сам/сама видети да је писање текста често бржи и ефикаснији начин креирања програма (зато сви професионални програмери своје програме пишу у текстуалним, а не у блоковским језицима), тако да те охрабрујемо да од самог почетка кренеш да програме уносиш куцањем текста у програмском језику Python, а да блокове користиш само као помоћно средство када се заглавиш.

Испробај ту могућност на примеру који смо мало пре видели, тако што ћеш коришћењем блокова додати наредбе која недостају, тако да робот дође до поља (3, 3) и покупи лоптицу.

Please try loading this page in HTML5 enabled web browsers. All the latest versions of famous browsers such as Internet explorer, Chrome, Firefox, Opera support HTML5.

(Карел_на_поље_33_Blockly)

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

Коришћење блокова демонстрирано је и у наредној видео-лекцији.

Пребаци лоптицу на поље (3, 5)

У овом задатку ћемо нашем роботу дати мало компликованији задатак. Потребно је дође до поља (4, 3) на којем се налази једна лоптица, а затим да ту лоптицу пребаци у рупу на пољу (3, 5).

Допуни наредни програм тако да робот изврши дати задатак.

Please try loading this page in HTML5 enabled web browsers. All the latest versions of famous browsers such as Internet explorer, Chrome, Firefox, Opera support HTML5.

(Карел_пребаци_лоптицу)

Ако користиш блокове, на месту на ком треба да додаш нове наредбе добићеш један велики зелени блок који треба да избациш (на пример, да га превучеш до канте за смеће) и да га замениш одговарајућим наредбама. Наравно, покушај задатак да решиш као прави профи-програмер: писањем програмског кода, а не слагањем блокова!

Претходна лекција
Следећа лекција
A- A+

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.