Запустите готовую программу из учебника с адреса:
code/01/Средний балл.sb2
Проверьте работу кода на разных вариантах экзаменационных ведомостей (два тестовых и трёх настоящих):
| 1 | code/01/test1.txt | 1 | 4 |
| 2 | code/01/test5.txt | 4 | 4 |
| 3 | code/01/Ведомость1.txt | 20 | 3.55 |
| 4 | code/01/Ведомость2.txt | 30 | 3.733333 |
| 5 | code/01/Ведомость3.txt | 50 | 3.7 |
Что мы узнали
— это ячейка памяти, которая имеет имя и значение (которое может меняться).
Переменные разделяют на простые и сложные . Значение простой переменной одиночное . Сложные переменные содержат несколько значимых полей , определённым образом связанных между собой. К сложным переменным относят массивы , называемые в Скретч списками .
Создание списка в Scratch
Переменные можно разделить на локальные и глобальные.
Локальная переменная — это переменная (простая или массив), доступная в скриптах только одного спрайта.
Глобальная переменная — это переменная (простая или массив), доступная всем исполнителям (то есть всем спрайтам и сцене).
Если переменную использует один исполнитель, она должна быть локальной.
Ввод/вывод данных
Чтение из файла и запись в файл
Алгоритм просмотра элементов массива
Алгоритм подсчёта элементов массива по условию
счётчик ← 0 i ← 1 ПОКА НЕ i > длина(массива) < Обработка элемента i ← i + 1 >ЭТО Обработка элемента ЕСЛИ i-ый элемент массива удовлетворяет условию ТО счётчик ← счётчик + 1 КОНЕЦ
Алгоритм нахождения суммы элементов массива
сумматор ← 0 i ← 1 ПОКА НЕ i > длина(массива) < Обработка элемента i ← i + 1 >ЭТО Обработка элемента сумматор ← сумматор + i-ый элемент массива КОНЕЦ
Источник: robotlandia.ru
Списки в Скретч: полезные игры
С ребятами начальной школы переменные в проектах Скретч мы используем не очень часто и по минимуму, а списки — тем более. Однако, наступает тот самый момент, когда дети сами формулируют задачу, где можно и нужно использовать переменные или списки. И тогда начинается мотивированное погружение в проблему, детальное её изучение со всех сторон, поскольку возникшая идея требует реализации в самом что ни на есть лучшем виде, как бы это сложно ни оказалось. Таким образом мы освоили отрицательные и дробные числа, к примеру. А вот жизненный вопрос о склонениях и спряжениях, который выводит на проблемную задачу. Обратившись к приложению для сёрфинга в одной из известных соцсетей, мы можем заметить, что сообщения о посещении ресурса зарегистрированными пользователями система не всегда строит корректно:
Функция «Списки» | Уроки по Scratch | UP! School #92

Несколько месяцев назад эти сообщения выглядели ещё более безобразно, например: «31 минуты назад». Понятно, что есть несколько вариантов сообщений для разных значений времени, которые можно объединить в определённые категории. Но почему-то разработчики приложения не спешат вносить изменения в программу.
Оставим это на их совести и обратимся к действиям младших школьников, которые иногда бывают очень ответственными и целеустремлёнными. Программа «Угадай число» была составлена мной изначально в самом простом варианте: нужно угадать число от 1 до 10.
Дети в начале занятия запускают проект на весь экран (чтобы не видеть кода), прогоняют его несколько раз, начинают соревноваться: кто быстрее угадает. Тут же вырабатывается и тактика игры (но элемент везения никто не отменял!). Дальше мы обсуждаем, что должно быть в коде и как сделать подсчёт числа попыток угадывания.
В результате программа у ребят получается более развёрнутая, чем та, которую я предлагала им в начале. Кто-то предлагает усложнить проект и создать несколько уровней для угадывания чисел в разных интервалах. А кто-то подсчитал число попыток, совершаемых для угадывания, и выводит на экран значение переменной.
Вот тут-то мы и выходим на задачу, аналогичную той, которая стоит перед разработчиками того самого приложения: как сочетать числительные и существительные. Ребята предлагают такой ход. Пусть k — число попыток. Тогда: если k = 1, то нужно написать сообщение «Ты угадал за 1 попытКУ»; если k = 2, то пишем сообщение «Ты угадал за 2 попытКИ» и т.д. Конечно, это работает, но получается немного громоздко. Тогда можно предложить создать им список:
Источник: www.yanikova.com
Данные в Scratch. Примеры и задачи — Уроки для школьников в Скретч

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

Рассмотрим команды этого ящика:
Задание 1. Создадим мини-игру, в которой на экране в произвольный момент времени будут появляться спрайты (в примере это пингвины). Игроку необходимо быстро нажимать на них, чтобы набрать как можно больше очков. При нажатии на спрайт он будет исчезать на некоторое время, а потом снова появляться. Количество попаданий в спрайт будет считать переменная-счетчик.
1. Создайте новый проект.
2. Выберите героя игры и сцену .
3. Создадим переменную k, которая будет считать количество попаданий. (Ящик «Данные» — Создать переменную — k).
4. «Когда щелкнуть по флажку» спрайт должен «Спрятаться» и переменную k нужно обнулить. Теперь нужно подождать какое-то время, прежде чем появиться. Чтобы это время было случайным используем блок «Выдать случайное число от 1 до 3«.

5. После этого будем повторять одни и те же действия, пока значение на таймере не станет больше 10 секунд. Для этого используем цикл «Повторять пока не таймер > 10«, в котором повторяются действия:
спрайт покажется, подождет 2 секунды и спрячется, затем снова подождет, прежде чем показаться. После того как цикл закончит работу, передаем сообщение о том, что игра закончена (например «конец»)

6. Когда на спрайт нажимают, он должен исчезать и счетчик очков должен увеличиваться на 1.

7. Когда спрайт получит сообщение конец, он должен «Спрятаться«.

8. Добавим еще один спрайт, который появится в конце и сообщит результат игры. При этом «Когда щелкнут по флажку» он должен «Спрятаться«, а когда получит сообщение «конец», должен «Показаться» и сказать результаты, в том числе значение переменной k.
9. Сохраните свой проект под названием «Игра».
Задание 2 . Написать программы для объектов, которые будут двигаться по сцене, меняя скорость перемещения.
Добавим 2 спрайта: кот и краб. Создадим переменную под именем «скорость», доступную для всех спрайтов. Для этого надо нажать кнопку «Создать переменную» или переименовать существующую переменную, кликнув по ней правой кнопкой мыши и выбрав «Переименовать переменную».

Задать переменной значение можно у любого спрайта, второму значение будет доступно автоматически. Скрипты кота:

И для краба:
Теперь если мы захотим поменять количество шагов за один оборот цикла, достаточно сделать это в одном месте. Там, где задается значение переменной.
Когда выполняются команды «идти шагов», то на место переменной «скорость» на самом деле подставляется ее значение. Например, число 10. В результате получается команда «идти 10 шагов», хотя мы этого не видим.
Более того, с помощью арифметических операций можно видоизменить нашу программу. Пусть краб ходит в два раза медленнее кота. То есть, если у кота скорость 10, у краба она должна быть 5. Если же у кота скорость 8, у краба она должна стать 4.

Для этого воспользуемся блоком с делением из зеленого раздела «Операции». Слева от знака деления поставим переменную «скорость», а справа – число 2.
Получается, что хотя скорость одного спрайта отличается от другого, скорости обоих взаимосвязаны через общую переменную.
Усложним нашу программу. Пусть значение переменной «скорость» задает пользователь. Если он нажмет на клавиатуре число 1, то скорость будет иметь значение 5, а если нажмет на клавиатуре число 2, скорость будет иметь значение 10. Если же человек нажмет 0, скорость должна установиться также в 0, то есть спрайты попросту остановятся.

Тут нам потребуются условные операторы, а также цикл «повторять всегда», чтобы программа всегда ожидала ввода с клавиатуры.
Этот скрипт можно добавить любому спрайту.
Таким образом значение переменной может меняться в процессе выполнения программы в зависимости от тех или иных условий.

Обратите внимание на форму блока, который содержит только имя переменной. Это прямоугольник со скругленными углами. Блоки подобной формы есть во многих разделах вкладки «Код». Например, в секции «Движение» это блоки «положение x», «положение y», «направление»:
Подобные блоки можно назвать встроенными в Scratch переменными. В них записываются значения, которые извлекаются из каких-нибудь объектов. Так в переменную «положение x» записывается значение текущей координаты x спрайта. Мы можем извлекать это значение и использовать его в программе.

Допустим, наш кот, находясь на левой половине сцены, будет скручиваться в одну сторону, а когда находится на правой половине – в другую.
Здесь мы используем переменную «положение x», чтобы проверить, находится кот справа или слева. Вспомним, что 0 – это середина холста. Налево идут значения меньше нуля, направо – больше.
Задание 3. Составить программу, вычисляющую периметр прямоугольника.
- Создайте новый проект
- Добавьте спрайт (или оставьте кота)
- Добавьте фон сцены (по желанию)
- Добавьте переменные в Данные: а и b. Где а — длина прямоугольника, b-ширина прямоугольника.
- Для решения этой задачи составьте программу по образцу и протестируйте её работу:

Самостоятельная работа: Составьте программы: 1) на вычисление суммы двух чисел; 2) на умножение двух чисел.
Источник: ars-games.ru