ЩЕ УСЪВЪРШЕНСТВАТЕ УМЕНИЯТА СИ ЗА:
- създаване и използване на собствени блокове;
- създаване и използване на подпрограми, които предават стойност.
Подпрограмите идват на помощ
Ваш приятел има нужда от помощ – създава компютърна игра, в която, за да се отключат
различни умения на героя, трябва да се въведе код, който представлява сбора на цифрите на случайно генерирано трицифрено число.
А учителят по математика ви моли да създадете програма, чрез която лесно да проверявате дали едно трицифрено число се дели на 3.
Какво е общото между двата проблема? Помислете как да помогнете за решаването им.
Анализ на задачата и математически модел
Нека въведеното число е 789
Цифрата на единиците = остатъка при деление на числото 789 с 10
Цифрата на десетиците: Първо се намира цялата част при деление на числото 789 със
10 (т. е. 78), а след това – остатъка при делението ѝ с 10 (т.е. 8)
Цифрата на стотиците = цялата част при деление на числото 789 със 100.
Подпрограми, които предават стойност
Подпрограмите може да предават стойност към останалата част от програмата – например да изчисляват резултат или да генерират текст.
В Scratch предаването на стойност се осъществява с помощта на променливи.
Трик за професионалисти
За да предадете стойност от собствен блок към останалата част на програмата, създайте променлива, която да пази стойността.
Можете да използвате променливата както в собствен блок, така и извън него
Откъде да започнете?
- Определете входните данни, които подпрограмата трябва да обработи.
- Задайте подходящо име на подпрограмата и съответния/те параметър/параметри.
- Помислете как чрез деление с частно и остатък на числата 10 и 100 може да
намерите цифрите на единиците, десетиците и стотиците на трицифрено число. - Открийте кои блокове от група Оператори ще ви бъдат полезни
- Операторът закръгли надолу/нагоре от … връща цяло число.
- Използвайте променливи за запазване на стойностите на единици, десетици и
стотици, както и временен резултат.
Помислете…
Може ли подпрограмата да се оптимизира, като се сведе до серия повтарящи се действия?