extracted_text:
Урок 1
Операционные системы для смартфонов
Масса   возможностей   в   маленьком   гаджете.   Сегодня   смартфоном
совершенно   никого   не   удивить.   Эти   гаджеты   предоставляют   массу
возможностей. Можно слушать музыку, просматривать видео и даже целые
фильмы,   выходить   в   интернет,   посещать   социальные   сети,   использовать
навигатор, будильник, калькулятор, фонарик и множество других полезных и
интересных вещей. Чаще всего возможности устройства зависят от модели
или   фирмыизготовителя.   Но   куда   большую   роль   для   пользователя   играет
операционная   система.   Операционные   системы   для   смартфонов   позволяют
нам раскрыть весь потенциал гаджета. Именно от них зависит качество его
использования.
Различают   три   самых   популярных,   известных   и   используемых
операционных систем для смартфонов, а именно: ОС Android, IOS и Windows.
Есть и другие, но встречаются они довольно редко и в основном на китайских
моделях сомнительного происхождения.
Смартфоны с операционной системой «Андроид» Самая известная ОС
для гаджетов в мире. Кроме того, что ОС Android является open source и есть
возможность синхронизации единым аккаунтом, у него есть еще один большой
плюс  Google Play.
Существуют   несколько   видов   площадок   визуальной   разработки
мобильных приложений: 1. App  Inventor  —   среда   визуальной   разработки  androidприложений,
требующая   от   пользователя   минимальных   знаний   программирования
(ai2.appinventor.mit.edu).
2. Thunkable  –  это   браузерная   онлайн   среда   разработки   нативных   и
гибридных мобильных приложений под iOS 9 и выше и Android 4.4 и
выше,   в   основе   которой   лежит   React   Native.   Уникальность   данного
инструмента разработки состоит в том, что он позволяет устанавливать
неограниченное количество приложения на Android и одно приложение
на каждое iOS устройство, например, iPhone. Это достигается за счёт
использования конфигурационного профиля предприятияразработчика
платформы Thunkable, который нужно будет установить в настройках
устройства (thunkable.com).
3. В среде разработки  Sketchware  создание приложений происходит при
помощи графического языка программирования, похожего на  Scratch,
без   написания   кода.   По   этой   причине   интерфейс   и   базовая
функциональность её подобна  App  Inventor  2. Оба этих инструмента
можно использовать  для изучения основ разработки приложений  под
Android, но  Sketchware  предназначен, главным образом, для создания
набросков   проектов,   которые   затем   можно   будет   доработать   при
помощи   написания   кода.   Для   этого   в   нём   есть   функция   получения
исходного   кода   (на  Java  и  XML)   проекта,   который   затем   можно
скопировать, например, в Android Studio (sketchware.io).
Среда MIT App Inventor. Интерфейс пользователя.

 .  mit

 .  edu
 ://   ai   2.   appinventor
MIT  App  Inventor  (http
 /)      облачная   среда
визуальной   разработки   приложений   для   платформы   OS   Android,   работа   в
которой   не   требует   знания   языка   программирования   Java   и   Android  SDK,
достаточно знания элементарных основ алгоритмизации. Для работы в MIT
App   Inventor   необходимо   наличие   Google   или   Google   Apps   аккаунта,   а
построение программ осуществляется в визуальном режиме с использованием
блоков программного кода.
После входа в MIT App Inventor пользователь попадает на страницу, где
отображается список его проектов. Все созданные проекты хранятся в папке
Мои проекты.
Совет: Вновь создаваемое приложение в среде App Inventor это новый
проект (меню Проекты  Начать новый проект). Нажатие кнопки «Удалить
проект» – удаляет созданный  проект. Переход к списку проектов из окна
разработки по по ссылке «Проекты/Мои проекты». Разработка   мобильного   приложения   в   App   Inventor   происходит   в   2
этапа.   Первый   этап      проектирование   интерфейса   пользователя   «Как   это
будет выглядеть», второй  программирование компонент приложения «Как
они будут себя вести».
Рис. 1.1. Конструктор App Inventor
Конструктор   App   Inventor   –   режим   в   котором   создается   интерфейс
(«внешний   вид»)   приложения”.   Данный   режим   используют   для   выбора   и
размещения   различных   компонент   приложения:   кнопок,   текстовых   полей,
изображений и др., которые отображаются на экране вашего устройства, при
запуске приложения.
Интерфейс   для   разработки   дизайна   проекта   состоит   из   следующих
основных элементов:
Палитра включает наборы (группы) компонент будущего приложения.
Компонентами  называются   функциональные   элементы   приложения,
такие   как   кнопки,   изображения,   текст,   поля   для   ввода   текста,   дат,
интерфейсы для подключения к разным датчикам вашего Androidустройства:
акселерометр,   GPS,   базы   данных   и   др.   Некоторые   компоненты   являются
частью графического дизайна, например, кнопки, а некоторые невидимы на
экране устройства, например, таймер, сенсоры или видеоплейер.
Просмотр  –   экран   вашего   приложения.   Точнее   один   из   экранов.   В
приложении можно использовать несколько экранов, где будут производиться
различные   действия.   Например,   на   первом   экране   у   вас   инструкция   к приложению,   а   на   втором   экране,   собственно,   приложение   –   его
функциональная часть.
Компоненты – здесь расположен список компонентов, которые вы уже
используете в своем проекте.
Совет:
При   именовании   компонентов
  рекомендуется
воспользоваться   следующим   правилом   «Имя   компонента»   =   «Название
компонента»   +   «Действие/Функция»,   которое   он   выполняет   в
приложении:   КнопкаНазад,   КнопкаДалее,   ИзображениеФон   и   пр.   Такое
именование   компонент   позволяет   легко   ориентироваться   при
программировании для их действий или событий.
Свойства  – в этой части экрана устанавливаются свойства компонент
вашего приложения, например: цвет, размер шрифта, источники изображений
и звуков, надписи, первоначальное значение и другие.
Медиа  –   список   используемых   медиафайлов   (изображений,   видео,
аудиороликов и т.п.)
Совет:  Мобильное приложение – это не тот случай, когда в него
внедрены   фильмы   или   большие   коллекции   аудио   записей.   Желание
встроить в приложения большие графические и звуковые файлы, может
привести   к   тому,   что   оно   не   только   будет   долго   загружаться,   но   и
займет достаточно много памяти на самом мобильном устройстве.
Экраны приложения
Проект приложение может состоять из множества экранов. Для работы
с   экраном   «Screen»,   в   окне   разработки   есть   кнопки   добавления   экрана   –
«Добавить Экран» и удаления экрана – «Удалить Экран». Запуск приложения
всегда   начинается   со   стартового   экрана,   дизайн   которого   может   включать
набор компонент для перехода на другие экраны.
Совет:  В   среде   MIT   App   Inventor   количество   экранов   не   должно
превышать   10.   При   создании   11   экрана   выдается   предупреждение   о
превышении допустимого количества экранов. Рис. 1.2. Редактор блоков App Inventor
Редактор блоков используется для программирования поведения вашего
приложения и его компонент, каким образом выбранные вами компоненты,
будут реагировать на различные действия пользователя.
В режиме «Блоки» используются три группы Блоков:
 Основные группы Блоков используемых при создании приложений:
1. Встроенные блоки
Данная   группа   блоков   позволяет   задавать   определенные
действия/функции созданным компонентам.
Управление  – содержит общие для всех компонент блоки ветвления,
цикла, работы с несколькими экранами и пр.
Логика  – содержит блоки для использования  логических функций в
приложении
Математика – содержит набор математических блоков
Текст – включает набор текстовых блоков
Массивы – содержит блоки для работы с массивами/списками
Цвета – определяет блоки по работе с цветами
Переменные  –   блоки,   позволяющие   определять   и   устанавливать
значение глобальных и локальных переменных
Процедуры  – содержит блоки, позволяющие определять процедуры и
функции, с параметрами или без них, внутри приложения.
2. Блоки   действий/событий   для   компонентов   вашего   приложения
(Группа   Screen   1).   Задает   действия   компонентам   конкретного приложения.   При   выделении   нужного   компонента,   отображаются
доступные для него блоки (рис 1.3).
Рис. 1.3. Блоки для компонентов вашего приложения
Конструкции из блоков собираются в поле Просмотр. Урок 2
Виды блоков в App Inventor
Программирование в App Inventor  аналогично  Scratch. Для соединения
блоков   друг   с   другом   предназначены   выступы   (ключи,   выходы)   и   выемки
(замки, входы).
Рис. 2.1. Места соединения блоков
Горизонтальное соединение блоков
Входы   и   выходы,   находящиеся   на   левой   и   правой   стороне   блока,
используются для их соединения с целью обмена данными. Количество входов
в   блоке   показывает,   сколько   параметров   ему   нужно   передать   (количество
блоков присоединить), а количество выходов – сколько параметров он может
передать   другому   блоку.   На   рис.   2.2   блок   в   середине   принимает   два
параметра, а передаёт один.
Рис. 2.2. Передача данных между блоками
Если у блока левом верхнем углу показан значок шестерёнки (средний
блок на рис. 2.2), то это значит, что количество входных параметров можно
изменить.   После   щелчка   по   значку   появится   панель,   в   которой   можно
перемещать   блоки   опций   в   целевой   блок   или   из   него.   В   зависимости   от
наличия или отсутствия горизонтальных входов и выходов блоки могут быть
следующих видов:
 Недоступный (не имеет ни входов, ни выходов);  Только для чтения  (имеет  только  выход)    блок, из  которого
можно только читать данные;
только записывать данные;
 Только для записи (имеет только вход)  блок, в который можно
 Для чтения и записи  (имеет и вход, и выход) – доступные для
чтения   и   записи   данных.   Некоторые   из   этих   блоков   являются
адаптерами   или   преобразователями.   Они   принимают   данные,
производят над ними какието действия и передают дальше.
Рис. 2.3. Виды блоков по возможности работы с данными
За некоторым исключением обмен данными между блоками происходит
справаналево:  блок  слева  принимает  данные  от  блока, присоединённого   к
нему справа. У модели есть одна тонкость. На рисунке показан блок  add
items to list, который, принимает два параметра – list (список) и item (опция).
Этот блок получает текст опции и добавляет его в список. Логичнее было бы
добавить выход, чтобы к нему присоединять список, но его нет, по причине
чего   работу   таких   блоков  следует   воспринимать   следующим   образом:   они
получают входные данные, а действия по обмену данными происходит внутри
них.
Для   успешного   соединения   блоков   необходимо   соответствие   типа
ожидаемого   блоком   параметра   с   типом   передаваемого   им   параметра
(аргумента). Если блок ожидает получить число, а к нему подключают блок,
который возвращает строку, то соединения не произойдёт. В одних случаях преобразование   типов   производится   автоматически,   а   в   других   его   нужно
выполнить   явно   при   помощи   блокаадаптера.   Например,   автоматическое
преобразование   типа   происходит   при   подключении   блока   текста,
начинающегося   с   цифры,   к   входу   index   блока   списка.   Благодаря   этому,
например,   можно   в   одном   слове   передать   сразу   два   параметра   без
использования разделителя, например, так: 12Это строка
Такая   запись   может   указать   на   необходимость   присвоить   элементу
списка с индексом 12 текст «Это строка». Для отделения текста от индекса
нужно найти номер символа от начала строки, который не является числом, а
затем выбрать строку от этой позиции до конца строки.
Подключить   блок   компонента   к   блоку   отображения   всплывающего
сообщения напрямую не получится, потому что первый возвращает объект, а
второй принимает строку. Значит, объект нужно привести к строковому типу.
Для этого блок компонента соединяется с блоком создания списка, который
передаст сообщению строковое представление объекта (рис. 2.4).
Рис. 2.4. Преобразование типа “объект” в тип “строка”
В данном случае блок списка используется не для создания списка, а в
качестве преобразователя типа.
Вертикальное соединение блоков
Входы   и   выходы,   которые   находятся   сверху   и   снизу   блока,
используются   для   задания   порядка   следования   блоков   и,   соответственно,
порядка   их   выполнения.   Этот   порядок   выполняется   сверху   вниз:   сначала
выполняется  самый  верхний  блок,  затем  под ним  и  т.д.  В  зависимости  от
наличия вертикальных входов и выходов блоки могут быть:
 Изолированными  (не   имеют   ни   входов,   ни   выходов)      не
используются в последовательности;
 Начальными
последовательность;
(имеют   только   выход)
  –   начинают
 Сквозными  (имеют   и   вход,   и   выход)   –   могут   использоваться   в
любом месте последовательности;
 Конечными (имеют только вход) – завершают последовательность. Рис. 2.5. Виды блоков по возможности использования в последовательности
Блоки,   внутри   которых   могут   находиться   другие   блоки,   являются
контейнерами.
Итак,   горизонтальные   соединения   блоков   используются   для   обмена
данными между ними, а вертикальные – для задания порядка действий над
данными, например:
 Объявить и инициализировать переменную;
 Сравнить её значение с другим значением;
 Использовать   значение   переменной   в   качестве   индекса   для
получения по нему элемента списка;
 Показать в диалоге выбранный элемент из списка.
Все блоки в App Inventor делятся на блоки компонентов и встроенные
(builtin).   Блоки   компонентов   предназначены   для   работы   с   событиями   и
свойствами   как   видимых   на   экране   компонентов   (виджетов)   –   кнопками,
текстовыми   полями,   флажками,   списками   и   др.,   так   и   невидимыми
компонентами – сенсорами, хранилищами данных, медийными компонентами
и др.
Встроенные   блоки   используются   для   создания   внутренней   логики
приложения   и   выполнения   операций   присваивания   значений   разных   типов,
управления, сравнения, преобразования и др.
Блоки   компонентов   отличаются   тем,  что   в  них   присутствует   поле   с
именем компонента. На рис. 2.5. зелёный блок является блоком компонента с
именем  btnExecute  и  выбранным   свойством  Text.  Это   блок   для   изменения
надписи. Блоки в App Inventor разделены на группы, каждая из которых имеет
свой цвет. Это позволяет определить тип данных, с которыми они работают, и
характер их действий, например, блоки красного цвета работают с текстом, а
фиолетовые относятся к процедурам или выводом сообщений. Определить
точное действие блока помогают надписи на нём.
Функции режима «Блоки»
При   работе   в   режиме   «Блоки»   часто   используются   следующие   его
функции:
 Свернуть/Развернуть блок.
Функция   «Свернуть   блок»   используется   для   оптимизации   места   на
экране, при создании приложений с большим программным кодом.
После   выполнения   функции   “Свернуть   блок”,   конструкция   блоков
принимает следующий вид:
Чтобы развернуть блок, необходимо щелкнуть по конструкции правой
кнопкой мыши и выбрать меню «Развернуть блок»
Также вы можете:
1. Добавлять   комментарий.   Комментирование   блоков   полезно   при
написании   любых   программ,   вы   оставляете   комментарий   для
пояснения   действий   и   событий,   которые   заложены   в   этой
конструкции.
2. Отключить/Включить   блок.
  Данная   функция   может
использоваться при тестировании программ, чтобы не удалять блоки,
когда   вы   сомневаетесь   в   правильности   их   использования.   Вместо
удаления в корзину, на время можно отключить их использование.
3. Удалить блоки. Блоки удаляются без перетаскивания в корзину.
4. Выполнить.   Функция   позволяет   запустить   к   исполнению   любую
часть   кода   и   используется   при   тестировании   программ.   В   этом
случае необходимо иметь подключение к эмулятору.
5. Копирование   блоков.  Копировать   блоков   внутри   экрана,   можно
используя   контекстное   меню.   Для   этого   необходимо   щелкнуть правой   кнопкой   мыши   на   нужной   конструкции   блоков   и   выбрать
«Создать копию»
6. Копировать все блоки или один в рюкзак.
Урок 3
Загрузка и установка приложения на устройство
Разработка приложения происходит в облачной среде MIT App Inventor.
Тестирование   и   отладка   происходит   на   мобильном   устройстве.
Рекомендуется для разработки использовать настольный ПК или ноутбук, а
для отладки и тестирования  мобильное устройство с предустановленным
приложением  MIT App Inventor Companion, которое позволяет считывать
QR код созданного вами мобильного приложения для установки его на ваше
устройство.
Способы загрузки приложения на устройство:
 в исходном коде (файл c расширением .aia)
Исходный   код   в   формате   .aia   позволяет   редактировать   приложение.
Исходный   код   генерируется   со   страницы   проекта   меню   Проекты   /
Экспортировать выбранные проекты (.aia) на Мой компьютер.
 в виде исполняемого файла (файл c расширением .apk) Файл приложения .apk генерируется  в App  Inventor  в  меню Построить
   Приложение   (сохранить   .apk   на   компьютер).   Файл   .apk   является
исполняемым  приложением,  которое работает на устройстве.
 в виде QRкода приложения
Генерируется   с   помощью   команды   меню   Построить   –   Приложение
(создать QR код для скачивания .apk).
Для   считывания   QR   кода   и   установки   приложения   на   мобильное
устройство необходимо установить приложение MIT AI2 Companion App из
Google Play на мобильное устройство. При установке ваших приложений .apk
на мобильное устройство, необходимо разрешить установку приложений из
неизвестных   источников
(Настройки   –   Приложения   –   Неизвестные
источники)
Если у вас есть мобильное устройство с OS Android и WiFi соединение:
1. На мобильном устройстве загрузить и установить из магазина Google
Play приложение MIT AI2 Companion App;
2. Подсоединить   компьютер,   на   котором   вы   работаете   и   мобильное
устройство к сети с доступом к интернету, например, через WiFi;
3. На компьютере открыть проект, который нужно протестировать, и
выбрать в меню Помощник – Помощник AI.
4. На экране компьютера появится QR код вашего приложения 5. Запустить MIT AI2 Companion на мобильном устройстве и нажать
Scan   QR   code.   Через   несколько   секунд   приложение   появится   на
вашем устройстве.
Если у Вас отсутствует мобильное устройство с OS Android?
1. Загрузить и установить специальное программное обеспечение  App
Inventor Setup Software;
2. Запустить aiStarter. aiStarter будет успешно запущен, если
отображается окно следующего вида:
3. Перейти   в   окно   проекта   в   MIT   App   Inventor   и   выбрать   меню
Подключиться – Эмулятор.
Если вы используете USB кабель
1. Подготовить устройство для использования USB (Включить отладку
по USB). На Android устройстве, перейти в меню Настройки системы – Для
разработчиков, и включить пункт меню Отладка USB. На большинстве устройств, работающих под управлением Android 3.2
или старше, выбрать опцию в Настройки – Приложения –Разработка.
На   Android   4.0   и   новее,   это   в  Настройки   –   Функции   для
разработчиков.
На Android 4.2 и старше, Функция для разработчиков по умолчанию
скрыта. Чтобы включить данную функцию, перейдите в меню Настройки – О
телефоне и нажмите номер сборки семь раз. Далее необходимо вернуться к
предыдущему экрану, чтобы найти меню  Для разработчиков, в том числе
«USB Debugging».
2.   Подключить   мобильное   устройство   к   компьютеру.   Подключить
Android устройство к компьютеру с помощью кабеля USB, убедиться, что
устройство подключается как «запоминающее устройство», а не как «медиа
устройство».
На   Android   4.2.2   и   старше,   при   первом   подключении   мобильного
устройства   к   компьютеру   появится   экран   с  сообщением  «Разрешить  USB
отладку», для подключения его к компьютеру нажмите «ОК».
3.   Проверить   соединение.   Убедитесь   в   том,   что   ваш   компьютер
подключен к мобильному устройству.
4. Скопировать файл .APK, сохраненный   на   вашем   компьютере,   в
папку на  мобильном устройстве.
Загрузка .apk файла на мобильное устройство
Загруженный   для   установки   .apk   файл   приложения   хранится   на
мобильном устройстве в каталоге  Download. Доступ к нему можно получить
с помощью приложения «файловый менеджер».
Для разных  OS Andriod  версии одного  и того же приложения могут
перезаписываться   в   различных   вариантах.   Новое   приложение   может   быть
установлено на место старого, или в виде новой версии c модифицированными
именем. Рекомендуется периодически в каталоге Download удалять старые
версии приложения.
Компоненты приложения Рис. 3.1 Перечень компонент приложения
Компоненты приложения размещаются на экране в режиме «Дизайн».
Все компоненты разделены на несколько групп.
 Интерфейс   пользователя  включает   такие   компоненты   как   кнопка,
текст,   флажок,   надпись   и   другие,   которые   позволяют   приложению
взаимодействовать с пользователем.
 Расположение  –   компоненты,   отвечающие   за   макетирование   экрана,
позволяют   размещать   компоненты   интерфейса   пользователя
горизонтально, вертикально, или в ячейки таблицы. В среде MIT App
Inventor нет форматирования, позволяющего задавать интервалы  между
определенными   компонентами,   поэтому   для   макета   и   задания
расстояния
  используются
компоненты   группы   расположения   с   определенными   заданными
свойствами, например высота или ширина.
  между   элементами
  и   пространства
 Медиа  –   компоненты,   позволяющие   задействовать   в   приложении
различные   медиа   инструменты:   устройства,   микрофоны   и   наушники,
камеру, звуки и аудиофайлы и другое.
 Рисование и анимация – группа компонент, позволяющих рисовать или
создавать анимацию в приложении.
 Хранилище  – компоненты, позволяющие передавать значения внутри
приложения  и  сохранять  какиелибо  данные  приложения  на внешнем
устройстве.  Сенсоры – группа невидимых компонент, позволяющих использовать в
приложении   данные,   полученные   с   различных   сенсоров   и   датчиков
мобильного устройства.
 Общение – компоненты, обеспечивающие связь с социальными сетями.
Позволяющие   делиться   информацией,   получать   доступ   к   контактам
устройства и пр.
 Каналы  –   компоненты,   позволяющие   запустить   какоелибо   внешнее
действие из приложения: другое приложения на мобильном устройстве,
камеру, поиск в сети интернет или открыть вебстраницу.
 LEGO   MINDSTORMS  –   компоненты,   обеспечивающие   управление
LEGO MINDSTORMS NXT и EV3 с использованием Bluetooth.
Разрешение экрана
При   работе   в   среде   MIT   App   Inventor   штатное   разрешение   экрана
320х480   пикселей.   Создание   приложения   в   ней   требует   установки   связи
положения и размера каждого компонента с разрешением экрана.
Различные   мобильные   устройства   имеют   разные   разрешения   экранов.
Вид приложения на смартфоне и семидюймовом планшете будет выглядеть
поразному, и на планшете все компоненты могут быть в 1,5 раза крупнее. При
разработке   приложений   для   различных   экранов   лучший   способ   задания
свойств некоторых компонентов в процентах от размера экрана.
Урок 4
Первое мобильное приложение
Рассмотрим   алгоритм   создания   приложения   на   примере   проекта,
имитирующего игральный кубик, который будет выкидывать кубик с нужным
количеством кружков, если мобильное устройство встряхнуть.
Алгоритм работы:
1. Создать Google аккаунт или использовать созданный ранее; 2. Войти в среду визуального программирования MIT App Inventor по
ссылке http://ai2.appinventor.mit.edu/;
3. В окне «Terms of Service» выбрать «I accept the terms of service»;
4. В окне «Welcome to App Inventor 2» выбрать «Continue»;
5. Выбрать язык «Русский»;
6. Создать новый проект «Начать новый проект CubeSensor»;
7. Рабочий   экран   среды   визуального   программирования   будет
выглядеть следующим образом:
8. Перенести   компонент   Изображение   в   окно   экрана   мобильного
устройства,   выбрать  Изображение   –   Загрузить   в   свойствах
компонента.
9. Загрузить графический файл для компонента Изображение. 10. Загрузить последовательно 5 графических файлов (сторон кубика) с
помощью функции «Загрузить файл».
11. Переименовать компонент Изображение1 в СторонаКубика. 12.Выбрать в группе Сенсоры – СенсорАкселерометра и перенести его в
область экрана мобильного устройства. 13. Выбрать компонент Screen1 и установить его свойства «Выровнять
по   горизонтали»,   «Выровнять   по   вертикали»,   «Ориентация
Экрана».
14.  Перейти   в
СенсорАкселерометра1
 режим   Блоки
и
в   меню   справа,

перетащите
  выбрать

блок когда.СенсорАкселерометра1.Вибрация в поле блоков программы.
Данный   блок   будет   запускаться   как   только   устройство   будет
подвержено вибрации.
15.  Выбрать   компонент
 СторонаКубика1  и   перенести   блок
присвоить.СторонаКубика1.изображение
в   поле   блоков
программы.  Данный блок выводит изображение графического файла
на экран мобильного устройства.
16.  Для   изображений   сторон   кубика   (файлы   1.png6.png)   имя   файла
изображения   формируется   с   помощью   функции   “соединить”:
случайное число в диапазоне от 1 до 6 (у нас 6 сторон кубика), плюс
расширение графического файла .png. 17.Выбрать   Математика   Случайное   целое   от   1   до   100   и   установить
значения диапазона от 1 до 6.
18.Добавить   блок
,   и   вписать   туда   текст   «.png»   для
последующего соединения со случайным значением от 1 до 6.
19.Оформить приложение и установить иконку в свойствах компонента
Screen1. 20.  Программа   готова,   необходимо   загрузить   ее   на   мобильное
устройство для этого нажать  Построить – Приложение (Создать
QRкод   для
скачивания. apk)
21.Получить QRкод программы
22.Запустить   на   мобильном   устройстве   MIT   AI2   Companion   App   и
просканировать QRкод приложения
23.  Установить   приложение   на   мобильное   устройство.   После
завершения установки, открыть приложение при помощи иконки на
рабочем столе или в меню «Все приложения». Урок 5
Практические приемы создания приложений
Объекты   (компоненты)   приложения   могут   реагировать   на
определенные события: нажатие на какуюлибо клавишу, щелчок мышью по
объекту, прикосновение к экрану или достижение края экрана и т.п.
После   определенного   события   могут   происходить   какиелибо
действия.   Основным   средством   для   обработки   события   являются   так
называемые   блоки   заголовков:   Когда   кнопка...   Например,   Когда   Кнопка
Шелчок (событие)  проигрывается Звук (действие)
Некоторые события могут не зависеть от пользователя, к ним относятся:
 События таймера;
 События датчика, например, координаты GPS;
 События на устройство, например, входящие сообщения;
 События, связанные с анимацией объектов, например, достигнут край
или происходит наложение объектов;
 Анимация события, такие как два объекта столкновения;
 Вебсобытия, связанные с данными поступающими из сети.
Кнопки
Кнопки   являются   наиболее   часто   используемым   компонентом   и
используются для запуска различных действий.
События,   которые   могут   происходить   с   компонентом   Кнопка   по
инициативе пользователя включают в себя, следующие:
 Щелчок;
 В фокусе;
 Потерян Фокус;
 Долгое нажатие;
 Провести вниз;
 Провести вверх.
Примеры приложений:
Используемые компоненты
 Табличное расположение
 Изображения
 Звуки
 Надпись Приложение «Загадка»
Описание: Приложение в котором, при нажатии на кнопку меняется
изображение на ней.
Приложение «SoundBoard»
Описание: Приложение, в котором, при нажатии на соответствующие
изображения, проигрываются соответствующие звуки.
Примеры приложений «Зоопарк», «Оркестр», «Колокольная галерея». Приложение «Отгадайка»
Описание:   Тестовое   приложение   в   котором,   при   нажатии   на   часть
  соответствующее   данной   части
изображения   выдается   сообщение,
изображения.
Одним из интересных приемов работы с изображением служит скрытое
разделение изображения на части. Изображение, части которого необходимо
выделить   разрезается   на   нужное   количество   частей   с   помощью
http://imagesplitter.net/  Полное изображение, создается из кнопок, каждая их
которых   содержит   отдельный   элемент.   На   основе   таких   приемов,   можно
строить тестовые задания с использованием изображений и кнопок. Приложения с несколькими экранами
Создание   приложения   с   несколькими   экранами   аналогично   созданию
нескольких отдельных приложений.
 Количество   создаваемых   в   приложении   экранов   определяется
разработчиком,   но  не может быть более 10.  По   умолчанию   в
момент создания нового проекта в нем всего один экран.
 Компоненты каждого экрана создаются в режиме “Дизайнер” для
этого экрана. В режиме “Блоки” отображаются блоки, только для
компонент текущего экрана.
 При создании приложений с несколькими идентичными экранами,
используйте функцию копирования блоков между экранами.
 Навигация   (переход)   между   экранами   организуется   с   помощью
кнопок или с помощью действий.
 Каждый   экран,   закрывается   в   случае   перехода   на   другой   или
возвращении на тот, с которого он был открыт.
 Экраны   могут   обмениваться   информацией   путем   принятия   и
возвращения   значений,   когда   они   открываются   и   закрываются.
Экраны могут использовать для хранения и получения с других
экранов данных только с использованием TinyDB, к примеру счет
игры, количество набранных баллов в тесте.
Копирование блоков между экранами
Некоторые приложения могут содержать идентичные экраны, с таким
же набором компонент и аналогичными действиями.
В   этом   случае   есть   возможность   копирования   блоков   программы   с
одного экрана на другой. Алгоритм копирования включает следующие шаги:
1. Перейти в режим Блоки;
2. На экране, перенести нужный набор блоков в «Рюкзак»;
экран;
4. Вновь нажать на Рюкзак и вынести нужные блоки на экран;
5. Скопированные на другой экран блоки отображаются со значками
предупреждения;
3. Перейти на другой
6. После настройки компонент и привязки их к конкретному экрану
знаки предупреждения будут удалены.
Обмен данными между экранами
Способ 1. Использование компонента TinyDB
Компонент   TinyDB   используется   внутри   приложения   для   передачи
данных   между   экранами.   В   этом   их   отличие   от   глобальных   переменных,
которые сохраняются в пределах одного экрана, пока приложение работает.
 Компонент TinyDB очень полезен, поскольку позволяет сохранить
данные   приложения   на   Android   устройстве.   Обычно   такие
небольшие   данные   используются   для   сохранения   настроек
приложения.
  Что   вам   нужно   знать   об   этом   компоненте:
компонент невидимый, он никак не отображается; у вас только
одно   хранилище   данных.   Если   вы   поместите   несколько
компонентов TinyDB, то получите доступ к одному и тому же
набору данных.
 С   помощью   TinyDB   вы   не   можете   получить   доступ   к   данным
другого приложения.
 После того как данные сохранены в TinyDB они останутся там,
пока TinyDB не будет очищено.
Способ 2. Использование функции открытия экрана с начальным значением При передаче данных между экранами можно использовать обработчик
события   для   экрана.   На   экране,   с   которого   нужно   передать   данные,
необходимо в этом блоке указать нужные переменные или значения:
На другом экране можно получить их с помощью функции получить
начальное значение, к примеру при инициализации экрана:
Списки
Использование   списков   в   приложении   позволяет   создавать
нестандартные цвета для компонент и их свойств, создавать записные книжки
для хранения данных: различных фильмов, произведений, телефонов друзе и
многое другое. В некоторых приложениях необходимо вводить переменные.
Переменные
 Переменные   –   это   область   памяти,   в   которой   можно   хранить
какиелибо значения.
 Переменная должна иметь свое уникальное имя, в приложении на
одном   экране   не   может   быть   двух   переменных   с   одинаковыми
именами.
 Переменная   в   приложении   определяется   с   помощью   блока
Инициализировать.
 Информация, хранящаяся в переменной может изменяться.
Локальная переменная  – это переменная, которая инициализирована
внутри функции или она может быть аргументом, переданным в функцию или
процедуру.     Доступ   к   локальной   переменной   возможен   только   к   этим
переменным   в   конкретной   функции   или   процедуре,   в   которой   они   были
заданы или передан в качестве аргумента.
Глобальная   переменная  –   это   переменная,   которая   может   быть
доступна в нескольких областях программы внутри одного экрана. Внутри
программы можно получить текущее значение переменной или задать новое
значение.
Списки (в английской версии List или одномерные массивы) одни из
самых интересных компонент приложения. Списки   /   массивы   представляют   собой   определенный   тип   структуры
данных, которые используются во всех языках программирования.  Массивы
можно   использовать   для   создания   и   управления   различными   наборами
значений / компонент.
Индекс
Положение   элемента   в   списке   называется   его   индексом.  В  MIT  App
Inventor, первый элемент в списке имеет индекс 1.
При   создании   приложений   можно   ссылаться   на   конкретный   элемент
внутри списка, если знаем, какой индекс имеет элемент в данном списке.
В   приложении   кроме   набора   стандартных   цветов,   есть   возможность
создания   собственного   цвета.   Такая   функция   может   быть   реализована   с
помощью списка.
RGB (аббревиатура  английских  слов Red, Green, Blue)  –  аддитивная
цветовая   модель,   как   правило,   описывающая   способ   синтеза   цвета   для
цветовоспроизведения.   При   задании   цвета   в   App   Inventor   –   может   быть
заданное   четвертое   значение   является   дополнительным   и   представляет
значение альфа или как насыщенный цвет. По умолчанию альфа значение по
100. Приложение «Фонарик»
Описание:   Приложение,   в   котором   холст   закрашивается   случайно
сгенерированными цветами.
Компоненты приложения:
 Холст;
 Кнопка. Урок 6
Рисование
Основные тезисы:
Холст
 Компонент Холст является дополнительной панелью приложения.
 Холст используется для рисования на нем объектов, размещения текста
 и анимации изображений – спрайтов.
 Отображение   холста   во   весь   экран   требует   установки   параметров
«Наполнить   родительский»   при   задании   свойств   Высоты   и   Ширины
Холста.
 Размещение   дополнительных   компонент   на   экране,   кроме   холста,
требует установки фиксированных значений его ширины и высоты.
 Местоположение   объекта   на   холсте   определяется   значениями   X,   Y
значение по отношению к левой верхней углу холста. X представляет
горизонтальное   положение   объекта,   0   является   левой   границей   и   Х
увеличивается, когда объект перемещается вправо. Y  вертикальная положение объекта, 0 верхняя граница и Y увеличивается, когда объект
перемещается вниз.
 Рисование   круга/окружности   на   холсте   требует   указания   параметров
координаты   X   и   Y   центра   круга,   а   также   радиуса   в   пикселях   и
параметра заливки (ложь/истина).
 Рисование линий на холсте требует установки параметров X и Y начала
и конца линии.
 При использовании  случайных  значений  координат и в случае,  когда
ширина холста определяется параметром «Наполнить родительский»,
рекомендуется   использовать   функции   определения   ширины   и  высоту
холста для устройства, как показано на примере:
Приложение «Рисование»
Описание: Приложение, позволяющее пользователю рисовать на экране.
Компоненты:
 Кнопка;  Холст.
Анимация
Основные тезисы
Холст   является   обязательным   компонентом   приложений   с
анимированными объектами.
 Для   анимации   предлагается   два   компонента   –   «Шар»   и
«ИзображениеСпрайта».   Шар   –   это   круг,   для   которого   можно
установить   такие   свойства   как   радиус   и   цвет. ИзображениеСпрайта
–
прямоугольное   изображение,
  в
качестве   источника   которого,
может   быть   установлено   любое
загруженное изображение.
 Оба   этих   объекта   должны   быть
размещены   на   холсте,   и   могут
реагировать   на   прикосновения,
перемещения, взаимодействовать с
другими спрайтами и пр.
 На   холсте   может   находиться
множество   компонент   данного
типа.
 Существуют

определенные
правила   задания   угла   движения
спрайта   и   определения   края
холста.   Числовые   значения   края
устанавливаются   на   основании
следующей схемы:
Приложение «Игра в мяч»
Описание:   Приложение   в   котором   мяч   двигается   по   экрану   и   при
достижении края отскакивает от него и движется в обратную сторону. Медиа
Основные тезисы Медиа   компоненты   позволяют   использовать   встроенные   в  мобильные
устройства фото и видеокамеры, динамики, микрофоны и пр.
Медиакомпоненты включают в себя:
Проигрыватель
  для
–   предназначен
воспроизведения
аудио/видеофайла   или   для   вибрации   телефона.   Компонент   Проигрыватель
невидимый, его лучше всего использовать для воспроизведения аудиофайлов,
для воспроизведения видео используется компонент VideoPlayer.
Звук  – применяется для воспроизведения коротких звуковых файлов
вроде   звуковых   эффектов.     Особенность   этого   компонента   –   свойство
Минимальный   Интервал,   задающее   минимальный   интервал   звучания,   после
которого звук будет повторяться.
ТекстВРечь – компонент, позволяющий преобразовать Текст в речь.
ЯндексПереводчик  – позволяет переводить тексты с одного языка на
другой.   Для работы с ними требуется подключение к сети Интернет. Язык
перевода задается в формате en – английский, ru – русский, es – испанский, fr
– французский.
Видеоплеер
используется   для   воспроизведения   видеофайлов.
Поддерживаются форматы: Windows Media Video (wmv), 3GPP (3gp), MPEG
4 (mp4). Максимальный размер файла 1 Мбайт. В отличие от компонентов
Player и Sound, данный компонент отображается на экране.
Камера  – используется для получения снимка со встроенной камеры
устройства.
Распознаватель Речи – компонент, позволяющий преобразовать речь в
текст.
Выборщик   изображений  служит   для   выбора   изображения   из   вашей
галереи изображений.  Компонент похож на ListPicker, он тоже представляет
собой кнопку, которая открывает окно выбора, только не элементов списка, а
изображений.
Диктофон – позволяет записать звук.
Приложение «Переводчик» Сенсоры Сенсоры   –   это   микроустройства   внутри   смартфона   или   планшета,
которые делают его умным, и связывают с внешним миром.
В   мобильных   приложениях   могут   быть   использованы   следующие
сенсоры:
Акселерометр  (Gсенсор)   –  позволяет   отследить   ускорение,  которое
придается   устройству,   определяет   ускорение   устройства   и   используется   в
приложениях, где предполагается управлять действием приложения, изменяя
положение устройства в пространстве, например, тряся его.
Датчик приближения  – позволяет определить  приближение объекта
без физического контакта с ним.
Датчик   освещенности  позволяет   определить   степень   наружного
освещения и соответственно настроить яркость экрана.
Гироскоп  определяет   положение   в   пространстве   и   позволяет
отслеживать поворотом устройства и скорость поворота
Магнитный   компас
(магнитометр)   отслеживает   ориентацию
устройства в пространстве относительно магнитных полюсов Земли
Сенсор ориентации  обеспечивает   получение   данных   от   гироскопа   и
компаса мобильного устройства.
Часы  –   обеспечивают   отсчет   времени,   используя   часы   мобильного
устройства   Единица   времени   –   миллисекунда.   Позволяют   отслеживать
текущее время, считать временные промежутки и т.д.
Сенсор местоположения получает данные от датчика GPS, определяя
широту и долготу, а также высоту над уровнем моря.
При использовании сенсора местоположения GPSдатчик на устройстве
должен быть включен
Совет:  Создание   приложений,   использующих   сенсоры,   требует
предварительной проверки наличия сенсоров, имеющихся на устройстве.
К примеру приложение Sensor Box for Android, которое можно скачать
из магазина Google Play обнаруживает все доступные датчики на устройства,
и демонстрирует на графиках как они работают.
Программы, написанные с использованием сенсоров, нужно тестировать
не в эмуляторе, а на реальном устройстве, оснащенном данными датчиками.
Приложение «Где я?»
Описание: Приложение, которое выводит на экран широту, долготу и
адрес местонахождения в настоящий момент. Математические функции
Группа блоков Математика содержит следующий набор операций и функций:
 математические операции (сложение, умножение, деление, вычитание,
сравнения и др.)
 математические функции
 функции случайных чисел
 функции преобразования одних величин в другие  функции округления величин
 работы с числами в различных системах счисления
Получить   доступ   к   различным   функциям   и   построить   сложные
математические конструкции можно с помощью модификации блоков Приложение «Конвертер систем счисления»
Описание: Приложение, которое позволяет конвертировать введенные числа,
в двоичную и шестнадцатеричную систему счисления.
Урок 7
Лабораторная работа «Факториал».
В данном уроке рассматривается применение циклов со счётчиком на
примере программы, вычисляющей факториал числа.
Что   такое   факториал?   Факториал   –   функция,   определённая   на
множестве неотрицательных целых чисел. Факториал натурального числа n определяется   как   произведение   всех   натуральных   чисел   от   1   до   n
включительно:
Например: 5! = 1*2*3*4*5 = 120. Следует знать, что 0! = 1.
Что такое цикл со счетчиком? Цикл со счётчиком — цикл, в котором
некоторая   переменная   изменяет   своё   значение   от   заданного   начального
значения до конечного значения с некоторым шагом, и для каждого значения
этой переменной тело цикла выполняется один раз.
Итак, начнем…
1. Создаем новый проект «Factorial»;
2. Компоненты:
a. Надпись – для текста заголовка;
b. Надпись – для текста поля ввода числа N;
c. Текст – для поля ввода числа N;
d. Надпись – для текста поля показа результата;
e. Текст – для вывода результата;
f. Кнопка – для генерации счетчика.
3. Заголовок экрана Screen1 изменим на «Factorial»; 4. В свойствах компонента «Надпись1» меняете текст на «Факториал»,
размер шрифта и выравнивание текста «По центру».
5. В свойствах компонента «Надпись2» меняете текст на «Число  N:»,
размер шрифта;
6. В   свойствах   компонента   «Текст1»,   меняете  ширину   экрана
«Наполнить   родительский»  и   добавляете  подсказку  «Введите
число» 7. В свойствах компонента «Надпись3» меняете текст на «Факториал
числа N:», размер шрифта;
8. В   свойствах   компонента   «Текст2»,   меняете  ширину   экрана
«Наполнить   родительский»  и   добавляете  подсказку  «Здесь
появится результат»;
9. В   свойствах   компонента   «Кнопка1»,   меняете  ширину   экрана
 текст
«Наполнить   родительский»,   шрифт  и   добавляете
«Вычислить»;
10.  Переходим   в   режим   «Блок»,   создаем   две   переменные.   Первая
переменная   –   это   само   число  N,   т.е.   для   считывания   числа   из компонента   «Текст1».   Вторая   переменная   –   это   сам   факториал,
который будет вычисляться.
11.
 После ввода числа N необходимо нажать на кнопку для
дальнейших действий. Заходим в блок «Кнопка1» выбираем
КогдаКнопа1.Щелчок делать присваеваем переменную N,
которую мы получаем из компонента «Текст1»;
12. Теперь нам необходимо определить как вычислить факториал числа
N. Для этого мы будем использовать цикл со счетчиком, находится
он в блоке «Управление».
В счетчике цикла мы указываем считывать с 1 до переменной N
шагом 1, когда выполняется повторение, мы должны умножить
факториал на новое число (счетчик). Когда счетчик дойдет до N, мы
должны присвоить Текст2 значение факториала.  Урок 8
Этапы разработки мобильного приложения
Идея.   Все начинается с главной идеи Вашего приложения. Допустим,
Вам нужно приложение для службы доставки готовых блюд с возможностью
оставлять заявки на доставку пиццы из приложения. Это приложение будет
полезным и нужным пользователям, которые пользуются услугами подобных
компаний и заказывают продукты. Также приложение служит инструментом
аккумулирования   клиентов   вокруг   компании   посредством   мобильных
устройств.   Поэтому   перед   тем   как   приступить   к   разработке   приложения,
нужно хорошо продумать, чем оно будет полезно пользователям и бизнесу, а
также определить целевую аудиторию этого приложения. В данном случае это
могут быть студенты или офисные работники, клиенты компании, которые
используют   приложения   для   быстрой   связи   со   службой   доставки,  а  также
люди,   которые   много   передвигаются   и   которым   необходима   возможность
совершать   заказы   через   мобильное   устройство.   Определившись   с   идеей
приложения и целевой аудиторией, можно переходить к следующему этапу.
Основные вопросы, на которые должна отвечать ваша идея.
Какую проблему хотите решить?
Кого касается эта проблема?
Что нужно для решения проблемы и почему?
Какое решение?
Проектирование приложения  предполагает создание карты, которая
наглядно продемонстрирует весь функционал приложения, экраны продукта и
схему переходов между ними. По сути дела, создается прототип приложения,
на основании которого в дальнейшем будет разрабатываться сам продукт. Дизайн, подготовка графики. Разработка дизайна будущего приложения
предполагает создание графических элементов для всего приложения — это
экраны,  то   есть   фоновые   изображения   вкладок,  изображение   для   главного
экрана,   иконки   всего   приложения,   шапки   для   отдельных   страниц,   по необходимости   создаются   кнопки   с   индивидуальным   дизайном.   Важно
подвергать   все   графические   элементы   юзабилитиисследованию,   чтобы
понимать, насколько удобно будет пользователю нажимать на экране своего
мобильного устройства на все эти элементы и кнопки приложения.
       Этап   сборки   приложения  состоит   из   трех   составляющих:   создание
вкладок   и   функций,   наполнение   контентом   и   настройка   внешнего   вида
приложения. Но прежде чем перейти к ним, необходимо настроить параметры
приложения,   задав   код   приложения,   название   приложения   для   AppStore   и
GooglePlay и название иконки приложения на рабочем столе пользователей.

 Тестирование.  После   того   как   приложение   разработано,   важно

протестировать   его   на   мобильном   устройстве   заказчика.   Для   этого   есть
специальная программа – приложение просмотра мобильных приложений. Как
выглядит приложение при просмотре, так же оно будет выглядеть и работать
после   публикации.   Поэтому   на   данном   этапе   важно   выявить   недоработки,
сбои и некорректное отображение элементов, чтобы можно было исправить их
еще до публикации.
    Публикация приложения – это последний этап разработки. После того как
выявлены   и   исправлены   ошибки,   а   приложение   согласовано   с   заказчиком,
можно   приступать   к   публикации.
  Для   этого   Вам   необходимо
зарегистрировать   аккаунт   разработчика   в   GooglePlay/   AppStore   и   подать
заявку на публикацию Вашего приложения. Стоимость регистрации аккаунта
разработчика в GooglePlay составляет 25 долларов единовременно, в AppStore
– 99 долларов в год.
После   публикации   мобильного   приложения   начинается   важный   этап
запуска   его   в   жизнь,   то   есть   продвижение   мобильного   приложения   среди
пользователей и потенциальных клиентов.

file_name: День 2 App Inventor.docx

description:
Медиа
Основные тезисы

description: Сенсоры

intro: Масса возможностей в маленьком гаджете. Сегодня смартфоном совершенно никого не удивить. Эти гаджеты предоставляют массу возможностей. Можно слушать музыку, просматривать видео и даже целые фильмы, выходить в интернет, посещать социальные сети, использовать навигатор, будильник, калькулятор, фонарик и множество других полезных и интересных вещей. Чаще всего возможности устройства зависят от модели или фирмы-изготовителя. Но куда большую роль для пользователя играет операционная система. Операционные системы для смартфонов позволяют нам раскрыть весь потенциал гаджета. Именно от них зависит качество его использования.

title: Ардуино туралы мәлімет


extracted_text:
Урок 1.
1. Что такое Scratch?
Программа   —   просто   набор   инструкций,   которые   сообщают
компьютеру,   что   ему   делать.   Они   пишутся   при   помощи   языка
программирования.
Scratch  —   один   из   них,   и   он   уникален.   Большинство   языков
программирования   имеют   текстовую   основу:   нам   приходится   давать
компьютеру команды, похожие на шифровки, на английском языке.
Например, чтобы на экране появилась строка «Привет!», нужно
написать:
print ('Привет!') (на языке Python)
std::cout << "Привет!" << std::endl; (на языке C++)
System.out.print ("Привет!"); (на языке Java)
Выучить эти языки и понять их синтаксис непросто для начинающего.
Scratch   же   —   визуальный   язык   программирования.   Он   был   разработан   в
медиалаборатории   Массачусетского   технологического   института,   чтобы
сделать   программирование   более   доступным,   а   обучение   ему   –   более
занимательным.
Рис. 1.1. Когда вы запускаете этот блок в Scratch, у кота в облачке появляется текст
«Привет!»
Кот, которого вы видите на рис. 1.1, называется  спрайтом. Спрайты
понимают и выполняют наборы команд, которые вы им даете. Сиреневый блок
слева говорит коту, что нужно, чтобы в облачке появился текст ≪Привет!≫.
У многих программ, которые вы создадите, будет несколько спрайтов, и вы
сможете   использовать   блоки,   чтобы   заставить   спрайты   двигаться,
поворачиваться, говорить, играть музыку, решать задачи и т.п. В Scratch вы
можете   программировать,   соединяя   разные   блоки,   промаркированные
цветами,   как   если   бы   вы   собирали   чтото   из   кубиков   Lego.   Соединенные
между собой блоки, или ≪стеки≫ блоков, которые вы создаете, называются
скриптами. Например, на рис. 1.2 показано, как скрипт четыре раза меняет
цвет спрайта. Рис. 1.2. Использование скрипта для изменения цвета спрайта
Среда программирования Scratch
Чтобы   запустить   Scratch,   войдите   на   сайт  http://scratch.mit.edu/  и
кликните   по   ссылке   Попробуйте.   Интерфейс   редактора   проектов   Scratch
показан на рис. 1.3.
Рис. 1.3. Пользовательский интерфейс Scratch
Вы должны видеть одно окно, состоящее как минимум из следующих
трех   панелей:  Сцены  (наверху   слева),  Списка   спрайтов  (слева   внизу)   и
закладки  Скрипты  (справа), которая, в свою очередь, состоит из колонки
блоков и поля скриптов. Правая панель также содержит две дополнительные
закладки, Костюмы и Звуки, о которых мы поговорим чуть позже. Если вы
создали аккаунт и вошли под ним на сайт Scratch, вы также должны увидеть
Рюкзак (внизу справа), у которого есть кнопки, позволяющие делиться вашим
проектом и использовать спрайты и скрипты из уже существующих проектов.
Сцена  –   место,   где   ваши   спрайты   двигаются,   рисуют   и
взаимодействуют. Ширина ее 480 шагов, а высота — 360 шагов, как показано
на рис. 1.4. Центр Сцены — точка отсчета осей координат x и y. Рис. 1.4. Сцена — плоскость координат с отметкой (0, 0) посередине
Вы можете определить координаты любой точки на Сцене, наведя на нее
курсор и посмотрев цифры в поле, отображающем положение мыши (x, y),
которое   расположено   непосредственно   под   Сценой.   На   небольшой   панели
управления над Сценой есть несколько пунктов. Иконка режима презентации
(1) скрывает все скрипты и инструменты программирования и разворачивает
поле Сцены практически на весь экран. Поле редактирования (2) показывает
название текущего проекта. Зеленый флажок (3) и значок Стоп (4)  позволяют
вам запустить и остановить программу.
УПРАЖНЕНИЕ 1.1
Поводите   курсором   мыши   по  Сцене  и   посмотрите   на   поле,
отображающее положение мыши. Что происходит, когда вы уводите курсор за
пределы Сцены? А теперь перейдите в режим презентации и посмотрите, как
изменится экран. Кликните по иконке слева вверху (1) или нажмите  Esc  на
клавиатуре, чтобы выйти из режима презентации.
Список спрайтов
Список   спрайтов   показывает   имена   и   иконки   всех   спрайтов   вашего
проекта. Новые проекты начинаются с белого поля Сцены и одного спрайта –
кота, как показано на рис. 1.5. Рис. 1.5. Список спрайтов для нового проекта
Кнопки над списком спрайтов позволяют вам добавить в ваш проект
новые   спрайты   из   четырех   источников:   библиотеки   спрайтов   Scratch   (1),
встроенного редактора Paint (2) (вы можете там самостоятельно нарисовать
костюм), с камеры, подключенной к вашему компьютеру (3), или просто с
вашего компьютера (4).
УПРАЖНЕНИЕ 1.2
Добавьте   в   свой   проект   новые   спрайты,   используя   кнопки,
расположенные над списком спрайтов. Поменяйте расположение спрайтов в
списке, перетаскивая с места на место их иконки.
Панель блоков
Блоки в Scratch разделены на 10 категорий: Движение, Внешность,
Звук, Перо, Данные, События, Управление, Сенсоры, Операторы и
Другие блоки. Каждой присвоен свой цвет, чтобы вам было проще находить
родственные блоки. В Scratch более 100 блоков, но некоторые появляются
только при определенных условиях.
Рис. 1.6. Панель блоков Поле скриптов
Чтобы   ваш   спрайт   делал   интересные   вещи,
  вам   нужно
запрограммировать его, перетянув блоки из панели блоков в поле скриптов и
соединив их между собой. Когда вы тащите блок по полю скриптов, белое
выделение показывает вам, куда его можно прикрепить, чтобы получилась
работающая связка с другим блоком (рис. 1.7). Блоки в Scratch соединяются
между   собой   только   определенным   способом.   Благодаря   этому   удается
избежать   опечаток,   которые   возникают,  когда   люди   используют   текстовые
языки программирования.
Рис. 1.7. Перетащите блоки на поле скриптов и присоедините их
друг к другу, чтобы получились скрипты
Вам не нужно писать скрипт до конца, чтобы запустить его: вы можете
проверять его в процессе работы. Клик по любой части скрипта запускает его
от   начала   до   конца.   Вы   легко   можете   отсоединить   несколько   блоков   и
протестировать каждый из них отдельно. Эта функция вам очень пригодится,
когда   вы   будете   разбираться   с   длинными   скриптами.   Чтобы   переместить
целую группу блоков, возьмите верхний из нее. Чтобы отсоединить блок в
середине стопки и все блоки под ним, выберите его и перетащите. Попробуйте
это   сделать   самостоятельно.   Эта   функция   также   позволяет   работать   над
проектом   поэтапно.   Вы   можете   объединять   небольшие   группы   блоков,
тестировать   их,   удостоверяться,   что   они   работают   как   нужно,   а   затем
объединять их в более крупные скрипты.
УПРАЖНЕНИЕ 1.3
Создайте   новый   проект   Scratch   и   задайте   котуспрайту   скрипт,
показанный ниже. (Блок всегда находится в разделе Управление, а остальные
блоки — в разделе Движение.) Закладка Костюмы
Вы можете изменить внешний вид спрайта, сменив его костюм, который
представляет собой картинку. Закладка Костюмы содержит все необходимое,
чтобы вы могли организовать костюмы спрайта; это чтото вроде платяного
шкафа. В нем может быть много костюмов, но в каждый конкретный момент
спрайт может надеть только один.
Рис. 1.8. Вы можете организовать все костюмы для спрайта в одноименной
закладке
Закладка Звук
Спрайты   также   могут   издавать   звуки,   которые   оживляют   вашу
программу: например, когда они счастливы или расстроены. Если в вашей
игре   есть   спрайт,  который   выглядит   как   ракета,   вы   можете   заставить   его
издавать разные звуки, когда она попадает в цель или промахивается. Кнопки
в закладке Звук помогут вам организовать различные звуки, которые издают
ваши спрайты. Как вы видите на рис. 1.9, Scratch также дает вам инструмент,
который позволяет редактировать звуковые файлы. Рис. 1.9. Закладка Звуки позволяет организовать звуки спрайта
Панель инструментов
Стандартная   панель   инструментов,   где   можно   сохранить   файл,
загрузить или скачать файл. Также можно расположены кнопки Дублировать,
Удалить, Уменьшить, Увеличить, Турбо (для увеличения скорости блоков)
(рис. 1.10)
Рис. 1.10. Закладка Звуки позволяет организовать звуки спрайта
Графический редактор
Вы можете использовать графический редактор (рис. 1.11) для создания
или редактирования костюмов и фонов (аналог Paint) Рис. 1.11. Закладка Звуки позволяет организовать звуки спрайта
Урок 2 Циклы
В языках программирования не обойтись без управляющих конструкций
для   многократного   исполнения   шагов   алгоритма.   Такие   конструкции
называют циклами, а последовательность повторяющихся шагов  тело цикла.
В Scratch есть блоки для 4х видов циклов: безусловный, со счетчиком, с
предусловием и с постусловием.
Безусловный цикл
Часто используются циклы, выход из которых не предусмотрен логикой
программы.   Такие   циклы   называются   безусловными   или   бесконечными.   В
Скретче   есть   специальная   конструкция   для   создания   бесконечных   циклов
(Рис. 2.1). Рис. 2.1. Закладка Звуки позволяет организовать звуки спрайта
Тело такого цикла выполняется до тех
пор, пока активен скрипт, частью которого он
является.   Остановить   бесконечный   цикл
можно   только   с   помощью   кнопки   Стоп.
Пример:
Цикл со счетчиком
Блок   (рис.   2.2)   организует   повтор   тела
цикла   указанное   число   раз.   В   него   встроен
счетчик,   который   при   каждом   выполнении
тела   цикла   уменьшается   на   1   вплоть   до   0.
Число повторов может быть задано не только
константой, но и любым репортером, включая
математические   операторы   (Рис.   2.3).   Это
делает блок чрезвычайно гибким.
Рис. 2.3. Количество повторов может быть задано репортерами
Можно организовать выполнение одного цикла внутри другого. В этом
случае различают внешний и внутренний циклы (Рис. 2.4). Рис. 2.4. Внешний и внутренний циклы
Цикл с предусловием
Как быть, если число повторений цикла неизвестно как, например, в
игре   «Угадай   число»?   В   этом   случае   применяют   разновидность   цикла   с
предусловием (рис.2.5) или после условием (Рис. 2.6).
Рис. 2.5. Блоксхема реализации цикла с предусловием
Рис. 2.6. Блоксхема реализации цикла с постусловием
В этой разновидности цикла условие проверяется перед выполнением
тела цикла, поэтому цикл не будет выполнен ни разу, если указанное условие
не наступит. Вы не получите конфет, не выполнив домашнее задание, если
такое условие поставлено взрослыми.
Блок всегда если находится в состоянии ожидания и запускает тело
цикла   в   тот   момент,   когда   соблюдается   указанное   условие.   Цикл   будет
повторяться   до   тех   пор,   пока   проверка   условия   будет   давать   результат
истина. Если условие ложно, действия внутри цикла не выполняются.
ПРАКТИЧЕСКАЯ РАБОТА №1. Игра «Pong»
Шаг 1. Задача
В   этом   разделе   вы   создадите   свою   компьютерную   игру,   в   которой
пользователю нужно будет передвигать ракетку, чтобы не дать прыгающему мячику удариться об пол. Она основана на классической аркадной игре Pong.
Пользовательский интерфейс показан на рис. 2.7.
Рис. 2.7. Наша игра на экране
Шаг 2. Создание проекта
Как показано на рисунке, мяч начинает движение в верхней части Сцены
и   перемещается   вниз   под   случайным   углом,   отскакивая   от   краев   Сцены.
Игрок перемещает ракетку по горизонтали (при помощи мыши), чтобы отбить
мяч   обратно   наверх.   Если   мяч   коснется   нижней   границы   Сцены,   игра
окончена. Мы будем создавать игру пошагово, и первым делом нужно открыть
новый проект. Выберите Файл — Новый, чтобы начать новый проект Scratch.
Затем удалите спрайткота, кликнув по нему правой кнопкой мыши и выбрав
Удалить из выпадающего меню.
Шаг 3. Подготовка фона
Чтобы определить, когда мяч попадает мимо ракетки, мы обозначим
нижнюю границу Сцены определенным цветом и используем блок дотронуться
до цвета? (из раздела Сенсоры), чтобы определять, когда мяч будет касаться
этого   цвета.   Сейчас   у   нас   белый   фон,   и   мы   можем   нарисовать   у   нижней
границы Сцены тонкий цветной прямоугольник, как показано на рис. 2.8. Рис. 2.8. Пошаговый процесс рисования прямоугольника внизу фона Сцены
Шаг 4. Добавляем ракетку и мяч
Нажмите кнопку Нарисовать новый спрайт наверху списка спрайтов,
чтобы добавить в свой проект спрайт Ракетка (Paddle). Поскольку ракетка —
просто узкий короткий прямоугольник, повторите шаг 3, чтобы нарисовать
нужную   фигуру,   как   на   рис.   2.8.   Раскрасьте   ее   в   любой   цвет,   какой   вам
нравится,   и   установите   центр   приблизительно   посередине   прямоугольника.
Затем дайте спрайту имя, которое объясняло бы, что он собой представляет.
А также кликните по изображению ракетки на Сцене и передвиньте его так,
чтобы координата y была около –120.
Теперь у нас есть ракетка, но пока не хватает мяча, который скакал бы
вокруг. Нажмите Выбрать спрайт из библиотеки наверху в списке спрайтов,
чтобы импортировать спрайт.
В   появившемся   окне   выберите   категорию  Предметы,   затем
изображение   мяча   и   добавьте   его   в   проект.   Переименуйте   спрайт   в   Мяч.
Прежде чем вы начнете работать над скриптами для игры, выберите Файл —
Скачать на свой компьютер, чтобы сохранить то, что вы уже сделали. В
появившемся   диалоговом   окне   выберите   папку,   куда   вы   хотите   сохранить
свою работу, назовите файл Pong.sb2 и нажмите Сохранить. Если вы вошли
на   сайт   Scratch   под   своим   логином,   вы   можете   сохранить   свою   работу   в
облаке  (на сервере Scratch). В любом случае не забывайте сохранять файлы
достаточно часто. Теперь, когда у нас есть спрайты Ракетка и Мяч,  Сцена
должна выглядеть приблизительно как на рис. 2.7. Следующим шагом будет
добавление скриптов, необходимых, чтобы игра заработала. Шаг 5. Начать игру и заставить спрайты двигаться
Любой скрипт, начинающийся с блокатриггера когда щелкнут по
,
начинает работать, как только вы нажмете эту кнопку. Флажок становится
яркозеленым и остается таким до тех пор, пока скрипт не завершит работу.
Чтобы увидеть  это  в  действии, создайте  скрипт  для  спрайта  Ракетка,  как
показано на рис. 2.9.
Рис. 2.9. Скрипт для спрайта Ракетка
После того как игрок кликает по зеленому флажку (1), блок перейти в
х: у: (2) устанавливает вертикальную позицию ракетки на –120, просто на тот
случай, если вы до этой мышки убрали ее оттуда. Ракетка должна парить
прямо   над   розовым   прямоугольником   внизу   Сцены,   так   что   если   ваш
прямоугольник   толще,   измените   координаты   ракетки   на   те,   которые   вам
подходят лучше.
Затем   в   скрипте   используется   блок  всегда  (3),   чтобы   постоянно
отслеживать позицию мышки. Мы будем двигать ракетку тудасюда за счет
того, что укажем в качестве ее позиции по оси x позицию мыши (4). Запустите
скрипт   (кликнув   по   зеленому   флажку)   и   попробуйте   двигать   мышь
горизонтально. Ракетка должна следовать за ней.
Кликните по значку Стоп рядом с зеленым флажком, чтобы остановить
скрипт.
Мяч должен начинать двигаться, как только мы кликаем по зеленому
флажку, поэтому первым делом добавьте спрайтумячу скрипт с рис. 2.10.
Рис. 2.10. Первая часть скрипта для мяча Сначала мы перемещаем мяч наверх Сцены (1) и заставляем его лететь
вниз под случайным углом, используя блок выбрать случайный угол (2) (из
раздела  Операторы). Затем скрипт использует блок  всегда  (3), чтобы мяч
перемещался по Сцене и отпрыгивал (4) от ее краев. Проверьте. Мяч должен
передвигаться зигзагами, а ракетка — следовать за мышкой.
Теперь добавляем блоки, которые заставят мяч отскакивать от ракетки.
Мы можем изменить блок всегда, который только что создали, так, что мяч
будет лететь вверх, отскочив от ракетки, как показано на рис. 2.11.
Рис. 2.11. Добавление блока, чтобы мяч отскакивал вверх
Когда мяч и ракетка соприкасаются, мы даем мячу команду повернуть в
случайном направлении от –30 до 30. Когда блок  всегда  зайдет на второй
круг, он начнет выполнять блок идти, который теперь будет заставлять мяч
лететь вверх.
Кликните снова по зеленому флажку, чтобы протестировать эту часть
игры.   Когда   вы   удостоверитесь,   что   мяч   отскакивает   от   ракетки,   как   и
предполагалось, нажмите Стоп.
Теперь   единственный   недостающий   фрагмент   —   код,   который
останавливает   игру,   если   мяч   касается   нижней   границы   Сцены.   Добавьте
спрайтумячу скрипт, как показано на рис. 2.12, либо непосредственно перед,
либо сразу после блока если (рис. 2.11). Блок касается цвета ? вы найдете в
разделе Сенсоры, блок стоп — в разделе Управление.
Когда вы кликнете мышью по цветному квадрату внутри блока касается
цвета ?, стрелка курсора изменится на руку. Когда вы переместите курсор и
кликнете по  розовому  прямоугольнику внизу  Сцены,  этот квадрат внутри
блока станет такого же цвета. Блок стоп все останавливает все работающие
скрипты. Рис. 2.12. Блоки для окончания игры
Игра готова! Протестируйте.
Урок 3 Что такое переменная?
Переменная — поименованная область компьютерной памяти. Ее можно
представить себе как ящик для хранения данных, числовых и текстовых, к
которому при необходимости обращается программа. На рис. 3.1 показана
переменная с именем сторона, чье текущее значение равно 50.
Рис. 3.1. Переменную можно сравнить с ящиком, которому присвоено имя
и который содержит некоторое значение
Когда   вы   создаете   переменную,   ваша   программа   резервирует
определенный   объем   памяти,   чтобы   сохранить   ее   значение,   и   присваивает
выделенной   памяти   имя   переменной.   Создав   переменную,   вы   можете
использовать ее имя в своей программе, чтобы обращаться к ее значению.
Если у нас, допустим, имеется ящик (переменная) по имени сторона, который
содержит   величину   50,   мы   можем   сконструировать   команду  идти   (3   х
сторона) шагов. Выполняя эту команду, Scratch найдет в памяти компьютера
ящик сторона, присвоит его содержимое (в данном случае 50) и использует
это число вместо сторона в блоке  идти (3 х сторона)  шагов. В результате
спрайт передвинется на 150 (50 умножить на 3) шагов. Обычно переменные в
Scratch   используют   для   очков   игрока,   уровня   сложности   игры,   ее
продолжительности. Рис. 3.2. Создание переменной
Для   создания   переменных   и   списков   предназначена   оранжевая
категория команд –  переменные  (1). Для создания переменной достаточно
щелкнуть мышкой по кнопке: Создать переменную (2).
Имена переменных и списков
Имя переменной также,  как  имя спрайта, костюма  или  фона, может
состоять   из   букв,   цифр,   знака   подчеркивания.
 Scratch  чувствителен   к
регистру: он различает большую и маленькую буквы и слова «очки» и «Очки»
 это разные имена для разных переменных и списков.
Примеры   имен:   балы,   имя   игроки,   Тур,   игрок1,   игрок2,   игрок_2.
Давайте понятные имена и помните, что изменить имя переменной после ее
создания  нельзя, но переменную и список можно удалить и создать снова с
тем же или другим именем.
Область определения переменной
Локальные и глобальные: Переменные и списки могут быть двух типов  локальные (только для
этого объекта) и глобальные (для всех объектов).
 Локальные доступны только для одного объекта. По своему назначению
они   являются   параметром   или   памятью   того   спрайта,   для   которого
были созданы.
 Глобальные  доступны для всех спрайтов и сцены проекта.
Имена   локальных   переменных   могут   быть   одинаковыми   у   разных
спрайтов, но они не могут совпадать с именами глобальных переменных.
ПРАКТИЧЕСКАЯ РАБОТА №2. Игра «Pong»
Мы уже создали игру «Pong» и в этом разделе добавим переменную в
игру.   Переменная,   которая   будет   считать   количество   заработанных   очков
игроком. Для этого создадим переменную «Счет» для всех спрайтов.
Добавляем скрипт в спрайт мяча как на рис. 3.3. Изначально значение
счета игры равна 0, при отбивании мяча ракеткой игрок зарабатывает 1 очко.
Рис. 3.3. Добавление скрипта в спрайт мяча
При   желании   данную   игру   можно   дальше   усложнять,   добавив
переменные скорость, таймер, дополнительные объекты (рис. 3.4), которых
нужно   сбить   мячом   или   же   сделать   игру   для   двух   человек,   добавив
консольное управление второй ракеткой (рис. 3.5). Рис. 3.4. Скрипт для дополнительного объекта
Рис. 3.5. Скрипт управления второй ракеткой
Переменные клонов
Каждый спрайт имеет список свойств, включая его положение х,
положение у, направление и т. д. Можно представить этот список как рюкзак,
в котором хранятся текущие величины атрибутов спрайта, как показано на
рис. 3.6. Когда вы создаете переменную, имеющую область определения
Только для этого спрайта, она добавляется в рюкзак спрайта.
Когда   вы   клонируете   спрайт,   клон   наследует   копии   атрибутов
родителя,   в   том   числе   переменные.   Унаследованное   свойство   вначале
идентично свойству спрайтародителя — каким оно было на момент создания
клона.   Но   если   после   этого   атрибуты   и   переменные   клона   меняются,   эти
перемены   не   оказывают   никакого   воздействия   на   спрайтродителя.   А
изменения спрайтародителя никак не сказываются на свойствах клонов.
Рис. 3.6. Клоны наследуют копии переменных спрайтародителя Вы

использовать
можете

это
того,
чтобы
отличать
один
клон   от
другого
вашем
свойство   для
в
приложении. Пример:
Спрайтродитель   в   данном   примере   (рис   3.7)   имеет   переменную   с
именем  клонНомер.   Если   кликнуть   по   зеленому   флажку,   в   результате
повтора   возникнет   три   клона,   при   создании   каждого   из   которых   задается
разное   значение   переменной  клонНомер  (в   данном   случае   —   1,   2,   3).   У
каждого клона при его появлении на свет имеется своя копия переменной
клонНомер со своим уникальным значением. Теперь вы можете использовать
блок  если, чтобы проверить идентификатор клона и заставить каждый клон
выполнить определенные действия. Рис. 3.7. Клоны наследуют копии переменных спрайтародителя
Теперь   посмотрим,   как   клоны   взаимодействуют   с   глобальными
переменными. Вспомним рис. 3.2: переменные с областью определения  Для
всех спрайтов могут читаться и переписываться Сценой и всеми спрайтами,
не   исключая   клонов.   Например,   программа,   изображенная   на   рис.   3.8,
использует эту особенность, чтобы проверить, все ли клоны спрайтародителя
исчезли.
Рис. 3.8. Использование глобальной переменной для уничтожения клонов
В   данном   скрипте   спрайтродитель   задает   величину   глобальной
переменной  числоКлонов  равной пяти и создает пять клонов. Затем ждет,
пока числоКлонов не станет равна нулю, и объявляет, что игра закончилась.
Клоны   возникают   через   случайные   промежутки   времени   и   в   случайно
выбранных   местах   на   Сцене,   говорят   «Привет!»   в   течение   двух   секунд,  а
затем исчезают. Когда все пять клонов исчезли,  числоКлонов  равна нулю,
основной скрипт выходит из режима ожидания и спрайтродитель объявляет:
«Игра окончена!»
Отображение мониторов переменных
Переменную в Scratch можно увидеть на сцене с помощью монитора
переменной.   В   зависимости   от   того,   поставите   вы   или   уберете   галочку   в
чекбоксе   рядом   с  именем   переменной,   вы   сможете   спрятать   или   показать
монитор   на  Сцене,   как   показано   на   рис.   3.9.   Вы   также   сможете
контролировать   видимость   монитора   изнутри   вашего   скрипта   с   помощью
команд показать переменную и скрыть переменную. Рис. 3.9. Чтобы сделать видимым монитор переменной,
поставьте галочку в чекбоксе рядом с ее именем
Монитор допустимо использовать в качестве индикаторной панели или
пульта   управления:   он   может   показывать   вам   содержимое   переменной,   а
может   позволить   вам   его   изменить.   Дважды   кликните   по   прямоугольнику
монитора   на   Сцене,   чтобы   выбрать   стандартный   вид   (по   умолчанию),
увеличенный или рычажок. Если вы хотите видеть рычажок, вы можете задать
его диапазон, кликнув по нему правой кнопкой мыши и установив минимум и
максимум в выпадающем окне, как показано на рис. 3.10.
Рис. 3.10. Установка максимального и минимального значений
для
монитора в
режиме
рычажка
Использование   рычажка   позволит   менять   величину   переменной   в
процессе   работы   скрипта   —   удобный   для   пользователей   способ
взаимодействовать с приложением. Простой пример использования рычажка
приведен на рис. 3.11.
Рис. 3.11. Изменение переменной цветСцены с помощью рычажка В   данном   примере   манипулирование   рычажками   меняет   величину
переменной  цветСцены,   которая   является   параметром   команды   изменить
цвет эффект на. Поскольку этот скрипт принадлежит Сцене, передвижение
рычажка должно приводить к изменению ее цвета.
ПРАКТИЧЕСКАЯ РАБОТА №3. «Моделирование закона Ома»
Когда   электрическое   напряжение   (V)   приложено   к   резистору,
обеспечивающему сопротивление (R), через резистор проходит электрический
ток   (I).   Согласно   закону   Ома,   сила   тока   определяется   следующим
уравнением:
Силатока(I)= Напряжение(V)
Сопротивление(R)
Наше   приложение   позволит   пользователю   менять   величины   V   и   R   с
помощью   рычажкабегунка.   Затем   программа   рассчитает   и   отобразит
величину   силы   тока,   I.   Интерфейс   пользователя   для   этого   приложения
показан на рис. 3.12.
Бегунок, регулирующий напряжение батарейки (V), имеет диапазон [0,
10], а бегунок резистора (R) — [1, 10]. Когда пользователь меняет V или R с
помощью бегунка, приложение рассчитывает силу тока (I) в сети. Яркость
лампы меняется сообразно силе тока, проходящего через нее: чем она выше,
тем   ярче   горит   лампа.   Размер   букв V,  I  и  R  на   рисунке   также   меняется,
отражая соотношение этих величин.
Рис. 3.12. Интерфейс пользователя для приложения, показывающего, как работает закон Ома
Всего   в   приложении   пять   спрайтов  —  Вольт, Ток, Сопротивление,
Равно и Свет (Volt, Current, Resistance, Equal и Light) — и три переменные
(V, I и R). Все прочее, что вы видите на рис. 3.12 (батарейка, провода, патрон
лампы   и   т.   п.),   —   часть   фонового   изображения   Сцены.   Основной   скрипт,
управляющий приложением и принадлежащий сцене, показан на рис. 3.13.
Рис. 3.13. Основной скрипт приложения, показывающего работу закона Ома
Скрипт запускает величины V и R и входит в бесконечный цикл. При
каждом   проходе   цикла   программа   рассчитывает   I,   используя   текущие
значения V и R: их устанавливает пользователь с помощью бегунков. Затем
сообщение   передается   другим   спрайтам   приложения,   чтобы   они   обновили
свой внешний вид по результатам перерасчета величин. Рис. 3.14 показывает
реакцию спрайтов Вольт, Ток, Сопротивление и Свет (которые изображают
буквы V, I и R и лампочку), когда они получают сообщение Обновить.
Рис. 3.14. Срабатывание скриптов при получении сообщения Обновить Когда   получено   сообщение  Обновить,   спрайты  Вольт,   Ток   и
Сопротивление  меняют   размер   (с   изначальных   100%   на   200%)
соответственно   текущим   величинам   своих   переменных.   Спрайт  Свет
выполняет   команду  изменить   призрак   эффект  на,   чтобы   изменить   свой
уровень прозрачности пропорционально величине I. Получается реалистичный
визуальный эффект, имитация настоящей лампочки.
Урок 4
Операторы сравнения
Вам приходится принимать решения каждый день, и большинство из них
приводит к действию. Например, вы можете сказать себе: «Если этот мяч
стоит меньше 2000 тенге, я ее куплю». Затем вы интересуетесь ценой мяча и
решаете, будете вы ее покупать или нет.
В Scratch вы тоже можете принимать решения. При помощи операторов
сравнения вы сравниваете значения двух переменных или выражений, чтобы
определить   разницу   между   ними.   Операторы   сравнения   также   называются
реляционными   операторами,   потому   что   проверяют   соотношение   двух значений. В таблице 1 показаны три реляционных оператора, поддерживаемых
Scratch.
Оператор
Значение
Больше чем
Меньше чем
Равно
Пример
Цена больше 2000?
Цена меньше 2000?
Цена равна 2000?
Таблица 1. Реляционные операторы в Scratch
БУЛЕВЫ, ИЛИ ЛОГИЧЕСКИЕ, ВЫРАЖЕНИЯ В РЕАЛЬНОМ МИРЕ
Само   слово   булевы   используется   в   память   о   Джордже   Буле   —
британском математике, жившем  в XIX веке  и  разработавшем  логическую
систему, основанную на двух значениях: 1 и 0 (истина и ложь). Булева алгебра
стала основой современной компьютерной науки.
Мы постоянно используем булевы выражения для принятия решений.
Компьютеры   тоже   пользуются   ими,   чтобы   определить   ветку,   которой
последует программа. Роботизированная рука может быть запрограммирована
проверять   подвижные   детали   на   конвейере   и   перемещать   в   Корзину   1   те
части, у которых хорошееКачество = истина, а в Корзину 2 — для которых
хорошееКачество   =   ложь.   Системы   домашней   безопасности   обычно
программируются   так,   чтобы   при   введении   неверного   кода   включалась
сигнализация (верныйКод = ложь), а правильного — выключалась (верныйКод
= истина). Удаленный сервер может предоставлять или отказывать в доступе,
если   прокатать   свою   кредитную   карту   в   магазине,  в  зависимости   от   того,
действует   карта   (истина)   или   нет   (ложь).   Компьютер   в   автомобиле
автоматически выбросит подушки безопасности, если решит, что произошло
столкновение   (столкновение   =   истина).   Мобильный   телефон   может
показывать специальную иконку, когда батарея садится (батареяРазряжена =
истина), и скрывать ее, когда заряд достаточный (батареяРазряжена = ложь).
Это несколько примеров того, как компьютеры инициируют различные
действия, проверяя результаты булевых условий. Оцениваем булевы выражения
Предположим, у нас есть две переменные, x и y, далее: x = 5 и y = 10. В
таблице   2   показаны   несколько   примеров   использования   блоков   отношений
Scratch.
Эти примеры показывают важные моменты, связанные с реляционными
операторами.   Вопервых,   мы   можем   использовать   их   для   сравнения   как
отдельных переменных (x, y), так и целых выражений (например, 2 × x и x +
6).   Вовторых,   результат   сравнения   всегда   либо   верен,   либо   неверен   (это
всегда булево значение). Втретьих, блок x = y не означает «Задать значение x
равным y». Он спрашивает: «x равен y?» Таким образом, когда утверждение
задать z значение (x = y) выполняется, значение x попрежнему равно 5.
Таблица 2. Примеры использования блоков отношений
Утверждение
Значение
z = верно ли
что (5 < 10)?
z = верно ли
что (5 > 10)?
z = верно ли
что (5 = 10)?
z = верно ли
что (10 > 2 × 5)?
z = верно ли что
(5 = 5)?
z = верно ли
что (10 < 5 + 6)?
z (результат)
z = истина
z = ложь
z = ложь
z = ложь
z = истина
z = истина
Объяснение
Потому что 5
меньше 10
Потому что 5
не больше 10
Потому что 5
не равно 10
Потому что 10
не больше 10
Потому что 5
равно 5
Потому что
10 меньше 11
Сравниваем буквы и строки
Представим   себе   игру,   в   которой   пользователь   пытается   угадать
секретный код, состоящий из одной буквы от A до Я. Игра считывает вариант,
предложенный   пользователем,   сравнивает   его   с   секретным   кодом   и
инструктирует пользователя, как ему улучшить свой ответ на основе порядка
букв в алфавите. Если секретная буква, скажем, Ё, а введен ответ Б, игра
должна   сказать   чтото   вроде  ≪После   Б≫,   тем   самым   дав   понять,   что
секретный код в алфавите стоит за буквой Б. Как сравнить правильную букву
с ответом игрока, чтобы решить, какое сообщение нужно вывести на экран?
Реляционные   операторы   в   Scratch   умеют   сравнивать   буквы.   Как
показано   на   рис.   4.1,   Scratch   сравнивает   буквы   на   основании   порядка   их
расположения   в   алфавите.   Поскольку   A   стоит   в   алфавите   раньше   Б,
выражение  A   <   Б  верно.   Тут   важно   помнить,   что   такого   рода   сравнения
нечувствительны к регистру. Заглавная A — то же самое, что и прописная a. Поэтому выражение A = a тоже верно. Зная это, вы можете проверить догадку
игрока при помощи следующего набора условий:
ЕСЛИ (ответ = секретный код), то сказать «Правда»
ЕСЛИ (ответ > секретный код), то сказать «До <ответ>»
ЕСЛИ (ответ < секретный код), то сказать «После <ответ>»
Рис. 4.1. Использование реляционных операторов для сравнения букв
Аналогично и со строками (рис. 4.2)
Рис. 4.2. Использование реляционных операторов для сравнения строк
Структуры решений
Раздел  Управление  в   Scratch   содержит   два   блока,   позволяющих
принимать   решения   и   управлять   действиями   в   ваших   программах:  если  и
если/иначе.   Используя   эти   блоки,   вы   можете   задать   вопрос   и   совершить
действие на основании ответа.
Блок если
Блок  если  —   структура   принятия   решений,   которая   дает   вам
возможность   обозначить,   должен   ли   какойто   набор   команд   выполняться
согласно   условиям   теста.   Структура   блока  если  и   схема   его   процессов
показаны на рис. 4.3. Рис. 4.3. Структура блока если
Рис. 4.4. Этот скрипт заставляет спрайт менять свой цвет,
когда он движется по правой стороне Сцены
Чтобы посмотреть на блок если в действии, создайте скрипт с рис. 4.4.
Он запускает цикл всегда, перемещает спрайт по Сцене, меняет его цвет и
заставляет его отпрыгивать, когда он касается краев Сцены.
Цикл всегда содержит в вашем скрипте блок если, который проверяет
положение по оси  x  после каждой команды  идти. Если позиция по  оси  х
больше нуля, спрайт должен сменить цвет. Когда вы запустите этот скрипт,
вы   заметите,   что   спрайт   меняет   цвет,   только   когда   движется   по   правой
половине Сцены. Это связано с тем, что блок изменить цвет эффект на 25
выполняется только тогда, когда условие положение x > 0 верно.
Используем переменные как флаги
Представим, что вы разрабатываете игру о приключениях в космосе, где
цель в том, чтобы разрушить атакующий вас флот боевых кораблей. Игрок – капитан корабля, управляет им при помощи клавиш со стрелками и стреляет
ракетами   при   помощи   «пробела».   Если   в   космический   корабль   игрока
определенное   количество   раз   попадает   вражеская   ракета,   корабль   теряет
способность   атаковать.   С   этого   момента   нажатие   на   клавишу   «пробел»
больше не должно приводить к запуску ракет, и капитану приходится принять
оборонительную   стратегию,   чтобы   не   допустить   еще   большего   количества
попаданий. Очевидно, что при нажатии клавиши «пробел» ваша программа
должна   проверять   состояние   корабля,   чтобы   принять   решение,   может   ли
игрок стрелять.
Обычно проверки такого рода осуществляются при помощи флагов —
переменных,   которые   вы   используете   для   выявления   того,   произошло   ли
интересующее   вас   событие.   Вы   можете   взять   любые   два   значения,   чтобы
описать статус события, но на практике обычно используют 0 (или ложь),
чтобы показать, что событие не произошло, и 1 (или правда), чтобы показать,
что оно произошло.
В   вашей   космической   стрелялке   вы   можете   использовать   флаг   под
названием  могуСтрелять,   чтобы   обозначить   состояние   корабля.   Тогда   1
будет означать, что корабль может стрелять ракетами, а 0 — не может. На
основе этого код для обработчика события — нажатия клавиши «пробел» —
может быть таким, как показано на рис. 4.5. В начале игры вы устанавливаете
1   в   качестве   значения   флага  могуСтрелять,   чтобы   показать,   что   корабль
способен   стрелять.   Когда   в   корабль   попадет   определенное   количество
вражеских   выстрелов,   вы   установите   флаг  могуСтрелять  на   0,   чтобы
показать, что боевая система вышла из строя. С этого момента нажатие на
«пробел» не будет приводить к пуску ракет.
Рис. 4.5. Использование флага для выполнения условия
Блок если/иначе
Представьте   себе,   что   вы   создаете   игру,   которая   должна   обучать
школьников младших классов основам математики. Игра предлагает задачу на
сложение,   а   затем   просит   ввести   ответ.   Ученик   должен   получить   балл   за
правильный ответ или потерять балл за неправильный. Вы можете выполнить
эту задачу при помощи двух утверждений если:
Если ответ правильный, добавить один балл на счет
Если ответ неправильный, вычесть один балл со счета
Вы   также   можете   упростить   эту   логику   и   сделать   код   более
эффективным, скомбинировав два утверждения в одно если/иначе: Если ответ правильный, добавить один балл на счет.
Иначе вычесть один балл со счета
Выбранное   условие   протестировано.   Если   оно   верно,   выполняются
команды из части блока  если. Если же неверно, выполняются команды из
части иначе. Программа будет выполнять только одну группу команд блока.
Такие   альтернативные   пути   внутри   программы   называются  ветвями.
Структура блока если/иначе и соответствующая ему блоксхема показаны на
рис. 4.6.
Рис. 4.6.
Структура блока
скрипта с использованием блока если/иначе (рис.4.7)
если/иначе
Пример
Рис. 4.7. Этот скрипт определяет, ввел ли пользователь четное число
или нечетное
Вложенные блоки если и если/иначе Если   вы   хотите   протестировать   более   одного   условия,   прежде   чем
совершить   действие,   вы   можете   вложить   несколько   блоков  если  (или
если/иначе) друг в друга, чтобы выполнить проверку. Рассмотрим скрипт на
рис. 4.8, который определяет, должен ли студент получать стипендию. Чтобы
получить ее, студент должен иметь: средний балл (GPA) выше 3,8 и оценку по
математике выше 92%.
Рис. 4.8. Вы можете
вложенные блоки если/иначе,
чтобы протестировать несколько условий
использовать
Первым делом тестируется выражение  GPA > 3.8. Если оно неверно,
нам не нужно проверять другое условие: студент не соответствует критериям
для получения стипендии. А вот если  GPA > 3.8  верно, нужно проверить
второе   условие.   Это   делается   при   помощи   вложенного   блока  если/иначе,
который проверяет условие  матБалл > 92. Если оно тоже верно, студент
получает стипендию. Если нет — студент не получает стипендию и на экране
появляется соответствующее сообщение. Урок 5
Логические операторы
В предыдущем разделе я рассказал, как использовать вложенные блоки
если  и  если/иначе,   чтобы   проверить   несколько   условий.   Но   это   можно
сделать и при помощи логических операторов.
Используя логические  операторы, вы можете комбинировать  два  или
более   выражения   отношений,   чтобы   получить   один   результат   формата
правда/ложь. Например, логическое выражение  (x > 5) и (x < 10) состоит из
двух логических выражений (x > 5 и x < 10), которые соединены при помощи
логического оператора И. Мы можем представить себе x > 5 и x < 10 как два
компонента   оператора  И;   результат   верен,   только   когда   верны   оба
компонента.   В   таблице   5.1.   приведены   три   логических   оператора,
используемых в Scratch, с коротким объяснением их значения.
 Таблица 5.1. Логические операторы
Оператор
Значение
Результат верен, только если оба утверждения верны
Результат верен, если одно из двух утверждений верно
Результат верен, если утверждение неверно
Оператор И
Оператор И использует в качестве параметров два выражения. Если оба
верны, И оказывается истиной, если нет – ложью. В таблице 5.2. приводятся
результаты для этого оператора по всем возможным комбинациям.
Таблица 5.2. Таблица истины для оператора И
X
истина
истина
ложь
ложь
Y
истина
ложь
истина
ложь
истина
ложь
ложь
ложь Рис. 5.1. Пример. Проверка множественных условий
при помощи вложенных блоков если и оператора И
Оператор ИЛИ
Оператор  ИЛИ  также   использует   в   качестве   параметров   два
выражения. Если одно из них верно,  ИЛИ  оказывается истиной. Оно будет
ложью, если оба выражения неверны. В таблице 5.3 приводятся результаты
для этого оператора по всем возможным комбинациям.
Таблица 5.3. Таблица истины для оператора ИЛИ
X
истина
истина
ложь
ложь
Y
истина
ложь
истина
ложь
истина
истина
истина
ложь
Чтобы продемонстрировать использование оператора  или, представим
себе, что в некой игре пользователи при попытке выйти на следующий уровень
ограничены во времени. Они также начинают игру с определенным запасом
энергии,   которая   расходуется   по   мере   прохождения   уровня.   Игра
заканчивается, если игрок не может выйти на следующий уровень в доступное
время   или   полностью   израсходует   всю   энергию   раньше,   чем   выйдет   на
следующий   уровень.   Остающееся   время   отслеживается   при   помощи
переменной
  а   уровень   энергии   –   переменной
энергияОсталось.
 времяОсталось,
Рис. 5.2 показывает, как эти условия могут быть проверены при
помощи вложенных блоков если/иначе (1) и оператора или (2).
 Рис. 5.2. Пример. Проверяем множественные условия при помощи вложенных блоков если и оператора ИЛИ
Оператор НЕ
 НЕ
использует   в   качестве   вводных   данных   только   одно   выражение.   Результат
верен, если выражение оказывается ложью, и неверен, если оно истинно (табл.
5.4).
Оператор
Таблица 5.4. Таблица истины для оператора НЕ
X
истина
ложь
ложь
истина
Возвращаясь   к   нашей   гипотетической   игре,   представим,   что
пользователь   не   может   выйти   на   следующий   уровень,   пока   его   счет   не
превысит 100 очков. Это хороший момент для использования оператора  НЕ
(рис. 5.3). Вы можете прочесть этот блок кода как «если счет не больше 100,
выполнить команду внутри блока если».
Рис. 5.3. Пример использования оператора НЕ
ПРАКТИЧЕСКАЯ РАБОТА №4. «Битва в космосе»
Смысл   нашей   игры   заключается   в   том,   чтобы   уничтожать   падающие
астероиды   и   избегать   огненных   шаров   (рис   5.4).   При   разработке   игры   мы
используем четыре спрайта: Космический корабль, Астероид, Огненный шар,
Лазер. Рис. 5.4. Интерфейс игры «Битва в космосе»
Первый спрайт – космический корабль, управляется кнопками влево/
вправо и стреляет при нажатии на пробел. При столкновении с астероидом
или огненным шаром меняет костюм, и игра останавливается. (рис 5.5)
Рис. 5.5. Скрипт спрайта космического корабля Второй   спрайт   –   лазер,   привязан   к   космическому   кораблю.   Виден
только при нажатии на клавишу пробел и летит пока у не больше 180 (рис 5.6)
Рис. 5.6. Скрипт спрайта лазер
Третий   спрайт   –   астероид,   падает   по   вертикали   рандомно,   при
столкновении   с   лазером   добавляется   очко,   скорость   падения   астероида
увеличивается (рис 5.7).
Рис. 5.7. Скрипт спрайта астероид Четвертый  спрайт  – огненный   шар, падает  под  заданным   углом,  при
столкновении с лазером добавляется очко, скорость падения огненного шара
увеличивается (рис 5.8).
Рис. 5.8. Скрипт спрайта огненный шар
Оптимизация кода. Подпрограммы в Scratch
Подпрограммы   очень   часто   используются   в   программировании.   По
другому   их   называют  процедурами   или   функциями.   В   программе   есть
маленькие   программки   (подпрограммы),   которые   мы   также   запускаем
нажатием всего лишь одной кнопки, после чего чтото происходит. Хотя на
самом   деле,   никакой   кнопки   нет.   Подпрограмма   внутри   программы
запускается   оттого,   что   ее  вызывают   по   имени  (рис.   5.9).   Одинаковые
отрезки   программы   вы   можете   создать   как  подпрограмму.   Благодаря
подпрограммам ваш код будет выглядеть аккуратно и понятно. Рис. 5.8. Схема работы подпрограммы
Рис. 5.9. Подпрограмма в Scratch Дополнительные возможности Scratch
У  Scratch
есть   дополнительные   свойства   интегрировать   со
сматртфонами и разными робототехническими конструкторами (Lego WeDo,
PicoBoard,  Arduino), которые подключаются к компьютеру через USB порт.
Для   этого   вам   необходимо   в   блоке   «Другие   блоки»   выбрать   «Добавить
дополнение» (рис. 5.10). При подключении PicoBoard, появятся черные блоки.
Рис. 5.10. Дополнительные подключаемые устройства
Как добавить датчики смартфона в Scratch
Если   у   Вас   есть   мобильное   устройство   (смартфон,   планшет)   с
операционной системой Android, его датчики можно подключить к Scratch
через WIFI. Emant Pte Ltd сделал программу, после установки которой ваше
мобильное   устройство   научится   передавать   в   скретчпроекты   данные
акселерометра и компаса. Сегодня эти датчики имеются во всех смартфонах
и планшетах. Акселерометр часто называют датчиком движения. Он следит за
изменением положения телефона, его перемещениями, помогая перевернуть
изображение на экране при повороте телефона.
Требования:
1) мобильное устройство (смартфон, планшет) с операционной системой
Android   версии   1.5   и   выше,   WIFI,   датчики   акселерометра   и   компаса   в
мобильном устройстве;
2) компьютер с установленной программой Scratch и WIFI.
Алгоритм установки и применения:
1. Один раз установить бесплатную программу Scratch Sensor с Android
Market на свой смартфон (планшет).
2. Узнать сетевой адрес компьютера (IP Address) и убедиться, что этот
компьютер доступен через WIFI.
3. Запустить установленную программу Scratch Sensor на смартфоне и
ввести   в   ее   окошке   IPкомпьютера,   на   котором   запущен   проект   Скретч,
нажать   кнопку   Connected/Disconnect   для   установления   связи   смартфона   с
компьютером. Рис. 5.11. Подключение смартфона к Scratch
Дополнительные ресурсы
1. До   начала   курса   программирование   в  Scratch,   ученикам
рекомендуем пройти основы алгоритма и системного мышления, используя
интернетресурс code.org.
2. После   прохождения   курса   программирования   в  Scratch,   вы
можете   продолжить   изучение   программирования   через  codecombat.com.
CodeCombat –  это игра, которая учит детей программировать в возрасте от 8
лет.   Подойдет   в   качестве   промежуточного   этапа   между   Scratch   и
JavaScript/Python. Интересный дизайн и правильно выстроенный контент. Дети
будут в восторге!
Также
Inventor
 .  edu.   App   Inventor   –   среда   визуальной   разработки
http
androidприложений,   требующая   от   пользователя   минимальных   знаний
программирования.
использовать
 ://   ai   2.   appinventor

 App
3.
можете

 .  mit

4.
Scratch for Arduino делает программирование под Arduino более
наглядным. Отличная программа для начала программирования Arduino, для
того   чтобы   вы   разобрались   как   с   ним   работать.   В   S4A,   плата   Arduino
представляет   собой   особый   вид   спрайта.   Спрайт   Arduino   автоматически
найдет USBпорт, к которому подключена плата. Существует возможность
подключения   к   нескольким   платам   одновременно,   просто   добавьте   новый
спрайт Arduino.

file_name: 1 день Программа Scratch.docx

информатика

group: Дисциплины

title: Scratch дегеніміз не?