Робот изпълнител. Цикли

И днес ще говорим за цикли. Нека да разберем какво е цикъл и как да научим нашия робот да изпълнява циклични алгоритми.

Така, какво е цикъл? Представете си, че сме в час по физическо и сме изправени пред задача направете 7 клякания. Тази задача може да бъде написана като линеен алгоритъм и тогава ще изглежда по следния начин:

направете клек

направете клек

направете клек

направете клек

направете клек

направете клек

направете клек

Тоест повторихме командата „направете клек“ 7 пъти. Има ли смисъл да пиша 7 еднакви команди? Може да е по-лесно да дадете команда направете 7 клякания? Разбира се, че е по-просто и по-правилно. Това е цикълът. Можете сами да си спомните примери за цикли от живота - има доста от тях.

По този начин линеен алгоритъм, където едни и същи команди се повтарят, можем да организираме като цикличен алгоритъм- така:

повторете 7 пъти

направете клек

край на цикъла

Ето как проектирахме цикъла на езика, който измислихме. Роботът изпълнител също има способността да записва цикли. Освен това, циклите са различни. Опцията, която току-що разгледахме, се нарича цикъл с броячили цикъл с параметър.

Видове цикли.

Примка с контра.

Примка с броячизползва се, когато предварително се знае колко повторения трябва да се направят. В горния пример с кляканията е точно така.

За да напишете цикъл с брояч за изпълнителя, трябва да знаете синтаксиса му. А той е такъв:

nc<брой повторения> пъти

<команда 1>

<команда 2>

<команда n>

Тук трябва да посочим броя на повторенията (брой) и командите, които ще се повтарят. Извикват се команди, които се повтарят в цикъл тяло на цикъла.

Нека да разгледаме това с пример.

Първоначално роботът беше в горната лява клетка.

Нека първо решим задачата линейно. В този случай ще рисуваме текущата клетка и ще преместим 1 клетка вдясно и програмата ще изглежда така:
използвайте робот
алг
начало

боядисайте

точно

боядисайте

точно

боядисайте

точно

боядисайте

точно

боядисайте

точно

боядисайте

точно

боядисайте

точно

Както можете да видите, командите за рисуване и надясно се повтарят 7 пъти. Нека сега пренапишем програмата с помощта на цикъл. Между другото, за да вмъкнете цикъл във вашата програма, можете да отидете в менюто ПоставетеИзбери предмет цък-цък-цъкили натиснете една от клавишните комбинации Esc, P(руска буква R) или Esc, H(латинската буква H). освен това клавишите трябва да се натискат последователно- първо Esc, отпуснете го и чак след това P или H.

И така, ето го нашият циклична програмаще изглежда така:

използвайте робот

nts 7 пъти

боядисайте

точно

Ако го пуснем, ще видим, че резултатът ще е същият – 7 запълнени клетки. Програмата обаче стана по-кратка и много по-интелигентна от алгоритмична гледна точка!

Като загрявка и засилване ви предлагам сами да напишете програма за робота, която ще начертае квадрат със страна 7 клетки. Естествено, с помощта на цикъл. Очаквам решение в коментарите.

Условен цикъл.

При решаване на задача 19 от Държавната академична информатика по компютърни науки с робот, използването на цикъл с брояч няма да работи. Тъй като полето там по правило е безкрайно и стените нямат определена дължина. Следователно няма да можем да определим броя на повторенията за цикъл с брояч. Но няма значение - ще ни помогне цикъл с условие.

Да се ​​върнем към физическото възпитание и да променим проблема. В края на краищата, някой може да не успее да направи 7 клякания, докато друг може да направи 27. Възможно ли е това да се вземе предвид при създаването на цикъл? Със сигурност. Само сега ще използваме не брояч (брой повторения), а условие. Например, преди да се изморите, правете клякания. В този случай човекът няма да прави определен брой клякания, а ще кляка, докато се умори. И нашият цикъл на абстрактен език ще приеме следната форма:

Чао не е уморен

направете клек

край на цикъла

Думите не са уморени в нашия случай - това е условие. Когато е вярно, цикълът се изпълнява. Ако е false (уморен), тялото на цикъла няма да бъде изпълнено. Роботът изпълнител има няколко условия

безплатно отгоре

безплатно отдолу

оставен свободен

свободно вдясно

стена отгоре

стена отдолу

лява стена

стена вдясно

Но в условията на задача 19 от GIA са посочени само първите 4. Така че ще използваме само тях.

Сега нека решим следващата задача за робота - начертайте вертикална линия от лявата до дясната граница на полето с помощта на цикъл с условие. Първоначално Роботът се намира в горния ляв ъгъл.

Нека първо формулираме словесен алгоритъм – тоест да опишем с думи какво трябва да направи Роботът. Този алгоритъм ще звучи по следния начин:

« Докато има свободно място отдясно, направете крачка надясно и оцветете клетката »

В резултат на това роботът ще премине през всички клетки вдясно и ще ги рисува, докато има стена вдясно.

Изходният код на нашата програма за робота ще бъде нещо подобно:

използвайте робот

nts правото е безплатно за сега

точно

боядисайте

В резултат на изпълнението на тази програма ще видим следната картина:

Методическо ръководство за учители по информатика. Евграфова Олга Владимировна, гимназия № 8 Коломна, 2013 г. В процеса на изучаване на предмета „Информатика и ИКТ“ учениците не само усвояват информационна култура (културата на компетентно общуване с компютър, подготовка на документи, електронна комуникация), но и овладяват основите на програмирането. Едно от най-успешните вътрешни разработки в тази област е системата за програмиране Kumir. В него учениците могат да придобият практически умения за създаване и отстраняване на грешки в алгоритъм, работейки с изпълнители Robot и Draftsman. Предимствата на тази система са възможността за писане на команди на руски на училищния алгоритмичен език и яснотата на получения резултат от изпълнението на алгоритъма. Системата KuMir е разработена въз основа на нуждите на руската образователна система. Характеристиките му:      свободно се разпространява; мултиплатформен; нулеви изисквания за ресурси; с подкрепата на Руската академия на науките; Сред разработчиците са авторите на много учебници и учебни помагала по информатика;  безплатната софтуерна обвивка Idol може да бъде намерена на уебсайта http://www.niisi.ru/kumir/. За съжаление, авторите на новите учебници по информатика не обръщат достатъчно внимание или дори игнорират тези изпълнители. В същото време разработчиците на GIA и -1-

стр. 2

Единният държавен изпит включва задачи, използващи данни за изпълнители в задачите на изпитните работи. Темата се изучава в 9 клас в раздел „Алгоритмизация и програмиране”. За изучаване на темата са предвидени 9 часа. Учениците трябва да знаят: какво е изпълнител; SKI Robot, среда на Robot изпълнителя; какво е алгоритъм; кои са основните свойства на алгоритъма; начини за писане на алгоритми: блок-схеми, образователен алгоритмичен език; основни алгоритмични структури: следване, разклоняване, цикъл; предназначение на спомагателните алгоритми. Учениците трябва да могат: да разбират описания на алгоритми на образователен алгоритмичен език; извършване на проследяване на алгоритъм за известен изпълнител; композира линейни, разклонени и циклични алгоритми за управление за изпълнителя на робота; подчертаване на подзадачи; дефинирайте и използвайте спомагателни алгоритми. Тематичен план на урока: № 1. 2. 3. 4. 5. Брой часове Робот изпълнител. Командна система на изпълнителя. Композиция1 0.5 линейни алгоритми. Циклични алгоритми. 3 1 Практическа работа №1. Компилация и отстраняване на грешки на циклични алгоритми. Разклоняване и последователно усъвършенстване на алгоритъма. 2 1 Практическа работа № 2. Компилация и отстраняване на грешки на циклични и разклонени алгоритми. Спомагателни алгоритми и подпрограми. 2 0.5 Ave. роб. номер 3. „Използване на спомагателни алгоритми“. Тест. „Създаване на алгоритъм в средата на изпълнителя“ Тема на урока Практика 0.5 2 1 1.5 1 Материали за уроци по темата „Робот изпълнител на обучение“: -2-

стр. 3

Урок 1. Робот изпълнител. Командна система на изпълнителя. При изпълнение на програма роботът се движи в правоъгълно карирано поле, между клетките на което могат да бъдат разположени стени. Полето се извиква на екрана с помощта на бутона „Прозорец на робота“, който се намира на лентата с инструменти. Поле за програмен код на робота. Роботът може да изпълнява команди-заповеди и команди-въпроси. Команди: надясно, наляво, нагоре, надолу, рисуване. Ако има стена на пътя, командата не може да бъде изпълнена. За директно управление на робота се използва дистанционно управление. Чрез натискане на бутони на дистанционното управление човек дава съответните команди, а Роботът ги изпълнява. За управлението на програмата не е достатъчно да знаете кои команди и в каква последователност трябва да бъдат изпълнени. Също така е необходимо да запишете тези команди в разбираема за компютъра форма, т.е. формулиран като алгоритъм. В най-простия случай алгоритъмът за робот се записва така: Името на алгоритъма е последователност от знаци или думи, разделени с интервали. Първият знак от името не трябва да започва с цифра. Правилни имена: g, сума, псевдоним периметър, 12 април, дванадесети април, число_11_кл. „Правилното“ име ще бъде маркирано в синьо. use Robot alg algorithm_name start последователност от команди con За по-добро разбиране на алгоритъма в тялото на програмата можете да използвате коментари. Коментарите започват с |. Ако коментарите обхващат няколко реда, всеки ред трябва да има знак | в началото. Коментарите нямат ефект върху напредъка на алгоритъма. Пример 1. Програма „Ход на коня“ (преместване на робота от точка А до точка Б). Първоначално състояние: Програма: Резултат: Правилата на алгоритмичния език позволяват няколко команди да бъдат записани на един ред, разделени с точка и запетая. -3-

стр. 4

Пример 2. Трябва да преместите робота от точка А до точка Б. Пътят, който трябва да измине, може да бъде разделен на пет еднакви секции. Удобно е да групирате командите за предаване на всеки раздел в един ред - това съкращава записа на алгоритъма и го прави по-разбираем. Смяна на обстановката Робот. За да принудите робота да действа в нова среда, той трябва да бъде зареден чрез следните команди от главното меню: Изберете елемента „Робот“ „Промяна на началната среда“ Отворете желаната папка и изберете файла. Създаване на нова среда. За да създадете нова среда за робота, трябва да изпълните командите на главното меню: Изберете елемента „Инструменти“ „Редактиране на начална среда“. В прозореца „Настройки“ изберете елемента „Настройки“ „Нова настройка“ Задайте броя на редовете и колоните. Щракнете с мишката, за да инсталирате стени и преместете робота до желаната клетка. Запазете настройката с помощта на командите: “Setting” “Save AS” Посочете името на файла и папката за поставяне. Кликнете върху бутона „Запазване“. Поставете/премахнете стена – щракнете върху границата между клетките. Paint / Make a cell clean - щракнете върху клетката. Добавяне/премахване на точка – щракнете върху клетката, докато натискате клавиша Ctrl. Задайте радиация, етикети - щракнете с десния бутон. Преместете робота - плъзнете с мишката. "Изпълнение" Изпълнение на програмата. “Run continuously” Самостоятелна работа на компютъра: 1. Заредете нова среда, преместете робота до точка “B”, като оцветите точките, отбелязани със символа “точка”: “Работилница за робота” папка “1” задача “ Б” (материали с уебсайта на К. Поляков http://kpolyakov.narod.ru), съставете програма, отворете прозореца на робота и стартирайте програмата за изпълнение. Запазете програмата във вашата папка с името „1_B“. 2. Създайте нова ситуация, запазете я във вашата папка с името “Setting_1”. Съставете програма за новата среда и я запазете във вашата папка с името “new_environment_1”. 3. **Решете други задачи от папка No1 на работилницата. -4- Б

стр. 5

Урок 2. Циклични алгоритми. Цикъл N - пъти. Задача за преглед: Петя създаде алгоритъм за робота „Разходка“. Коля изтри един отбор в него. Определете кой отбор е изтрил Коля, ако е известно, че роботът трябва да се върне в първоначалното си състояние. Отговор: използвайте правилно Robot alg Walk start. нагоре; надясно. ? . надолу; наляво; ляв край N пъти · поредица от команди kc При съставянето на алгоритми често има случаи, когато определена последователност от команди трябва да се изпълни няколко пъти подред. Например пример No2 от предишния урок. За да опростите писането на алгоритъма в такива случаи, можете да използвате командата „Loop N times“. N е цяло число, определящо броя на повторенията. При изпълнение на алгоритъма последователността от команди се повтаря циклично зададения брой пъти. Това число може да бъде нула или дори отрицателно. Тези случаи не се считат за погрешни; тялото на цикъла просто няма да бъде изпълнено нито веднъж и компютърът веднага ще продължи да изпълнява командите, написани след цикъла. Пример 1. Трябва да преместите робота от точка А до точка Б. A B Пример 2. Оцветете ред от 16 клетки. Пример 3. Оцветете правоъгълник с размери 5(редове) x 6(колони). използвайте Robot alg Правоъгълник начало nc 5 пъти cc край Един цикъл може да бъде разположен вътре в друг цикъл. Тогава се нарича вложен. -5-

стр. 6

Самостоятелна работа на компютъра: Пример 4. Да предположим, че трябва да преместите робота от първоначалната позиция до точката, обозначена със звездичка, и да оцветите клетките на лабиринта по пътя. Създайте среда и програма. Запазете файловете във вашата собствена папка. Пример 5. Преместете робота от първоначалната позиция до основата и оцветете клетките, отбелязани с точка. Създайте среда и програма. Запазете файловете във вашата собствена папка. Пример 6. Необходимо е да преведете робота през лабиринта от началната позиция до точка А. Пример 7. Необходимо е да преведете робота по коридора от началната позиция до точка А, като гледате във всеки страничен коридор. Пример 8. Напишете програма за рисуване на клетките на полето, отбелязано с *. Първоначалната позиция на робота е обозначена с иконата ◊. Пример 9*. На полето на изпълнителя има стени. Необходимо е да се намери първоначалната, оптимална позиция на изпълнителя и да се напише програма, резултатът от която ще бъдат запълнени клетки (както е показано на фигурата). **Създаване на програми с помощта на папката “Работилница за робота”_ № 2. -6-

стр. 7

Урок 3. Цикъл Чао. Трябва да се научим как да съставяме универсални алгоритми, които няма да зависят от разстоянията между робота и стената или дължината на стените. За да направим това, ще използваме нов оператор за цикъл. nts, ​​докато условието е поредица от команди kts При изпълнение на цикъла компютърът повтаря следните действия:  проверява условието;  ако условието е изпълнено, тогава се изпълняват командите от тялото на цикъла и условието се проверява отново и т.н.  ако условието не е изпълнено, тогава изпълнението на лявата стена вляво свободно на цикъла е завършено и командите на дясната стена вдясно, свободно написани след cc, се изпълняват. отдолу стената отдолу е свободна  условия на цикъл (команди за въпроси): отгоре стената отгоре е свободна клетката е боядисана над клетката е чиста Бележки.  Ако условието не е изпълнено от самото начало, тогава тялото на цикъла няма да бъде изпълнено нито веднъж!  Цикълът може да не завърши, ако условието е изпълнено през цялото време. Тази ситуация обикновено възниква в резултат на грешки в NC при правилно компилиране на алгоритми. дясно; вляво Пример за безкраен алгоритъм (няма стена вдясно): CC Условията могат да бъдат прости или съставни. Просто условие обикновено е някакъв вид проверка. Пример може да бъде всяка команда за въпрос на робот. Съставно условие се формира от няколко прости условия с помощта на функционалните думи И, ИЛИ, НЕ. Ако има И между простите условия, тогава за да бъде изпълнено сложното условие е необходимо и двете прости да са верни. Ако има ИЛИ между прости условия, тогава за да бъде изпълнено сложното условие е достатъчно поне едно просто условие да е вярно. Пример 2. Пример за робот 1. Педът трябва да боядиса и замени Roklets, посочени от бота към базата. върху изображението. Дължината на стената и разстоянието до стената не са известни. използвайте Robot alg To Base начало. nts горната част е безплатна за сега. . нагоре. kts. засега отгоре има стена. . надясно. kts. нагоре срещу -7-

стр. 8

▪ Самостоятелна работа на компютъра: Някъде в полето на робота има стена под формата на ъгъл, чиито размери са неизвестни. Робот от произволна клетка вляво от стената, но определено срещу нея, трябва да стигне до стената и да нарисува всички клетки по стената зад нея, както е показано на фигурата. ▪ Необходимо е да преместите робота от началната позиция до точка А, докато рисувате посочените клетки на полето. Размерите на стените и разстоянието между тях могат да бъдат произволни. ▪ Създаване на програми с помощта на папката “Работилница за робота”  Папка_4_Задачи_A_C_D  Папка_5_Задачи_A_B_C_D Урок 4. Практическа работа № 1. Циклични алгоритми за робота. Вариант 1 Задача 1. Оцветете клетките, разположени отляво на стената или отгоре на стената. Разстоянието от робота до стената не е известно. Дължината на стените е неизвестна. Създайте настройка и напишете програма. Запазете файловете във вашата собствена папка. P Задача 2. Изпълнител Роботът е разположен някъде в ограничена квадратна област. Дължината на страната на квадрата е неизвестна. Напишете алгоритъм за робота, който рисува всички клетки, разположени по диагонала на квадрат от горния ляв до долния десен ъгъл. Създайте настройка и напишете програма. Запазете файловете във вашата собствена папка. Задача 3. Прехвърлете изпълнителя от клетка А в клетка Б, като оцветите маркираните клетки. Дължината на стените и разстоянието между тях не са известни. Създайте настройка и напишете програма. Запазете файловете във вашата собствена папка. -8-

стр. 9

Задача 4. Необходимо е да преместите робота от начална позиция (◊) до точка А, докато рисувате посочените клетки на полето. Размерите на стените и разстоянието между тях могат да бъдат произволни. Задача 5. На безкрайно поле има стълба. Броят на стъпките може да бъде произволен. Долната хоризонтална стена продължава неограничено надясно, горната хоризонтална стена продължава неограничено наляво. Роботът се намира някъде над долната хоризонтална стена. Оцветете клетките, разположени по вертикалната част на стъпалата (вижте фигурата). Крайната позиция на робота е произволна. Създайте настройка и напишете програма. Запазете файловете във вашата собствена папка. Всяка стъпка има размер от 2 клетки хоризонтално и 2 клетки вертикално. Вариант 2 Задача 1. Напишете алгоритъм за робота, който рисува всички клетки, разположени от лявата страна и над долните страни на правоъгълника и до стената. Разстоянието от робота до стените и дължината на стените са неизвестни. Създайте настройка и напишете програма. Запазете файловете във вашата собствена папка. Задача 2. Изпълнител Роботът се намира някъде в ограничена квадратна зона. Дължината на страната на квадрата е неизвестна. Напишете алгоритъм за робота, който рисува всички клетки, разположени по диагонала на квадрат от горния десен до долния ляв ъгъл. Създайте настройка и напишете програма. Запазете файловете във вашата собствена папка. Задача 3. Прехвърлете изпълнителя от клетка А в клетка Б, като оцветите маркираните клетки. Дължината на стените и разстоянието между тях не са известни. Създайте настройка и напишете програма. Запазете файловете във вашата собствена папка. -9-

стр. 10

Задача 4. Необходимо е да преместите робота от начална позиция (◊) до точка А, докато рисувате посочените клетки на полето. Размерите на стените и разстоянието между тях могат да бъдат произволни. Задача 5. На безкрайно поле има стълба. Броят на стъпките може да бъде произволен. Долната хоризонтална стена продължава неограничено наляво, горната хоризонтална стена продължава неограничено надясно. Роботът се намира някъде над долната хоризонтална стена. Оцветете клетките, разположени по вертикалната част на стъпалата (вижте фигурата). Крайната позиция на робота е произволна. Създайте настройка и напишете програма. Запазете файловете във вашата собствена папка. Всяка стъпка има размер от 2 клетки хоризонтално и 2 клетки вертикално. Урок 5. Алгоритми за разклоняване. Команда „ако _ тогава _ иначе _ всички“ Общ изглед на командата: ако условието тогава действия 1 иначе действия 2 всички Структура на командата: след проверка на условието се изпълняват действия 1, ако условието е вярно, в противен случай се изпълняват действия 2 След това записаните команди се изпълняват след думата всичко. В противен случай разклонението може да липсва (непълно разклоняване). В този случай командата има формата: ако условието, тогава всички действия Ако условието не е изпълнено, тогава всички команди, написани след служебната дума, се изпълняват незабавно. Пример 1. Създайте програма, която води робота през коридор с произволна дължина. По пътя роботът трябва да нарисува всички клетки, които нямат стена отдолу. Броят на дупките е неизвестен. - 10 -

стр. единадесет

Пример 2. Преместете робота до точка B и оцветете клетките, отбелязани с точка. Дължината на стената и броят на "задънените улици" не са известни. използвайте Robot alg To Base start nc докато дясно е свободно надясно ако горната част е свободна след това нагоре рисувайте надолу всички kts надолу con Пример** Изчислете колко защриховани клетки има в коридора (за да направите това, трябва да анализирате допълнителни конструкции: цяло число sch | описание на променлива от целочислен тип sch:= сч+1 | увеличаване на променливата с 1 изход сч | показване на стойността на променливата на екрана Самостоятелна работа на компютъра: Създайте ситуация и решете задача. Задача 1. Създайте алгоритъм за преминаване на робота през околната среда: Задача 2. Създайте програма, в която роботът преодолява произволен брой препятствия и стига до стената. Препятствията могат да бъдат поставени навсякъде. - 11 -

стр. 12

Задача 3. Оцветете клетките, отбелязани с точки. Задача 4. използвайте Robot alg On Base, започнете да рисувате върху nc, докато отдясно е свободно надясно, ако е свободно отгоре, след това нагоре; боядисвам; надолу в противен случай боядисайте всички kts надолу con Задача 5. Боядисайте клетките, разположени до стените. Създайте алгоритъм, който рисува всички клетки, разположени между две стени. Не се знае коя стена е отляво. използвайте Robot alg between_walls start nts докато (не отгоре свободно) или (не отдолу свободно) надясно if (не отгоре свободно) и (не отдолу свободно) тогава рисувайте върху всички kts con използвайте Robot alg uch5 започнете до надясно nts докато не отдолу свободно боядисате; вдясно kts боя върху; надолу nc докато ляво е свободно за рисуване; наляво kts ts докато лявата е свободна за боядисване; надолу kts боя върху; наляво; боядисвам; нагоре; nts, ​​докато горната част е свободно боядисана; up kts ts докато горната част е свободно боядисана; ляво kts con Задача 6**. Роботът е в началото на коридора. Коридорът има задънени краища в горната и долната част с неизвестна дължина, но тяхното местоположение никога не е едно срещу друго. Не е известна и дължината на коридора. Напишете алгоритъм за боядисване на всички задънени улици и излизане от коридора. - 12 -

стр. 13

използвайте Robot alg задънени улици в началото. nts за сега (стена отгоре) или (стена отдолу). . надясно. . ако (безплатно отгоре) и (стена отдолу). . . Че. . . . nts горната част е безплатна за сега. . . . . нагоре; боядисайте. . . . kts. . . . nts все още е свободен отдолу. . . . . надолу. . . . kts. . Всичко. . ако (безплатно отдолу) и (стена отгоре). . . Че. . . . nts все още е свободен отдолу. . . . . надолу; боядисайте. . . . kts. . . . nts горната част е безплатна за сега. . . . . нагоре. . . . kts. . Всичко; . kts; con Командите, маркирани в червено, са необходими за спиране при излизане от коридора. Урок 6. Практическа работа № 2. Циклични и разклонени алгоритми за робота. Решаване на проблеми с помощта на CMM GIA. Коментирайте. При компилиране на алгоритми задачата трябва да се решава в общ вид, т.е. видът на фигурата се определя, но дължините на страните, броят на стъпките и други параметри могат да варират. Програмата трябва да работи за всяка фигура с подобен външен вид! Задача 1. Създайте ситуация и напишете алгоритъм, който рисува всички клетки, разположени вдясно от вертикалните участъци на стената. използвайте Robot alg задача 1 стартирайте надолу; надясно. nts горната част е безплатна за сега. . боядисвам. kts. nts все още не са освободени отгоре. . надясно. kts. нагоре. nts все още не е свободен отляво. . боядисвам; нагоре. kts con - 13 -

стр. 14

използвайте Robot alg задача 2 в началото. nts правото е безплатно за сега. . надясно. kts. nts все още не са свободни отдясно. . нагоре. kts. надясно. nts все още не са свободни отдясно. . боядисвам; надясно. kts con Височината на всяка стъпка е един квадрат, ширината е 2 квадрата. Задача 2. Напишете алгоритъм, който рисува всички клетки над стъпките. Задача 3. Оцветете всички клетки, разположени над стъпалата на стълбите, слизащи отляво надясно. използвайте Robot alg задача 3 в началото. nts все още е свободен отдолу. . надолу; наляво; наляво. kts. nts все още не е свободен отляво. . боядисвам; надясно. . боядисвам; надясно. . надолу. kts con Задача 4. Оцветете клетките на лабиринта. използвайте Robot alg Начало на лабиринта. надясно. засега има стена вдясно. . боядисвам; нагоре. . боядисвам; нагоре. . боядисвам; надясно. . боядисвам; надолу. . боядисвам; надолу. . боядисвам; надясно. kts con Задача 5** Изпълнителят е в произволна клетка, но винаги срещу стената (снимката по-горе). В резултат на това трябва да нарисувате клетките, както е показано на фигурата по-долу. - 14 -

стр. 15

използвайте Robot alg Излезте от старта. nts, ​​докато отдясно е свободно отдясно; . kts. nts, ​​докато отдясно стената е надолу; . kts. дясно; нагоре. nts за сега (стена отляво и свободна отгоре) или (стена отгоре и свободна отдясно) или (стена отдясно и свободна отдолу) или (стена отдолу и свободна отляво). . ако (стена отляво) и (свободно отгоре). . . Че. боядисвам; нагоре. . Всичко. . ако (стената е отгоре) и (свободно отдясно). . . Че. . боядисвам; надясно. . Всичко. . ако има стена отдясно и има свободно място отдолу. . . Че. . боядисвам; надолу; . . Всичко. . ако отдолу има стена и има свободно място отляво. . . Че. . . боядисвам; наляво; . . Всичко; . kts; con Урок 7. Помощни алгоритми Когато решавате някои задачи, е удобно да ги разделите на по-малки подзадачи, всяка от които може да бъде формулирана като независим алгоритъм. В този случай първо се компилира така нареченият основен алгоритъм, в който се използват извиквания към спомагателни алгоритми за решаване на подзадачи, които се добавят по-късно. Този метод на решение се нарича метод на последователно прецизиране. Тя позволява на група програмисти да работят по проект, като всеки решава своя собствена подзадача. Командата за изпълнение на спомагателен алгоритъм се нарича извикване и се записва в тялото на основния алгоритъм. В алгоритмичния език основният алгоритъм се записва първо, а спомагателните се записват подред. Пример 1. Разгледайте ситуацията от урок №1. Роботът трябва да бъде преместен в клетката, маркирана с точка. използвайте Robot alg Corridor start bypass; Околовръстен път; Околовръстен път; Околовръстен път; байпас con alg стартиране на байпас; нагоре; долу вдясно; надолу; десен con - 15 -

Робот изпълнител. Помощни алгоритми(2 часа)

Мишена: въведе понятието основен и спомагателен алгоритми; обясняват правилата за използване на спомагателния алгоритъм; анализирайте примери за алгоритми, като използвате спомагателни. Да се ​​развият практически умения за конструиране на алгоритми, използвайки метода на последователното усъвършенстване.

План на урока

1.Въвеждане на нови термини (основни и спомагателни алгоритми, извиквания) и обяснение на нови понятия.

2. Анализ на примери за решаване на проблеми с помощта на спомагателен алгоритъм.

3. Практическа работа

Когато решавате някои проблеми, е удобно да ги разделите на по-малки подзадачи, всяка от които може да бъде формулирана като независим алгоритъм. В този случай първо се компилира така нареченият основен алгоритъм, в който се използват извиквания към спомагателни алгоритми за решаване на подзадачи, които се добавят по-късно. Това решение се нарича метод на последователно усъвършенстване. Тя позволява на група програмисти да работят по проект, като всеки решава своя собствена подзадача.

В процеса на решаване на задача всеки спомагателен алгоритъм може, ако е необходимо, да бъде разделен на по-малки спомагателни алгоритми.

Извиква се командата за изпълнение на спомагателния алгоритъм предизвикателство и се записва в тялото на основния алгоритъм.

Същият алгоритъм може да се счита за основен и спомагателен по отношение на други алгоритми. В алгоритмичния език основният алгоритъм се записва първо, а спомагателните се записват подред.

Задача 1:

Роботът е в горния ляв ъгъл на полето. Няма стени и изписани килии. Създайте алгоритъм, използвайки спомагателен, който рисува четири кръста на една хоризонтална линия. Крайната позиция на робота може да бъде произволна.

Решение

Анализ на дъската:

Задача 2. Роботът е в горния ляв ъгъл на полето. Няма стени и изписани килии. Създайте алгоритъм, който рисува в шахматна дъска квадрат с размери 8 x 8. Крайната позиция на робота може да бъде произволна.

Практическа работа на компютър „Решаване на проблем с помощта на спомагателни алгоритми“

Проблем 1 . Роботът е в долния ляв ъгъл на полето. Няма стени и изписани килии. Създайте алгоритъм, който рисува 6 вертикални ивици с еднаква дължина в 6 клетки. Крайната позиция на робота може да бъде произволна.

Проблем 2 . Използвайки помощните, създайте алгоритъм за боядисване на клетките, които образуват числото 1212.

Домашна работа : Измислете алгоритъм, който рисува следното изображение: За да разрешите проблема, използвайте два спомагателни алгоритъма.

Образователна програма на избираемия курс „Развитие на алгоритмичното мислене чрез решаване на проблеми” (за ученици от 5-6 клас). Срок на изпълнение: 4 месеца. Автор на програмата: I.G. Шуплецов Рецензенти: методически съвет на средно училище № 13 на MBOU, 2012 г. Обяснителна бележка А. П. Ершов описва оперативния стил на мислене - способността да се планира структурата на действията, необходими за постигане на цел, като се използва фиксиран набор от средства. Алгоритмичното мислене включва разбиране на същността на основните алгоритмични структури: следване, разклоняване, цикъл, извикване, както и способността за ефективно използване на тези структури при съставяне на прости алгоритми и изграждане на сложни алгоритми, базирани на прости. Структурните компоненти на алгоритмичния стил на мислене включват: способността за формализиране на проблем, разбиране и способност за изпълнение на елементарни алгоритмични операции, избор на оптимален начин за постигане на цел. Способността за изграждане на алгоритми е уместна от гледна точка на предметната дейност в много области на знанието и дейността на учениците. Изборът на решаване на проблеми в среда KuMir се дължи на факта, че те ви позволяват ясно да демонстрирате алгоритми, което развива алгоритмични умения и алгоритмично мислене въз основа на визуалните действия на изпълнителите. Учениците от 5-6 клас са мотивирани да използват изпълнители на KuMir среда. Те са лесни за използване за тях и командната система на тези изпълнители е ясна и лесна за използване за тях. Учениците с ентусиазъм създават прости алгоритми и ги демонстрират на учителя и един на друг. Видимостта на действията на изпълнителите позволява лесно да се следи изпълнението на алгоритъма и да се правят корекции в него, ако е необходимо. Курсът „Развитие на алгоритмично мислене чрез решаване на задачи” е с практическа насоченост. Студентите самостоятелно овладяват средата KuMir и техниките за решаване на проблеми въз основа на предложените технологии и анализирани примери. Учителят индивидуално помага при възникване на затруднения и записва решените проблеми, а също така предлага оптимални варианти за решаване на проблеми. Курсът се предлага за изучаване в училища, които разполагат с необходимото учебно, методическо и техническо оборудване. Предназначен е за ученици от 5-6 клас, които имат основни умения за работа с операционна система WINDOWS. Този курс може да бъде продължен с курс по основи на програмирането и дистанционен курс за решаване на олимпиадни задачи на уебсайта http://www.acmu.ru за заинтересовани ученици от 78 класа. Темата „Алгоритмизация” се изучава в 4-та четвърт на 6-ти клас. Така до този момент студентите ще могат да овладеят използването на средата KuMir и интуитивните алгоритмични проекти, което ще им позволи успешно да изучават теорията на алгоритмизацията и лесно да я прилагат на практика. Курсът „Развитие на алгоритмичното мислене чрез решаване на задачи“ е предназначен за 17 часа, по време на които студентите ще могат интуитивно, когато решават задачи на компютър, да овладеят основните алгоритмични структури: следване, разклоняване, цикъл, извикване на спомагателен алгоритъм, за ефективно компилиране на алгоритми. 1 Този курс може да бъде първата стъпка за по-нататъшно изучаване на програмиране и избор на посока на обучение, свързана с информационните технологии. Цели и задачи на дисциплината Целта на дисциплината:  да разшири знанията на студентите по предмета „Информатика и ИКТ”;  развиват алгоритмичното мислене на учениците чрез създаване на алгоритми за решаване на проблеми. Цели на курса:  да запознае студентите на практика със средата KuMir;  разгледайте основните възможности на най-популярните изпълнители „Робот” и „Чертожник”;  научите използването на основни алгоритмични структури: следване, разклоняване, цикличност, извикване. Технология на тренировъчни сесии. Контролните занятия се провеждат под формата на практическа работа. В началото на урока (5 минути) учителят поставя целта на този урок за учениците и напомня резултатите на всеки ученик, които е постигнал до този момент и какви задачи трябва да реши в този урок. Учениците съставят алгоритми на компютър, изпълняват ги, проследяват междинните резултати и докладват на учителя за решението на задачите. Студентите могат да си помагат при решаването на проблеми. Тези задачи, които не са решени в клас, могат да бъдат решени като домашна работа и проверени в следващите часове. Учителят проверява решената задача и записва решението й в дневника. В края на урока (5 минути) се отбелязват учениците, които имат най-голям брой решени проблеми, идентифицират се трудностите, срещани от учениците, които не са решили проблемите, и се предлагат и обсъждат начини за преодоляването им. В началото и в края на урока се преглеждат оценките на всички ученици, което ви позволява да организирате състезание между учениците. Календарно-тематичен план No на урок Тема на урока 1 2 3 4 5 Запознаване със системата КуМир. Разрешаване на проблем. Робот изпълнител. Разрешаване на проблем. Съставяне на линейни алгоритми. Разрешаване на проблем. Съставяне на линейни алгоритми. Разрешаване на проблем. Примери за спомагателни алгоритми. Съставяне на спомагателни алгоритми. Разрешаване на проблем. Съставяне на спомагателни алгоритми. Разрешаване на проблем. Пример за цикличен алгоритъм. Съставяне на циклични алгоритми. Разрешаване на проблем. 6 7 Брой часове 1 1 1 1 1 1 1 2 8 9 10 11 12 13 14 15 16 17 Пример за разклонен алгоритъм. Компилация на разклонени алгоритми. Разрешаване на проблем. Изпълнител чертожник. Разрешаване на проблем. Команда за придвижване до точка. Съставяне на линейни алгоритми. Разрешаване на проблем. Команда за преместване по вектор. Съставяне на линейни алгоритми. Разрешаване на проблем. Команда за преместване по вектор. Съставяне на линейни алгоритми. Разрешаване на проблем. Съставяне на спомагателни алгоритми. Разрешаване на проблем. Съставяне на спомагателни алгоритми. Разрешаване на проблем. Съставяне на циклични алгоритми. Разрешаване на проблем. Съставяне на циклични алгоритми. Разрешаване на проблем. Обобщаване. Студентски рейтинг. Разрешаване на проблем. Общо 1 1 1 1 1 2 1 1 1 17 Съдържание на учебния материал Въведение в системата KuMir. Зареждане на системата KuMir. Назначаване на изпълнителя Робот. Командна система за изпълнител на роботи. Редът на писане на алгоритъма. Процедурата за създаване на роботно поле. Изпълнение на алгоритъма. Проследяване на резултатите от изпълнението на алгоритъма от робота. Писане на първия алгоритъм. Съставяне на линейни алгоритми. Разрешаване на проблем. Спомагателен алгоритъм. Два примера за спомагателни алгоритми. Команда за извикване на спомагателен алгоритъм. Записване на спомагателен алгоритъм. Два случая, в които се използват спомагателни алгоритми. Съставяне на спомагателни алгоритми. Разрешаване на проблем. Цикличен алгоритъм. Пример за цикличен алгоритъм. Цикъл с определен брой повторения, команда Loop N пъти. Съставяне на циклични алгоритми. Разрешаване на проблем. Алгоритъм за разклоняване. Два примера за разклонен алгоритъм. Команда Ако. Пълна и непълна форма на командата if. Условия в разклонен алгоритъм. Компилация на разклонени алгоритми. Разрешаване на проблем. Изпълнител чертожник. Системата от команди за чертожника. Писане на алгоритъм за чертожник. Целта на командата е да се придвижи до точка. Пример за алгоритъм с команда за придвижване до точка. Процедурата за създаване на чертеж и писане на алгоритъм за изпълнителя Draftsman. Съставяне на линейни алгоритми. Разрешаване на проблем. Изпълнител чертожник. Пример за алгоритъм с команда за преместване с вектор. Процедурата за създаване на чертеж и писане на алгоритъм с командата за преместване към вектор за изпълнителя Draftsman. Съставяне на линейни алгоритми. Разрешаване на проблем. Пример за спомагателен алгоритъм. Съставяне на спомагателни алгоритми. Разрешаване на проблем. Пример за цикличен алгоритъм. Съставяне на циклични алгоритми. Разрешаване на проблем. Очаквани резултати от усвояването на дисциплината Курсът позволява на студентите да се запознаят с: Елементите за зареждане и интерфейс на програмата KuMir. С реда за извършване на някои действия в програмата KuMir. С назначаване на изпълнител Робот. С назначаване на изпълнител Чертожник. 3 С основни алгоритмични структури: следване, разклоняване, зацикляне, извикване. С реда за създаване и изпълнение на алгоритми. С изчисляването на стойността на векторите по клетки, като се използват проекции върху координатните оси. По време на учебния процес учениците придобиват умения за: Създаване и изпълнение на алгоритми. Алгоритми за запазване и зареждане. Прилагане на различни алгоритмични дизайни за ефективно решаване на проблеми. Построяване на чертежи върху координатна равнина. Условия за провеждане на курса 1. 2. 3. 4. 5. 6. 7. Компютърен клас 12 комп. Локалната мрежа. Демо екран. Принтер. Хартия за принтер А4. KuMir среда е свободно разпространяван софтуер. Дидактически материали. Препратки Leonov A.G. Овладейте KuMir за 6 часа. - Москва: Информатика, приложение към вестник 1 септември, № 24, 2010 г., № 2, 2011 г., Кушниренко А.Г. Основи на информатиката и компютърните науки: Проб. учебник за средно учебник заведения A.G. Кушниренко, Г.В. Лебедев, Р.А. Сворен - 2-ро изд. – М.: Образование, 1991. – 224 с.: ил. Приложение 1 Изпълнител „Робот” Линейни алгоритми Изпълнителят „Робот” се движи в карирано поле от 15 на 10 клетки и рисува клетките. Роботът може да изпълнява следните SKI команди: нагоре, надолу, наляво, надясно, рисуване. Изтеглете програмата KuMir за изпълнителя „Робот” 1. Метод - отворете пряк път на работния плот. 2. Метод – Компютърно устройство C: папка Училищна папка KumirWin файл kumir.exe (приложение). 4 Пример 1 1. Напишете програмата Example1 от клавиатурата в KuMir. 2. Извикайте командата от менюто Инструменти Редактиране на началната среда на робота. 3. Извикайте менюто Помощ за настройките, прочетете действията, извършени при редактиране на настройка, и ги запомнете. 4. Изчистете околната среда и поставете робота в центъра на полето. Затворете настройката без запазване. 5. Извикайте менюто Изпълнение и командата STEP (F8 е клавиш за бърз достъп). 6. Извикайте полето Robot, меню Robot, команда Show Robot window. 7. Натиснете клавиша F8 до края на програмата (докато зелената лента изчезне). Трябва да получите следния резултат. Задача 1 Създайте програма, след която Роботът ще рисува клетките, подредени в шахматен ред с дължина на страната 3 клетки. 5 Задача 2 Създайте програма, след която Роботът ще рисува клетките, подредени под формата на ромб с дължина на страната 4 клетки. Задача 3 Създайте програма, след изпълнението на която роботът ще рисува клетките, подредени под формата на пирамида с височина 4 клетки и ще се върне в първоначалното си положение. Задача 4 Създайте програма, след изпълнението на която роботът ще рисува върху клетките, така че да се получи интересна рисунка (например усмихнато лице). 6 Задача 5 Роботът е в началото на хоризонталния коридор (клетка A). Преместете робота до края на коридора (клетка B). Буквите A и B не са поставени в настройката Robot. Задача 6 Роботът е разположен пред входа на вертикален коридор. Роботът трябва да върви по коридора и да излезе от него една клетка. Роботът трябва да рисува клетките, през които преминава. Задача 7 В настройка на робот създайте лабиринт с един изход. Поставете робота в клетката, от която ще излезе от лабиринта. Напишете програма, която ще изведе робота от лабиринта. Задача 8 Роботът трябва да се придвижи от клетка A до клетка B и да рисува клетките, отбелязани с точки. 7 Важно: всички алгоритми, които сте компилирали, са линейни, защото командите в тях следват една след друга от началото до края на алгоритъма. 8



Свързани публикации