5 КМИТ, тема 5.2. Създаване и използване на собствени блокове или подпрограми, упражнения, работа с категории Оператори и Променливи/ Create My Block in Scratch 3

 ЩЕ УСЪВЪРШЕНСТВАТЕ УМЕНИЯТА СИ ЗА:

- създаване и използване на собствени блокове;
- създаване и използване на подпрограми, които предават стойност.

Подпрограмите идват на помощ
Ваш приятел има нужда от помощ – създава компютърна игра, в която, за да се отключат различни умения на героя, трябва да се въведе код, който представлява сбора на цифрите на случайно генерирано трицифрено число. А учителят по математика ви моли да създадете програма, чрез която лесно да проверявате дали едно трицифрено число се дели на 3. Какво е общото между двата проблема? Помислете как да помогнете за решаването им.

Подпрограми, които предават стойност

Подпрограмите може да предават стойност към останалата част от програмата – например да изчисляват резултат или да генерират текст. В Scratch предаването на стойност се осъществява с помощта на променливи.

Трик за професионалисти: За да предадете стойност от собствен блок към останалата част на програмата, създайте променлива, която да пази стойността. Можете да използвате променливата както в собствен блок, така и извън него.

Откъде да започнете?

- Определете входните данни, които подпрограмата трябва да обработи.
- Задайте подходящо име на подпрограмата и съответния/те параметър/параметри.
- Помислете как чрез деление с частно и остатък на числата 10 и 100 може да намерите цифрите на единиците, десетиците и стотиците на трицифрено число.
- Открийте кои блокове от група Оператори ще ви бъдат полезни.
- Операторът закръгли надолу/нагоре от ... връща цяло число.
- Използвайте променливи за запазване на стойностите на единици, десетици и стотици, както и временен резултат.

Задача: Въведи трицифрено число и ще пресметна сбора на цифрите му.

Анализ на задачата и математически модел
Нека въведеното число е 789.
Цифрата на единиците = остатъка при деление на числото 789 с 10.
Цифрата на десетиците: Първо се намира цялата част при деление на числото 789 със 10 (т. е. 78), а след това – остатъка при делението є с 10 (т.е. 8)
Цифрата на стотиците = цялата част при деление на числото 789 със 100.

Помощ от нас. Внимавайте, кое действие се извършва първо. От това зависи и как влагате блоковете един в друг.
Първо дефинирайте Мой блок с името "Сбор цифри на трицифреното" и в него поле за въвеждане с името "Начално число". Създайте 5 променливи и след това използвайте за дефинирането на блока "Сбор цифри на трицифреното "Начално число"" използвайки блокове от категории/групи Оператори и Променливи. Накрая създайте сценария на Роботко с блок Когато е щракнат зеления флаг, отиди на Х: У: позиция, блок Питай, Блок направи "Въведеното число" на отговор. Идеята е, че променливите са звеното са прехвърляне на информация в кода.
След като направите основната част, може да направите подобрения. Ето нашето предложение. Лесно се виждат разликите.
Добра практика: Препоръчително е да извеждате разбираеми за потребителя съобщения чрез използването на вложени блокове съедини.
Връзка към Скрач ->

Задача: Коледна украса
Роботко има играчка – топка за украса на коледната елха. По неин модел на следващия ден направил една топка, а всеки следващ ден започнал да прави толкова топки, колкото е направил за предишните два дни общо, като се брои и топката, която е модел. Хрумнало му, че може да напише подпрограма, с която да изчислява колко топки щe изработи за даден ден. Пресметнете общия брой топки до даден ден включително?

Анализ на задачата и математически модел
Последователно, чрез цикъл, пресмятате броя на топките за 3-ти, 4-ти, и т.н. ден, докато стигнете до желания ден. Ще ви бъдат нужни две променливи Число 1 и Число 2, които да пазят информация за броя на топките от предходните два дни. Забелязвате, че ако ви интересува n-ти ден, броят на повторенията ще бъде n – 2, тъй като за първите два дни броят на топките е известен. Добавете още една променлива общо, която първоначално има стойност 2 (топките за
първи и втори ден) и след това променяйте в цикъла стойността є с резултата за всеки ден.
Любопитно: Числата, отговарящи на броя на топките през всеки следващ ден, са известни като числа на Фибоначи. Те се откриват навсякъде около нас – в природата, в изкуството, в архитектурата, дори в човешкото тяло!
Помощ от нас:



Връзка към Скрач ->

Задача: Коледни топки
Допълнете проекта Заключен космически град в студиото към учебника, за да се изчислява броят топки, които ще изработи Роботко, като използвате знанията си за редицата на Фибоначи. Използвайте собствения блок фибоначи, който създадохте, и допълнете пропуските в кода.
След това го качете в платформата на Скрач следвайки стъпките File > Load from your Computer 

Код на Роботко
Код на коледните топки
За по-въздействащ проект използвайте блоковете за клонинги, за да визуализирате броя топки, които Роботко ще създаде.

Връзка към Скрач ->.

Задача: Заключен космически град
В студиото към учебника в проекта Заключен космически град, за да отключите вратата за града, е необходимо да намерите трицифреното число, скрито в игралното поле. Съберете цифрите на това число и Роботко ще провери дали сте въвели правилния код. Допълнете кода на Роботко, за да може той да пресмята сбора на цифрите на кода. Довършете кода, като запълните пропуските с
необходимите блокове.
Свалете файлa Заключен космически град.sb3. и го качете в платформата на Скрач.
От къде да започнете?
1. Добавете в проекта собствения блок сбор цифри трицифрено от Раницата.
/трябва да сте го сложили там от проекта за задача "Въведи трицифрено число и ще пресметна сбора на цифрите му"/

2. Извикайте блока сбор цифри трицифрено с параметър променливата код.
3. Във вложените блокове съедини допълнете кода, за да каже Роботко колко е сборът от цифрите на кода.
4. При проверката дали е верен въведеният код, допълнете с променлива, в която сте записали сбора на цифрите на кода.

Трик за професионалисти
Забелязвате ли, че в решението е използвана абсолютно същата подпрограма Сбор цифритрицифрено, която създадохте в първия проект? 
Програмистите обичат да пишат код веднъж, а да го ползват много пъти. Това явление се нарича многократна използваемост на код.
Както вече знаете, в Scratch готов код се пренася чрез Раницата. Използвайте я често! Опитайте се да описвате кода си така, че да можете да го ползвате многократно.

Код на Роботко
Код на спрайта "Код"

Връзка към Скрач ->.

Вижте още уроци от програмирай със Скрач ->.