Массивы. Движение по траектории

Содержание

Слайд 2

Массивы Массив — разновидность объекта, которая предназначена для хранения пронумерованных значений

Массивы

Массив — разновидность объекта, которая предназначена для хранения пронумерованных значений и

предлагает дополнительные методы для удобного манипулирования такой коллекцией.

Обычно массивы используются для хранения однотипных пронумерованных данных, например, список студентов в группе, их оценки, список товаров, их цена, курсы валют за разные дни, и т.п. Массивы задаются в блоке «Выражение» следующим образом:
mas = {} — это пустой массив; «mas» - имя массива.
mas = {1, 5, 6, 7, 8} — массив из 5 элементов.
Обращение к элементу массива:
mas[0] , mas[2], mas[4] — mas[i], где i — это номер элемента в массиве, начиная с 0.

Слайд 3

Движение по траектории Задача 3.2.1: Реализовать движение в лабиринте по траектории,

Движение по траектории

Задача 3.2.1:
Реализовать движение в лабиринте по траектории, заданной

массивом: trajectory = {3, 1, 3, 1, 3, 2, 3, 2, 3, 3, 2, 3, 1, 3, 2, 3, 2, 3}

Есть подпрограммы Вперед, Направо, Налево.
Кодируем их следующим образом:
Направо — 1
Налево — 2
Вперед — 3

Поле: 3.2.1-1

Слайд 4

Движение по траектории Реализация в TRIK Studio Объявите переменные: trajectory —

Движение по траектории

Реализация в TRIK Studio
Объявите переменные:
trajectory — массив с траекторией,

составленной по лабиринту;
i — индекс элемента в массиве.
Слайд 5

Движение по траектории Добавьте на сцену блок «Цикл». Количество итераций равно

Движение по траектории

Добавьте на сцену блок «Цикл».
Количество итераций равно количеству

элементов в массиве trajectory. В данном случае оно равно 18.
Не помеченная исходящая связь от блока «Цикл» ведёт на конец программы, отмеченный блоком «Конец».
Слайд 6

Движение по траектории Выполнение движений можно сделать через цепочку блоков if,

Движение по траектории

Выполнение движений можно сделать через цепочку блоков if, но

в данном случае более уместен блок switch.
В свойствах блока укажите элемент массива с номером.

Добавьте 4 связи: на подпрограммы вправо, влево, вперед и одну пустую. Пронумеруйте ветки в соответствии с описанием задачи.

Слайд 7

Движение по траектории После выполнения элементарного действия необходимо увеличить индекс элемента

Движение по траектории

После выполнения элементарного действия необходимо увеличить индекс элемента в

массиве и замкнуть цикл.
Блок таймер необязателен, т.к. действия у нас пошаговые в цикле.
Слайд 8

Движение по траектории Общий вид алгоритма:

Движение по траектории

Общий вид алгоритма:

Слайд 9

Движение по траектории Примеры массивов для Задачи 3.2.1: trajectory = {3,3,1,3,3,1,3,3,1,3}

Движение по траектории

Примеры массивов для Задачи 3.2.1:
trajectory = {3,3,1,3,3,1,3,3,1,3} //

количество итераций 10
Поле: 3.2.1-2

trajectory = {3,2,3,1,3,3,1,3,1,3,2,3,1,3,2,3,2,3,3,2,3} // количество итераций 21
Поле: 3.2.1-3

Слайд 10

Запись траектории Задача 3.2.2: Пройдите лабиринт по правилу правой руки, записывая

Запись траектории

Задача 3.2.2: Пройдите лабиринт по правилу правой руки, записывая траекторию

в массив. Робот должен остановиться в черном квадрате.

Выведите массив на экран робота в 2 столбца. Вывод на экран должен быть не меньше 2 сек. Кроме вывода массива, разрешается вывести слово «Ввод», если вы ждете нажатия кнопки.

Поле: 3.2.2
Модель робота: двухмоторный робот с двумя датчиками расстояния и одним датчиком освещенности.

Слайд 11

Запись траектории Даны подпрограммы Вперед, Направо, Налево. Закодируйте их следующим образом:

Запись траектории

Даны подпрограммы Вперед, Направо, Налево.
Закодируйте их следующим образом:
Вперед —

3
Направо — 1
Налево — 2

Объявите переменные: move{} — пустой массив траектории
i — индекс элемента в массиве

Слайд 12

Запись траектории Напишите или загрузите алгоритм езды по правилу правой руки:

Запись траектории

Напишите или загрузите алгоритм езды по правилу правой руки:

Слайд 13

Запись траектории В начале программы задайте массив и индекс элемента в

Запись траектории

В начале программы задайте массив и индекс элемента в массиве.
Перед

каждым элементарным действием добавьте блок «Выражение» с присвоением элементу массива соответствующего значения и увеличением индекса:
Слайд 14

Запись траектории Добавьте: На порт А5 — датчик освещенности. На порты

Запись траектории

Добавьте:
На порт А5 — датчик освещенности.
На порты A1 и А2

— датчики расстояния.

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

Слайд 15

Запись траектории Условие выхода из лабиринта через блок «Условие»: В начало

Запись траектории

Условие выхода из лабиринта через блок «Условие»:

В начало цикла добавьте

условие выхода по датчику освещенности.

Рекомендуется использовать цикл с предусловием «While»:

Слайд 16

Запись траектории После выхода из цикла остановите моторы и выведите массив

Запись траектории

После выхода из цикла остановите моторы и выведите массив траектории

на экран при помощи подпрограммы, написанной ранее.
Слайд 17

Запись траектории Подпрограмма вывода на экран: Не забудьте изменить имя массива на актуальное.

Запись траектории

Подпрограмма вывода на экран:

Не забудьте изменить имя массива на актуальное.

Слайд 18

Запись траектории

Запись траектории

Слайд 19

Запись траектории Задача 3.2.3 (самостоятельная): Реализуйте алгоритм записи траектории при движении

Запись траектории

Задача 3.2.3 (самостоятельная):
Реализуйте алгоритм записи траектории при движении по правилу

правой руки.

Условием остановки для робота является «черная метка». После остановки робот должен развернуться на 180 градусов.
После разворота робот должен убрать из массива траектории части совпадающие с {1,3,3,2,2,3,3,1}.
Робот должен проехать по новой траектории без использования датчиков.

Слайд 20

Запись траектории Проверьте решение задачи также на этой карте.

Запись траектории

Проверьте решение задачи также на этой карте.