Съдържание
Тема 5. Костенурката учи нови думи

Евгения Сендова и Цветелин Андреев

Тема 5. Костенурката учи нови думи

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

Костенурката тръгва на училище

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

Учим костенурката на нови думи, като създадем собствен блок и дефиниция към него. Дефиницията (или описанието) на блока представлява скрипт (закачени едно за друго блокчета). Описанието започва с блок с формата на шапка, следван от командни блокчета. Блокът-шапка определя името, типа и входната информация на нашия нов блок. Командните блокчета, прикрепени към шапката, казват на костенурката какво да прави, когато изпълним новия блок. Когато говорим за редактиране на дефиницията на блок ще използваме като синоними дефиниция, скрипт и описание.

Ето как можете да създадете собствен команден блок, който кара костенурката да начертае квадрат:

1.       Натиснете върху бутона Make a block (направи блок) в долната част на палитрата с блокове.

2.       Изберете име на новия блок. Например square – английската дума за квадрат. Потвърдете с ОК.

3.       В дефиницията, под блока-шапка, поставете блокове, които описват какво да прави костенурката, когато се изпълни блока .

4.       Потвърдете с ОК.

Фиг. 1 Скрипт (дефиниция) на команден блок за чертане на квадрат

 

Демонстрация на дефиниране на команден блок. https://www.youtube.com/watch?v=-lf-oo4ZfxQ

Вие сте на ход

1.      Създайте команда за чертане на триъгълник

Сега лесно може да създадете свой команден блок, който да накара костенурката да чертае триъгълник – например  (триъгълник). Разликата с квадрата е само в броя на повторенията и големината на ъгъла на завъртане.

Упътване:

1.       Отворете проекта за редакция на адрес https://snap.berkeley.edu/snap/snap.html#present:Username=tsvetelin&ProjectName=Turtle%20learns%20new%20words&editMode&noRun

2.       Натиснете бутона Make a block в палитрата с команди.

3.       Въведете triangle за име на новата команда и натиснете OK.

4.       Добавете описанието на триъгълник и го залепете под шапката.

5.       Потвърдете с ОК.

6.       Изпълнете командата , като щракнете с мишката върху нея.

Фиг. 2 Дефиниция на команден блок за чертане на триъгълник

2.      Създайте команда за чертане на къща

Стъпка 1

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

Упътване:

Щом къщата ще се състои от квадрат (основа) и триъгълник (покрив), може да започнете по следния начин:

Стъпка 2

Изпълнете командата , като щракнете с мишката върху блокчето.

Какво се получи – покривът на къщата е паднал! Причината е, че костенурката започва чертането на покрива от основата на къщата. За да вдигнете покрива, поставете костенурката над стените в подходяща посока.

Упътване:

Може да редактирате дефиницията на командата  по следния начин:

3.      Направете улица от къщи

Стъпка 1

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

Упътване:

Опитайте се да опишете улицата, като определите най-напред само броя на къщите, например 12:

Стъпка 2

Изпробвайте новата команда .

Фиг. 3 Първи опит за улица

Резултатът е красива фигура, но не прилича на улица.  Причината е, че къщата не е разтребена – костенурката започва да рисува следващата къща с начална позиция от покрива на предишната.

Стъпка 3

Променете скрипта на блока  така, че костенурката да се върне в началното си положение и посока.

Упътване:

1.       След начертаването на триъгълника, върнете костенурката в начална позиция:

2.       Забележете командата  (напред -40). Тя кара костенурката да измине 40 стъпки назад без да променя посоката си.

Стъпка 4

До тук добре! За да стане истинска улица, костенурката трябва да скочи до мястото на следващата къща, без да оставя следа. Създайте команда  (скочи) и я използвайте в дефиницията на командата , например така:

Стъпка 5

Изпробвайте командата .

Фиг. 4 Улица с къщи

Поздравления! Създадохте няколко собствени блока, което си е цяла програма!

4.      Слънчоглед от къщи?

А ако направите розетка от къщи, на какво ли ще прилича?

Опитайте, преди да проследите нашето предложение.

 Пробвайте сами, преди да продължите.

Упътване:

1.       Дефинирайте командата  (слънчоглед) по следния начин:

Фиг. 5 Розетка от къщи – модел на слънчоглед

Развихрете се

Задача 1

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

Задача 2

Научете костенурката да чертае прозорец като този:

Упътване:

За да смените цвета и дебелината на молива, използвайте блоковете  и , като подадете подходящи входове.

Задача 3

Дефинирайте команди, с помощта на които костенурката да чертае следните фигури и им дайте подходящи имена:

Теми за размисъл

Да учим компютъра

В тази тема видяхме как може да обясняваме нови думи (команди) на компютъра. Ние с вас сме тези, които учим компютъра, а не той нас. Така превръщайки се в учители трябва да внимаваме повече как обясняваме.

Стил на работа

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


 

Програма 1

Програма 2

Част от блоковите команди не са показани за повече прегледност.

 

 

 

Коя от двете ще ви е по-лесно да редактирате така, че да отговаря на новия закон?

Разбира се, че Програма 1. Това е така, защото програмата е разделена на няколко скрипта, описващи блокови команди, които имат ясни имена и правят точно това, което казват имената им. Лесно се вижда, че трябва да се редактира командата , като се промени входа на командата.

Златното правило

В създаването на програми има много правила, които е добре да се следват. Две от тях засегнахме в тази тема – прозрачност по отношение на състоянието на костенурката и разделянето на програмата на подпрограми или блокове (modularity).

Едно от тези правила е и Златното правило – правете това, което искате другите да правят за вас. В конкретния случай: Създавайте такива програми, каквито бихте искали да редактирате или Правете такива програми, каквито бихте искали да ползвате.

Не се страхувайте от грешки

Грешките при програмиране са най-естественото нещо. Важното е да анализирате причината и дори да се върнете към грешния резултат (в случая друга фигура), ако ви е харесал. Търсенето и поправянето на грешки в една програма се нарича на английски debugging – премахване на „буболечките“, а връщането към неочакван резултат, който може да ви е харесал повече от поставената цел – degoaling (поставяне на нова цел).