Съдържание
Увод в блоковото програмиране чрез Snap!

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

Увод в блоковото програмиране чрез Snap!

(в който ви представяме структурата на Snap! и основните инструменти за съставяне на програми – блок, скрипт и робот-костенурка)

Какво всъщност е Snap!

Snap! (или Щрак!, както се превежда на български език) е език и среда за блоково програмиране, разработени от Брайън Харви (Brian Harvey) и Дженс Мьониг (Jens Mönig). Неговата структура на програмиране и потребителският интерфейс са вдъхновени от Scratch и ако вече сте програмирали на Scratch, доста неща ще ви бъдат познати, но Snap! е по-мощен от програмистка гледна точка. Той може да се разглежда (според авторите му) като езика Scheme, маскиран като Scratch, а пък ние да добавим и повлиян от образователната философия на Лого. Да сравним една програма за чертане на пентаграм съответно в Scratch, Snap!, Лого и Python (Фиг. 1). Включваме и Python – един от най-разпространените езици за програмиране, особено сред научните среди.

Picture 2

Picture 7

Picture 8

 

Image

Image

Image

Фиг. 1: Програма за чертане на пентаграм, написана на Scratch, Snap!,  Лого и Python

Както виждате първите две програми са съставени от блокчета (като плочки от пъзел), които се свързват чрез щракване (и са представители на т. нар. блоково програмиране). Особено подходящи са за първи стъпки в програмирането, защото ни предпазват от синтактически грешки. Да направим сега първите си стъпки в програмирането на Snap!. Щракваме с пръсти и стартираме Snap! (в любимия си браузър отиваме на адрес http://snap.berkeley.edu/run). Ще видим прозорец, разделен на няколко полета (Фиг. 2):

Image

Фиг. 2: Структура на средата за програмиране Snap!

Да представим първо характеристиките на средата, наследени от Scratch. (Ако вече сте работили със Scratch, може да скочите на следващия раздел.)

Програмата за чертане на пентаграм в Snap! (Фиг. 1) се състои от четири командни блокчета в различни цветове. С тяхна помощ инструктираме Костенурката-робот - главния герой в нашите програми. Тя се намира на Сцената - бялото поле в горния десен ъгъл на екрана и първоначално има форма на стрелка (най-удобната форма за чертане на екрана).

Например командния блок  (напред 10)[1], инструктира Костенурката да се придвижи напред с 10 костенуркови стъпки. Командният блок се стартира, като щракнем с мишката върху него. Намира се в Палитрата с блокове в лявата част на екрана в категорията Движение (Motion). В текста по-нататък ще използваме команден блок и команда като синоними.

Числото 10 (вход на блока) служи за входна информация към блока. Входът е обект от Snap!число, дума, списък. Той може да се променя, като се щракне с мишката върху белия овал. Един блок може да има няколко входа.

Друг команден блок е  (надясно 15), който кара Костенурката да се завърти надясно на 15⁰. Двете команди напред и надясно са в основата на т.нар. Костенуркова геометрия (Turtle Geometry). С тях Костенурката може да начертае доста сложни геометрични фигури и да моделира обекти от изкуството и природата - розетки, фрактали, медни и слънчогледови пити, папрати, дървета. Как става това ще видим в следващите теми.

Костенурката-робот може да приема различни образи и да бъде герой на анимационни филмчета и игри. При това на сцената може да се вихрят няколко костенурки.

Ако искаме командните блокове  да се изпълняват автоматично един след друг, трябва да ги поставим в Полето за скриптове и да ги свържем един под друг с щракване. Така те образуват скрипт. Един проект (или програма) в Snap! се състои от всички скриптове, костенурки-роботи и техните атрибути, които се намират на екрана.

Използвана литература

B. Harvey, J. Mönig, Snap! Reference Manual URL: https://snap.berkeley.edu/snap/help/SnapManual.pdf



[1] за по-голяма яснота, след изображенията на Snap! блоковете, поставяме аналогичната команда в стил Лого на български.