Занятие №12 "Как присвоить пользовательским блокам новые параметры"
Как присвоить пользовательским блокам новые параметры?
Давайте для начала создадим блок под названием Квадрат, который рисует квадрат со стороной 100 пикселов
Процедура Квадрат имеет ограниченные возможности, поскольку размеры квадрата, который она рисует, были однажды зафиксированы раз и навсегда. А что если вы хотите рисовать квадраты с разной длиной сторон, например 50, 75 или 200? Вы могли бы сделать несколько пользовательских блоков и назвать их Квадрат50, Квадрат75 и Квадрат200, но обычно много блоков, делающих практически одну и ту же работу, не лучший вариант. Если вам нужно будет что-то изменить, придется отслеживать все копии и менять их тоже. Более удачное решение — сделать один блок Квадрат, который позволит пользователю указать желаемую длину стороны, а затем запустить его.

Итак, нужно добавить блоку Квадрат поле, куда пользователь сможет вводить длину стороны. Рисунок ниже показывает, как нужно модифицировать блок.
Для начала кликните правой кнопкой мыши по блоку Квадрат из раз- дела Другие блоки (или блоку определить Квадрат в поле скриптов) и выберите из выпадающего меню графу редактировать, чтобы вызвать диалоговое окно Редактировать блок. Кликните по маленькой стрелочке рядом с графой Параметры, чтобы развернуть окно и увидеть доступные варианты.

Мы хотим, чтобы пользователь вводил желаемую длину стороны для квадрата. Эта длина — цифра, так что кликните по Добавить числовое поле. В блоке появится числовое поле под названием Номер1.

Чтобы обозначить, что новое поле будет показывать длину стороны квадрата, измените его исходное название на что-то более осмысленное, скажем длина или длина стороны. (Повторюсь, для Scratch неважно, каким названием вы пользуетесь, это существенно для вас! Выберите то, которое отражает суть параметра.) Для примера используем слово «сторона».

Технически это всё, что нам нужно сделать, чтобы добавить числовое поле в нашу процедуру. Нажав OK, мы получим блок Квадрат с числом в качестве дополнительной информации. Мы могли бы перетащить его в наши скрипты и указать нужную длину стороны в числовом поле, как у блока Квадрат50. Но как пользователь узнает, что означает номер, присвоенный Квадрату? Может, площадь 50, диагональ 50 или длина стороны 50, а может, вообще что-то другое? Представьте себе, что блок плыть устроен так.
Как бы вы узнали, что первое цифровое поле — время (в секундах), а второе и третье — координаты x и y точки назначения? Создатели Scratch сделали блок плыть более простым для понимания и использования, добавив полям названия.
Сделаем то же и для блока Квадрат: добавим текст, который описывает значение (или функцию) числового поля. Кликните по Добавить строковое поле x, чтобы добавить название параметру длины стороны квадрата. Впишите в качестве описания поля слово шагов и нажмите OK.
Теперь, если вы посмотрите на определение процедуры Квадрат в поле скриптов, вы увидите, что к его шапке добавился маленький блок (под названием Сторона). Блок идти сохраняет фиксированный показатель 100, но теперь нам достаточно перетянуть блок Сторона из шапки и отпустить его над цифровым полем блока идти, чтобы заменить число, как показано.
Значок сторона, который появляется в шапке процедуры Квадрат, называется параметром. Вы можете представить себе, что это заглушка с названием.

Мы хотим, чтобы наш скрипт «Квадрат» был способен рисовать квадраты любого размера, поэтому, вместо того чтобы жестко про- писывать в нашей процедуре фиксированное число, мы используем общий параметр Сторона. Пользователи будут указывать конкретное значение. Проиллюстрируем это, изменив скрипт, и воспользуемся новой версией процедуры.
Здесь число 100 (так называемый аргумент) внедряется в процедуру Квадрат. Когда она выполняется, параметру Сторона присваивается значение 100, которое потом используется во всех ситуациях внутри процедуры.

Как вы могли заметить, возможность прописать в алгоритме различные аргументы — мощный инструмент, который добавляет гибкости вашим программам.

Мы можем усовершенствовать процедуру Квадрат, заставив ее принять цвет квадрата в качестве еще одного параметра. Здесь мы добавили второй входной параметр номерЦвета. Он обозначает желаемый цвет квадрата. Теперь процедура будет устанавливать цвет пера согласно указанному номеру, прежде чем начать цикл рисования. Измените блок Квадрат, чтобы внести усовершенствования, как показано на рисунке.

ПАРАМЕТРЫ ИЛИ АРГУМЕНТЫ?

Хотя многие программисты используют понятия «параметр» и «аргумент» как взаимозаменяемые, на самом деле это два разных термина. Чтобы понять, в чем различие, посмотрите на процедуру Среднее внизу, которая вычисляет среднее арифметическое двух чисел.
Параметр определяет дополнительную информацию для алгоритма. Вы запустите процедуру вместе с блоком, показанным слева, и укажете некие значения или выражения в свободных полях. Значения 100 и 50 в при- веденном выше примере называются аргументами процедуры.

Само собой, количество аргументов в процедуре должно соответствовать количеству параметров в определении алгоритма. Когда вы запускаете процедуру Среднее, параметры номер1 и номер2 получают значение 100 и 50 соответственно, потому что позиции аргументов и параметров сочетаются.

Scratch -Учись играя!
This site was made on Tilda — a website builder that helps to create a website without any code
Create a website