Занятие №30 "Функции счета"
Иногда нужно отследить, сколько итераций было совершено циклом. Например, если вы хотите дать пользователю только три попытки, чтобы ввести правильный пароль, нужно считать эти попытки и заблокировать ввод после третьей. Вы можете решать подобные задачи программирования при помощи переменной (ее принято называть переменной цикла), которая считает количество итераций.
Проверка пароля

Программа просит пользователя ввести пароль, чтобы разблокировать ноутбук. У спрайта Ноутбук (Laptop) два костюма: картинка с надписью off говорит о том, что ноутбук заблокирован, а картинка с надписью on — что он разблокирован. Пользователь не получит доступа к ноутбуку, если неправильный пароль будет введен три раза.

При нажатии на зеленый флажок спрайт Ноутбук переключается на костюм off и запускает процедуру ПолучитьПароль для авторизации пользователя. Ожидается, что процедура вернет результат проверки пароля в основной скрипт при помощи флага ПолучитьПароль. После этого блок если/иначе проверяет флаг ПолучитьПароль, чтобы определить, нужно ли предоставить пользователю доступ к системе. Если ПолучитьПароль было присвоено значение 1, то есть пользователь ввел правильный пароль, то блок если выполняет команду говорить, которая отображает сообщение «Доступ разрешен» и меняет костюм спрайта Ноутбук на on. Иначе скрипт выводит сообщение «Доступ запрещен!», а спрайт остается в исходном костюме off.
УПРАЖНЕНИЕ 7.4

Откройте программу и запустите ее. Что произойдет, если вы введете «пароЛЬ123» (вместо «Пароль123») в качестве пароля? Что это говорит вам о сравнении строк в Scratch? Попробуйте внедрить процедуру ПолучитьПароль при использовании блока повторять пока не.


Процедура ПолучитьПароль задает для флага ПолучПароль значение 0, чтобы показать, что она пока не получила правильного ответа, и устанавливает для переменной ОшибкаСчета (цикловой перемен- ной) значение 0. Затем она выполняет цикл повторить с максимальным количеством повторов 3. На каждой итерации цикла пользователю предлагается ввести пароль. Если пользователь вводит пароль правильно («Пароль123» для данного примера), флаг ПолучПароль меняет значение на 1, процедура автоматически останавливается путем запуска команды стоп этот скрипт, а затем возвращается к вызывающей ее команде.

Если пользователь еще не израсходовал все попытки, выводится сообщение об ошибке и дается еще один шанс. Если он ошибается трижды подряд, цикл повторить автоматически останавливается, про- цедура возвращается к вызывающей ее команде, а значение переменной ПолучПароль по-прежнему остается 0.
Счет с постоянной величиной шага

Переменные внутри цикла можно изменять не только на 1.
Чтобы увидеть практическое применение этой техники, пред- положим, что нам нужно найти сумму всех четных чисел от 2 до 20 включительно (2 + 4 + 6 + 8 + ... + 20). Именно это и делает скрипт
Этот скрипт сначала инициализирует переменную сумма, присваивая ей значение 0, а переменной подсчет — 2, а затем запускает условный цикл, который повторяется, пока значение переменной подсчет не превысит 20. При каждой итерации к текущей сумме прибавляется значение переменной подсчет, и та увеличивается на 2, чтобы получилось следующее четное целое число в последовательности. Предскажите результат работы этого скрипта, а затем запустите его, чтобы проверить свой ответ.
СЧЕТ С НЕЦЕЛЫМ ЧИСЛОМ ПОВТОРОВ

Как вы думаете, что будет, если попросить Scratch повторить цикл 2,5 раза? В более ранних версия Вы могли бы увидеть как Scratch округляет введенные данные до целого числа. В Scratch 3 такой возможности нет.
Ниже вы можете увидеть как это выглядело в версии Scratch 2
Scratch 3 не позволяет вам вводить такие значения. Вместо того чтобы выдать сообщение об ошибке, он автоматически не позволяет ввести в поле повторить нецелое число.

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