Разделы

Составление алгоритма работы

Программа работает по следующему алгоритму. Изначально происходит инициализация всех глобальных переменных и требуемых функций. Инициализируются следующие переменные:, yo - координаты окружности, от которых начинается ее построение.- позиция окружности. Всего возможны 4 варианта изначального расположения окружности (верх-лево, верх-право, низ-лево, низ-право), из которых, собственно, и начинается движение шариков. Изначальное расположение выбирается случайным образом. Номер позиции передается в переменную-флаг - fl_okr._spd - переменная которая определяет скорость движения шариков._h_r, fl_h_l - переменные флаги, в которых фиксируется положение рук.

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

Функция int rand_d() Возвращает псевдослучайные целые числа в диапазоне от 0 до 10. Возвращаемое значение считается следующим образом. Стандартная функция rand() языка С вызывается 2 раза, суммируется попарно с квадратами значений передаваемыми функциями get_adc(1) и get_adc(2). Полученные суммы перемножаются между собой и вызываемой в третий раз функцией rand(). Остаток от деления на 11 полученного произведения и есть и есть наше возвращаемое значение.

Функция void put_line() выводит отрезок по двум заданным конечным точкам. В основе функции лежит формула прямой y=kx, где k равен тангенсу угла наклона прямой относительно оси ох декартовой системы координат. Изначально передаваемы координаты точек передаваемые в функцию приводятся к стандартному виду x1<x2. Далее рассчитывается тангенс угла наклона. Далее - с шагом приращения равному 1по ох(или оу в зависимости от угла наклона) мы рассчитываем по вышеуказанной формуле недостающую координату и ставим точку в полученных координатах. Процесс будет повторяться до тех пор, пока получаемая координата не будет равна конечной координате прямой.

Функция select_hand() включает в себя целое дерево используемых функций. Сама функция select_hand() лишь поочередно вызывает функции left_hand() и right_hand(), предварительно очистив рабочую область. Функции left_hand() и right_hand() отвечают за выбор положения левой и правой рук соответственно. Обе функции считывают значения аналого-цифрового преобразователей: с первого считывает функция отвечающая за левую руку, со второго соответственно - правая. В зависимости от полученных значений возвращается значение флага положения рук и вызывается функция прорисовки положения рук.

Другие материалы

Релейная защита и автоматика
Мощность ТЭЦ Sтэц = 450 МВА; Мощность кз Sкз = 400 МВА; Напряжение ТЭЦ Uтэц = 6.3 кВ; Ток (А) и реак.сопр. (Ом) реактора РБА-6(10)кВ =1000-0,22; Кабельная линия ТЭЦ-ГРП ...

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

Расчёт характеристик сигналов и каналов связи
На современном этапе развития перед железнодорожным транспортом стоят задачи по увеличению пропускной и провозной способности, грузовых и пассажирских перевозок, уменьшению времени оборотов вагонов и ...

Копирайт 2019 : www.ordinarytech.ru