"Вы читаете о роботах и программировании и думаете: «Было бы здорово сделать что-то подобное самому!» Теми, кем эта идея овладевает чуть больше просто мыслей смотрят кто и как делал своего робота. Читают статьи, смотрят видео. На картинках все понятно. В видеороликах тоже обычно показываются уже готовые продукты, а также сжато показываются технологии их изготовления. И вроде бы то же всё понятно: отпилил, прикрутил, припаял, соединил, запрограммировал вон на той программе вот этим кодом."

пятница, 28 декабря 2018 г.

Практическая работа №5

Используя планшет с рисунком-1 заполнить верхнюю таблицу на рисунке 2. Затем составить и записать маршрут движения робота по координатным точкам сплошной линией. Записать его ниже верхней таблицы как показано на рисунке 2.
рисунок 1
рисунок 2

Затем в программе Skratch2 оформим алгоритм из таблицы


вторник, 18 декабря 2018 г.

среда, 12 декабря 2018 г.

Основы рисования

Компьютерная программа выполняет ваши приказы, а не ваши желания. (Закон Грида).

Виртуальный робот - та же компьютерная программа, следовательно рисование происходит согласно алгоритма движения вашего робота. Линия нарисованная роботом это след его перемещений или движений. Для того чтобы написать алгоритм создания рисунка нам потребуются дополнительные команды входящие в БЛОК ПЕРО.
  1. ОЧИСТИТЬ
  2. ОПУСТИТЬ ПЕРО
  3. ПОДНЯТЬ ПЕРО
Кроме этого в тетради нужно будет оформить планшет для снятия координат вашего рисунка. Размер вашего планшета 20 см на 14 см, область которую он захватывает на сцене - красный прямоугольник. Длинна и ширина одной клетки соответствует 10 шагам робота.
Порядок работы;

  1. На планшете нарисовать рисунок, так чтобы узловые точки рисунка лежали на пересечении линий планшета
  2. Каждой точке планшета присвоить имя
  3. Записать координаты каждой точки планшета по X и Y (длинна и высота каждой клетки 10 шагов, например левая красная граница на пересечении с горизонтальной красной линией (осью Х) имеет координаты -200,0)
  4. Записать маршрут движения робота по точкам для создания рисунка
  5. Определить расстояния между точками и способы перехода в заданную точку
  6. Написать алгоритм движения робота для создания рисунка




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

Ошибка в определении расстояния между точками становиться видна после запуска программы 

воскресенье, 9 декабря 2018 г.

Программа управления светодиодом


Программа должна при каждом нажатии кнопки менять состояние светодиода, т.е. включать и выключать его. В этой программе надо:
  • считать состояние кнопки;
  • сравнить его с предыдущим состоянием;
  • если предыдущее состояние было отжата, а текущее состояние нажата – инвертировать состояние светодиода.
Т.е. программа должна отлавливать фронт кнопки или перепад состояния сигнала. Есть два фронта сигнала:
  • с высокого состояния в низкое ( --_ );
  • с низкого состояния в высокое (_--).
Нажатие кнопки будет соответствовать перепаду сигнала из высокого в низкое. Это событие мы и должны выделить.
/*  Программа sketch_6_1 урока 6 
 *  На каждое нажатие кнопки инвертирует состояние светодиода
 *  Работает неправильно из-за дребезга контактов */ 
   
#define LED_PIN 13     // номер вывода светодиода равен 13
#define BUTTON_PIN 12  // номер вывода кнопки равен 12
boolean buttonState;      // состояние кнопки 
boolean buttonPrevState;  // предыдущее состояние кнопки 
boolean ledState;         // состояние светодиода
void setup() {
  pinMode(LED_PIN, OUTPUT);        // определяем вывод 13 (светодиод) как выход
  pinMode(BUTTON_PIN, INPUT_PULLUP);  // определяем вывод 12 (кнопка) как вход
}
void loop() {
  buttonState= digitalRead(BUTTON_PIN); // записываем состояние кнопки в переменную buttonState
  
  if ( (buttonPrevState == HIGH) && (buttonState == LOW) ) {
    
    // предыдущее состояние кнопки - отжата, а текущее - нажата
    ledState= ! ledState;             // инверсия состояния светодиода
    digitalWrite(LED_PIN, ledState);  // запись состояния светодиода из переменной нв выход    
  }
  
  buttonPrevState= buttonState;         // предыдущее состояние кнопки = текущему
}
Выделение события происходит в конструкции
if ( (buttonPrevState == HIGH) && (buttonState == LOW) )
&& это логическое И, производимое над условными выражениями. В результате его применения будет выработано условие истинно, если оба выражения истинны. В данном случае блок оператора if будет выполнен, если одновременно предыдущее состояние кнопки = HIGH и текущее состояние кнопки = LOW. Т.е. если кнопка была отжата в предыдущей проверке, а  сейчас нажата.
По этому условию инвертируется состояние светодиода.
В принципе, несложная программа. Но загрузите ее в плату Ардуино и проверьте, как она работает.
Неправильно она работает. Иногда, на нажатие кнопки, она инвертирует состояние светодиода, иногда нет. Часто светодиод мерцает в момент нажатия. Происходит это потому, что сигнал с кнопки совсем не такой, как мы его представляем.
по материалам  http://mypractic.ru/urok-6-obrabotka-drebezga-kontaktov-knopki-interfejs-svyazi-mezhdu-programmnymi-blokami.html
Проанализируем в ИС ДРАКОН предложенный вариант (функцию void loop()) так как предложенный выше вариант рассчитан скорее на работу программы с компьютером, чем с контроллером. 
 альтернативный вариант предусматривает защиту от долгого нажатия кнопки, которое может перевести к миганию светодиода. Кроме того экономиться оперативная память, что для контроллера очень значимо.
программный  код представлен ниже

    // ИС Дракон. Маршрутный транслятор.
    // Y:\home\deniska\Документы\др длкр\Новый_17.drt
    // 33. Схема - Гном, Изменение 09.12.2018 13:41:08
    // 37. Модуль, Начало

void setup()
{

pinMode(13, OUTPUT);        // определяем вывод 13 (светодиод) как выход
pinMode(12, INPUT);  // определяем вывод 12 (кнопка) как вход

pinMode(13, INPUT);  // определяем вывод 13 (светодиод) как вход
}
    // Y:\home\deniska\Документы\др длкр\Новый_17.drt
    // 4. Схема - процедура, Изменение 09.12.2018 14:52:18, Начало

void loop()
{

    // ==================== Шампур
    // 5. Заголовок / альтернатива
    // 38. Вопрос / digitalRead(12) == HIGH == Да

    // -19. Левый комментарий / предыдущее состояние кнопки - отжата, а       текущее - нажата
if (digitalRead(12) == HIGH) goto L42; 
    // 6. Конец / Конец
goto L_end4; 
    // ==================== Шампур
L42: ;
    // 42. Вопрос / digitalRead(13)== LOW == Да
if (digitalRead(13)== LOW &&  digitalRead(12) == HIGH) goto L20; 
    // 21. Полка / запись состояния светодиода на выход / digitalWrite(13, LOW);
digitalWrite(13, LOW);
L40: ;

    // 40. Вопрос / digitalRead(12) == HIGH == Да
    // -24. Левый комментарий / пока конопка нажата

if (digitalRead(12) == HIGH) goto L_end4;
goto L_end4; 

    // ==================== Шампур
L20: ;
    // 20. Полка / запись состояния светодиода на выход / digitalWrite(13, HIGH);
digitalWrite(13, HIGH);
goto L40; 

    // 4. Схема, Конец
L_end4: ;
//
}
    // 37. Модуль, Конец
//

тоже самое в скретче виртуальной лаборотории
void setup()
{
  pinMode(12, INPUT);
  pinMode(13, INPUT);
  pinMode(13, OUTPUT);
}

void loop()
{
  if (digitalRead(12) == HIGH) {
    if (digitalRead(13) == LOW) {
      digitalWrite(13, HIGH);
    } else {
      digitalWrite(13, LOW);
    }
    while (digitalRead(12) == HIGH) {
    }
  }
  
}

Структура программы Ардуино и типы данных


Структура программы Ардуино  достаточно проста и в минимальном варианте состоит из двух частей setup() и loop().

void setup()  { 
//  код выполняется один раз при запуске программы 
}
void loop()  {
// основной код, выполняется в цикле 
}

Функция setup() выполняется один раз, при включении питания или сбросе контроллера. Обычно в ней происходят начальные установки переменных, регистров. Функция должна присутствовать в программе, даже если в ней ничего нет.
После завершения setup() управление переходит к функции loop().  Она в бесконечном цикле выполняет команды, записанные в ее теле (между фигурными скобками). Собственно эти команды и совершают все алгоритмические действия контроллера.
Первоначальные правила синтаксиса языка C.

точка с запятой  Выражения могут содержать сколь угодно много пробелов, переносов строк. Признаком завершения выражения является символ ”точка с запятой ”.
z = x + y; 
z = x      
+ y     ;
{   }  фигурные скобки определяют блок функции или выражений. Например, в функциях setup() и loop().
/* … */ блок комментария, обязательно закрыть.
/* это блок      комментария  */
// однострочный комментарий, закрывать не надо, действует до конца строки.
// это одна строка комментария

Переменные и типы данных.

Переменная это ячейка оперативной памяти, в которой хранится информация. Программа использует переменные для хранения промежуточных  данных вычислений. Для вычислений могут быть использованы данные разных форматов, разной разрядности, поэтому у переменных в языке C есть следующие типы.

Типы данных выбираются исходя из требуемой точности вычислений, форматов данных и т.п. Не стоит, например, для счетчика, считающего до 100, выбирать тип long. Работать будет, но операция займет больше памяти данных и программ, потребует больше времени.

воскресенье, 2 декабря 2018 г.

Защита проекта 6-х классов Глебом Глотовым и Максимом Шерстневым

30 ноября 2018 проходила защита проекта робота "Автоматическое устройство контроля доступа в помещения" для представлении на конкурсе "Инженеры и изобретатели" под эгидой главнокомандующего ВМФ РФ. http://engineers-nvmu.tilda.ws/

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

Система управления представленного проекта представлена в виде трёх устройств - центрального блока управления, блока для помещения 1 типа блока для помещения 2 типа. Помещение 1 типа это это те которые в течении рабочего дня должны быть открыты, а в нерабочее время закрыты. Управление открытием и закрытие доступа с центрального устройства. Помещения 2 типа могут быть закрыты в рабочее время, но обязательно закрыты в нерабочее время, поэтому закрытие доступа как с местного(локального) устройства, так и централизованно с центрального устройства управления. 
Центральное устройство управления, как локальное устройство для помещений 1 типа имеет только дежурный режим работы, а локальное устройство для помещений 2 типа дежурный и рабочий режимы работы.
В рабочем режиме действия датчиков движения отключено, а в дежурном режиме для (помещений 2 типа) заблокированы все клавиши наборной панели кроме (*).
Для открытия доступа необходимо ввести код доступа через набор кода с соответствующей панели ввода устройства(код для центрального устройства управления один, для локальных каждому устройству присвоен свой код открытия/закрытия доступа) начиная с клавиши (*) и заканчивая (#). 

Нажатие каждой разрешённой режимом работы устройства клавиши сопровождается звуковым сигналом.
Для примера ниже приведен алгоритм работы с локальным устройством доступа.

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

Для каждого из устройств был создан свой алгоритм управления, а затем по этому алгоритму был создан программный код, который загружался в виртуальной лаборатории в каждое конкретное устройство. Программный код, как и сам алгоритм разрабатывался в программе ИС ДРАКОН.

Кроме непосредственно самого устройства была разработана техническая документация робота, презентация представления проекта.
Видео отчёт по защите






среда, 14 ноября 2018 г.

Первые итоги кружка

Прошло два месяца заседаний кружка Робототехника и можно подвести первые итоги. В связи с определенными обстоятельствами материальной базы - конструкторов в нашем распоряжения нет, поэтому мы занимаемся робототехникой с помощью виртуальной лаборатории TINKERCAD (https://www.tinkercad.com/#/), которая позволяет разработать систему управления роботом состоящую, как из виртуальных объектов управления, так и программного кода который можно загрузить в реальный контроллер (Arduino Uno) реальной системы управления
Виртуальный робот светофор, для которого был разработан алгоритм управления реализованный на языке С (ИС Дракон-С) и затем внедренный в виртуальную лабораторию
Следующие задание выполненное членами кружка (клуба)  это создание виртуальной системы управления простейшим роботом - автомобилем, который должен останавливаться при наезде на препятствие. Задача ребят было создать систему управления двигателем состоящую из двух элементов питания, выключателя и контактной кнопки инвертора (кнопка + электромагнитное реле работающие на размыкание контакта), а также аналогичную схему управления но с добавлением в виртуальную схему контроллера. 

Работы членов клуба Робототехника

Рабочий стол одного из членов клуба

Выполненная работа 13.11.18
автор Клосинский Александр 5-г класс

Выполненная работа 13.11.18
автор Утенков Александр 5-г класс

Наиболее активные члены клуба Клосинский Александр, Трещалин Григорий, Алексеев Евгений, Лисичкина Ульяна, Трибулович Тимофей, Китов Тимофей, Потолов Владимир

вторник, 13 ноября 2018 г.

суббота, 10 ноября 2018 г.

ПРАКТИЧЕСКАЯ РАБОТА №1

Практическая работа направлена на составления алгоритма с использованием элемента "ВСТАВКА" и с последующим созданием скрипта в программе Scretch2.0




четверг, 8 ноября 2018 г.

Конструируем машинку робота

Робот должен подъезжать к препятствию и останавливаться, при обнаружении препятствия должен мигать светодиод. Так как мы будем конструировать виртуального робота на базе лаборатории  Tinkercad то нам необходимы сведения о компонентах нашего робота - датчиках и актюаторов. Датчиками нашего робота может быть датчик касания (кнопка) или ультрозвуковой дальномер. Актюаторами будет электропривод и светодиод.
Электропривод довольно мощный актютор, поэтому его как правило подсоединяют через специальную плату управления электроприводами

Плата управления электроприводом
  

Эта плата управляется микросхемой L293D, которая показана ниже. Несомненным плюсом данной микросхемы является раздельное питание логической части микросхемы, напряжение питания которой лежит в приделах 4.5-5 вольт (VSS), и силовой части питания двигателей (VS). 
Используя данную микросхему мы можем управлять двигателями с довольно широким диапазоном питающего напряжения от 4.5 до 36 вольт, но при этом, L293D может выдать всего лишь 600mА продолжительного тока нагрузки на каждый канал. Пиковый (максимальный) ток может кратковременно подскочить до 1.2A.
Так же из положительных сторон данной микросхемы следует отметить её непривередливость к напряжению входных сигналов подаваемых на выводы INPUT.
Логический "0" распознается микросхемой когда входное напряжение <1.5Вольт.
Логическая "1" появляется при входном напряжении лежащем в пределах от 2.3 до 7Вольт. 
Диапазон рабочих температур от -40°C до +150°C
Скорость переключения до 5 kHz
Итак, разберем по полочкам левый борт. Вывод ENABLE1 это главная фигура в управлении левым каналом, без лога единицы на его выводе (или ШИМ, об этом чуть позже) ничего работать не будет, вне зависимости от того что творится на выводах INPUT1 и INPUT2.
Выводы INPUT1 и INPUT2 задают направление вращения мотора. Их можно сравнить с рулем машины, тем более, что в данном случае сравнение подходит идеально, ведь мы не можем повернуть руль сразу в две стороны, а необходимо выбирать одну из двух. Из вышесказанного следует, что для поворота нам надо подать логическую единицу на вывод INPUT1, а на INPUT2 подать логический ноль. Для смены направления поменять местами INPUT1 "0", INPUT2 "1".
При подаче одинаковых логов мотор вращаться не будет, следовательно вращение можно остановить либо подачей логического нуля на вывод ENABLE1, при любой конфигурации IN1 и IN2, либо одинаковыми логами на IN1 и IN2, не изменяя конфигурации вывода EN1 (данный вариант мы и рассмотрим ниже).
Контакты GND соединяются с отрицательным полюсом источника питания (земля).
Оставшиеся выводы OUTPUT1 и OUTPUT2 служат непосредственно для подключения мотора.
Правый канал работает абсолютно идентично.
Теперь о самом электроприводе.  Простейший двигатель, являющийся машиной постоянного тока, состоит из постоянного магнита на индукторе (статоре), одного электромагнита с явно выраженными полюсами на якоре (двухзубцового якоря с явно выраженными полюсами и с одной обмоткой), щёточноколлекторного узла с двумя пластинами (ламелями) и двумя щётками.
 На динамической иллюстрации показан простейший электромотор. В однородном магнитном поле вертикально располагаем проволочную рамку и пропускаем по ней ток. Что происходит? Рамка проворачивается и по инерции двигается какое-то время до достижения горизонтального положения. Это нейтральное положение – мёртвая точка — место, где воздействие поля на проводник с током равно нулю. Чтобы движение продолжилось, нужно добавить ещё хотя бы одну рамку и обеспечить переключение направление тока в рамке в нужный момент. На обучающем видео  хорошо виден этот процесс.



Электродвигатель постоянного тока (ДПТ) — электрическая машина постоянного тока, преобразующая электрическую энергию постоянного тока в механическую энергию.

По материалам
https://masterok.livejournal.com/1225507.html
http://zelectro.cc/L293D



воскресенье, 28 октября 2018 г.

ДРАКОН, СКРЕтЧ, С и виртуальная лаборотория

Виртуальная лаборатория Tinercad предоставляет возможность в режиме реального времени создавать виртуальную систему управления на микроконтроллера Arduino Uno, а так же позволяет создать текст программы для загрузки в реальный контроллер. Язык программирования скретч. Также возможно тестирование программы управления написанной на языке СИ в сторонних приложениях.
Рассмотрим сильные и слабые стороны способов создания пограммы управления.
Штатный способ - это разработка программы управления штатной системой разработки на языке скретч. Созданная программа автоматически получает: настройки задействованных портов контроллера, подключения сторонних библиотек для некоторого подключенного оборудования. Минус данного подхода заключается в сложности создания алгоритма управления максимально адаптированного для конкретных условий применения изделия, а также некоторыми ограничениями языка СКРЕТЧ.
Для разработки алгоритма управления очень хорошо подходит язык ДРАКОН, благодаря которому алгоритм управления становиться максимально понятным и который может легко показать пути оптимизации управления. Так же ДРАКОН позволяет разработанный алгоритм преобразовывать в текст программы управления, путём подключения к нему языка программирования.
Таким образом у нас есть возможность создавать свою программу управления и тестировать её на созданном в виртуальной лаборатории устройстве в режиме реального времени. Одним из недостатком этого метода видится необходимость обладание знаниями языка программирование С, а также структуры скрипта - программы загружаемый в контроллер.
 Есть ли возможность обойти некоторые выше указанные проблемы? Да они есть. Один из способов это создание электронной справочной системы команд управления портами контроллера(файл со схемами ГНОМ содержащий команды на языке СИ, как для заголовочной части скрипта, так и тела скрипта). Также возможно создать заголовочную часть скрипта в автоматическом режиме используя возможности виртуальной лаборатории, а так как для созданной схемы подключения устройств заголовочная часть неизменна, то ее можно скопировать и использовать в дракон-схемы в иконке МОДУЛЬ.

суббота, 20 октября 2018 г.

ДРАКОН, СКРЕТЧ и язык С

Для обучения основам управления рассмотрим робота регулирующего пешеходный переход через автомагистраль, оснащенного кроме раздельными светофорами, шлагбаумом для пешеходов ультрозвуковым дальномером для контроля пешеходного перехода.
Создав робота в виртуальной лаборатории мы получили возможность проверки алгоритма управления в режиме реального времени, а также возможность написать скрипт не только на языке С, но и с помощью языка скретч, что значительно упрощает написание полноценной программы управления.
Для достижения заданной цели мы сначала разработаем алгоритм управления, затем реализуем по возможности на языке скретч и только потом рассмотрим, как такую программу написать на языке программирования С. 
 Алгоритм для управления роботом светофором на Arduino Uno создадим используя ИС ДРАКОН в режиме создания алгоритма.
общая схема алгоритма
Используя полученный ранее алгоритм запишем его на вкладке КОД(режим блоки) с помощью встроенного редактора СКРЕТЧ. Проверив его робото-способность вспомним структуру скрипта.
из схемы видно, что написанный нами алгоритм управления помещается в тело скрипта, таким образом если мы будем вносить только программные изменения в робота то верхняя часть скрипта остается неизменной. Запомним. Протестировав виртуального робота получаем рабочую программу на скретч, которую можно сохранить в текстовом формате на языке С(файл *.ino). Собственно на  этом можно и остановиться, но в ходе тестирования выясняется, что скретч функционально ограничен и иногда нужную нам опцию в управлении роботом можно написать только на языке С в текстовом режиме. Для реализации этого начинания (срочное прерывание режима "переход" вне зависимости от показаний ультрозвукового датчика) перейдем в ИС ДРАКОН и внесем соответствующие изменения в дракон-схему. Осталось переписать программу в ручном режиме на С. Для этого:

  1. Добавим схему ГНОМ и выберем иконку МОДУЛЬ. 
  2. Перейдем в виртуальную лабораторию откроем вкладку код в режиме блок+текст. В крайне правом окне мы увидим нашу программу на языке С в текстовом режиме. Скопируем в буфер обмена текст от начала до void loop(). 
  3. Переходим в ИС ДРАКОН и устанавливаем режим "программирование". 
  4. Переходим к иконке модуль. Щелкаем мышкой в третий квадрат (считаем слева на право под иконкой) и вставляем из буфера обмена скопированну часть скрипта. 
  5. Далее с новой строчке вносим служебные строчки ИС ДРАКОН
      //Shema
      //
   6. В саму иконку модуль необходимо поместить:
      \swetoforka_C.ino
     затем ниже поместить копию ссылки из колонтитула         дракон-схемы.
   7. Начинаем работу с дракон-схемой. Третий квадрат  в колонтитуле дракон-схемы заполняется следующим образом:
      void loop()
      {
       //Shema
       //
      }
остальные третьи квадратики заполняются командами на языке С(список команд  файле "команды для ардуино.drt" папка ДРАКОН_С).
   8. Далее нажимаем клавишу F9 и если все правильно заполнено то получаем текстовик программы, который для проверки можно скопировать в виртуальную лабораторию(вкладка КОД режим текст) заменив им предыдущий текст скрипта.

Таким образом при разработки скрипта для  робота мы смогли объединить три программы, которые позволили нам написать скрипт на низкоуровневом языке программирования совершенно не зная его основ.  

среда, 17 октября 2018 г.

Графический язык для алгоритма на СКРИПТ

Вы читаете о роботах и программировании и думаете: «Было бы здорово сделать что-то подобное самому!» Теми, кем эта идея овладевает чуть больше просто мыслей смотрят кто и как делал своего робота. Читают статьи, смотрят видео. На картинках все понятно. В видеороликах тоже обычно показываются уже готовые продукты, а также сжато показываются технологии их изготовления. И вроде бы то же всё понятно: отпилил, прикрутил, припаял, соединил, запрограммировал вон на той программе вот этим кодом. 
Для решения поставленных задач человечество создает искусственные языки. Основное их отличие от естественны языков на которых строится общение между людьми, это строго ограниченный запас слов(семантика) и очень строгие правила синтаксиса.  В графических искусственных языках это форма графического элемента, его расположение, способы связи одного элемента с другим. Какое либо своеволие в изображении элементов графического языка НЕДОПУСТИМО.
Для создания программ(скетчей), часто используются графические языки программирования, такие например как ДРАКОН, Sketchware,  Язык последовательных функциональных схем SFC (Sequential Function Chart),  App Inventor и так далее. 
Для нужд школьников был разработан простой графический язык(СКРИПТ) в виде вертикального графа задача которого организовать работу школьника в семействе программ Sketch 

иконки языка СКРИПТ


структура языка СКРИПТ

алгоритм записанный на языке СКРИПТ


вторник, 16 октября 2018 г.

Метод матрешки в алгоритме скретча

Алгоритм предложенный в образце оформления движения по периметру сцены конечно правильный, но слишком сложный для восприятия.  С другой стороны образец оформления алгоритма скретча наиболее подобно описывает порядок действий, однако большие алгоритмы будут теряться на фоне обилия графических элементов. Попробуем упростить восприятие алгоритма скретча на примере того же алгоритма скрипта движения по периметру сцены. Представим данный алгоритм в виде структуры из вставок, где каждая вставка бывший комментарий.
  Вставка изображается иконой "КОММЕНТАРИЙ" с последующий вертикальной чертой. Каждой вставке будет соответствовать структура действий для выполнения указанной задаче вставки




Таким образом мы разбили большой алгоритм на пять маленьких удобных для разработки