СЪЗДАВАНЕ И ИЗПОЛЗВАНЕ НА СОБСТВЕНИ БЛОКОВЕ ИЛИ ПОДПРОГРАМИ – 3

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

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

Подпрограмите идват на помощ

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

Анализ на задачата и математически модел

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

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

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

Трик за професионалисти

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

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

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

 

 

  • Операторът закръгли надолу/нагоре от … връща цяло число.
  • Използвайте променливи за запазване на стойностите на единици, десетици и
    стотици, както и временен резултат.

Помислете…

Може ли подпрограмата да се оптимизира, като се сведе до серия повтарящи се действия?