Sadržaj
1. Робот Карел - Линијски програми и бројачка петља
1.1. Линијски програми
1.2 Вежбање
1.3. Бројачка петља for
1.4. Квиз
1.5. Вежбање
2. Робот Карел - Условна петља и гранање
2.1. Условне петље
2.2. Вежбање
2.3. Гранање
2.4. Квиз
2.5. Вежбање
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. Вежбање
7.6. Израчунавања - додатни задаци
8. Израчунавања - Цели и реални бројеви, дељење
8.1. Цели и реални бројеви
8.2. Реално и целобројно дељење
8.3. Позициони запис бројева
8.4. Квиз
8.5. Вежбање
8.6. Цели и реални бројеви, дељење - додатни задци
9. Израчунавања - Коришћење и дефинисање функција
9.1. Коришћење функција
9.2. Дефинисање функција
9.3. Квиз
9.4. Вежбање
10. Израчунавања - Задаци за вежбање
10.1. Израчунавања - задаци за вежбање
11. Гранање
11.1. Гранање
11.2. Комбинација више логичких услова
11.3. Конструкција if-elif-else
11.4. Квиз
11.5. Вежбање
11.6. Гранање - додатни задтак
12. Понављање - петље
12.1. Понављање - петља for
12.2. Понављање - условна петља while
12.3. Угњежђене петље
12.4. Квиз
12.5. Вежбање
12.6. Петље - додатни задтак
13. Контрола тока - Задаци за вежбање
13.1. Контрола тока - задаци вежбање
14. Структуре података
14.1. Торке и листе
14.2. Функције за рад са торкама и листама
14.3. Ниске
14.4. Скупови и речници
14.5. Квиз
14.6. Вежбање
15. Примена петље у структурама података
15.1. Примена петље у торци, листи и ниски
15.2. Учитавање и обрада листе
15.3. Примена петље у речнику
15.4. Квиз
15.5. Вежбање
16. Откривање и исправљање грешака и коришћење дебагера
16.1. Дебаговање на рачунару у програму IDLE

Добро дошли!

Хајде да, као прави програмери, правимо програме уз помоћ тастатуре. Користићемо језик Python (Пајтон), који, као и сваки језик на свету, има свој речник, односно речи помоћу којих састављамо реченице. Ове реченице зовемо наредбе. Одмах на почетку набројаћемо вам занимљивости које ћете открити у овој лекцији:

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

  • Цртаћете уз помоћ пријатеља. Наш програм управљаће малом корњачом која црта оно што замислите!

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

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, а да блокове користиш само као помоћно средство када се заглавиш.

Испробај ту могућност на примеру који смо малопре видели, тако што ћеш коришћењем блокова додати наредбе којe недостају, тако да робот дође до поља (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.

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

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

Наравно, покушај задатак да решиш као прави профи програмер: писањем програмског кода, а не слагањем блокова!

Prethodna lekcija
Sledeća lekcija
A- 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.