Программная реализация алгоритмов и методов, используемых в системах управления роботами.

3.1.решение прямой задачи кинематики (ПЗК) для манипуляционного робота с вертикально-ангулярной кинематикой типа PUMA.

3.2.решение прямой задачи кинематики (ПЗК) для манипуляционного робота с горизонтально-ангулярной кинематикой типа SCARA .

3.3.решение прямой задачи кинематики (ПЗК) для трехзвенного робота УРТК с цилиндрической системой координат.

3.4.решение прямой задачи кинематики (ПЗК) для трехзвенного робота УРТК с прямоугольной системой координат.

3.5.решение прямой задачи кинематики (ПЗК) для пятизвенного робота УРТК (степени X , Y , Z , W и F ).

3.6.решение обратной задачи кинематики для манипуляционного робота с вертикально-ангулярной кинематикой типа PUMA .

3.7.решение обратной задачи кинематики для манипуляционного робота с горизонтально-ангулярной кинематикой типа SCARA .

3.8.решение обратной задачи кинематики для трехзвенного робота УРТК с цилиндрической системой координат.

3.9.решение обратной задачи кинематики для трехзвенного робота УРТК с прямоугольной системой координат.

3.10.решение обратной задачи кинематики для пятизвенного робота УРТК (степени X , Y , Z , W и F ).

(Примечание: <1> <2>)

Прикладные задачи.

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

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

• фамилия, имя и отчество студента;

• дата его рождения;

• сведения о сданных студентом зачетах (максимальное количество зачетов — 10) и датах их сдачи;

• сведения об экзаменационных оценках студента (максимальное количество экзаменов — 5) и датах их сдачи.

Максимальное количество студентов в группе — 20.

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

Таблица 1

Выполняемая функция № варианта
 
Ввод имени файла с базой данных + + + +
Ввод, корректировку и удаление информации о студенте + + + +
Поиск информации в базе данных по заданным фамилии, имени и отчеству студента + + + +
Поиск информации о студентах, которым на момент поиска исполнилось заданное количество лет +      
Поиск информации о студентах, имеющих академические задолженности   +    
Поиск информации о студентах, сдавших сессию     +  
Сортировку базы данных по фамилиям студентов (в алфавитном порядке)       +
Вывод на экран монитора всей информации из базы данных + + + +
Вывод на экран монитора найденной информации из базы данных + + + +
Вывод на печатающее устройство всей информации из базы данных +   +  
Вывод на печатающее устройство найденной информации из базы данных   +   +

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

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

При организации хранения информации следует использовать структуры (например, для хранения дат, сведений о зачетах, экзаменах и т. д.) и массивы указателей на структуры (для хранения информации о группе студентов.

4.3. Разработка программы, позволяющей найти на указанном жестком диске (например, C :) файл (файлы):

• по заданному имени (или шаблону, содержащему символы ‘?' и ‘*');

• по дате создания (указывается начальная и конечная даты для поиска);

• по размеру файла (указывается минимальный и максимальный размер файла в байтах).

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

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

4.4. Разработка программы, позволяющей просмотреть на экране монитора содержимое указанного файла в текстовом и в шестнадцатиричном виде ( Hex Dump ).

Имя просматриваемого файла передается программе в качестве параметра при ее вызове. Пример вызова программы (если имя загрузочного модуля view . exe ) для просмотра файла с именем “ myfile . doc ”:

VIEW MYFILE.DOC

Размер файла может быть любым (в том числе и превышающем 65535 байт).

4.5. Разработка программы для сортировки содержимого файла. Файл имеет записеориентированную структуру. Количество записей в файле может быть любым.

При запуске программы в диалоговом режиме пользователь указывает:

• спецификацию файла;

• длину записи (в байтах);

• номера первого и последнего байта реквизита, по которому будет производиться сортировка;

• вид сортировки (по возрастанию, либо по убыванию значения, хранящегося в реквизите).

В результате сортировки программа должна создать новый файл с именем FILE . SRT , информация в котором будет упорядочена. При выполнении операций чтения/записи программа должна контролировать отсутствие ошибок. Если при выполнении операции была обнаружена ошибка, то программа должна вывести на экран монитора сообщение и завершить работу.

Разрабатывая алгоритм сортировки, следует стремиться к минимизации времени выполнения программы (т. е. к минимизации количества операций чтения/записи файла).

4.6. Разработка программы компьютерной игры. В качестве задания здесь могут быть выбраны, программная реализация которых требует использования средств машинной графики, либо решения логических задач. Так, например, студент может разработать программу TETRIS или какую-либо аналогичную по степени сложности.

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

4.8. Разработка программы, решающей задачу под названием «Ханойские башни» и графически иллюстрирующей ход решения. Задача состоит в следующем. Имеется три стрежня. На 1-ом - n колец разного диаметра, образующих пирамиду. Необходимо переложить кольца с 1-ого стержня на 3-ий таким образом, чтобы в процессе работы не встречалось ситуации, когда большее кольцо находится на меньшем. За один ход можно перекладывать только одно кольцо. Для решения задачи рекомендуется ознакомиться с механизмом рекурсивных функций.

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

4.10. Разработка калькулятора. Программа должна обеспечивать ввод пользователем с клавиатуры строки символов, заканчивающейся символом «Возврат каретки» (0 x 0 D в шестнадцатиричной форме), далее осуществлять синтаксический разбор полученной строки, выделяя из нее такие операции, как “ sin ”, “ cos ”, “ tg ”, “ ln ”, “ sqrt ” (квадратный корень), “^” (возведение в степень), “*”, “/”, “+”, “-”, “(”, “)” и операнды (числа участвующие в операциях). Далее, в соответствии с полученным выражением, программе необходимо реализовать математические действия и вывести на экран результат.

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

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

4.13. Реализовать библиотеку функций для работы с матрицами, размером до 128 x 128. Библиотека должна включать в себя функции сложения, умножения матриц, скалярного умножения, инвертирования, определения детерминанта, левостороннего и правостороннего деления. Также необходимо реализовать функцию, отображающую на экран содержимое матрицы.

4.14. Написать программу, рисующую на экране окружность (по точкам) и реализующую возможность перемещения этой окружности по экрану в результате нажатия клавиш "Вверх", "Вниз","Вправо", "Влево". При нажатии тех же клавиш одновременно с клавишей "Shift" - должно быть реализовано перемещение окружности в соответствующую крайнюю позицию экрана. Клавиша "Home" - возврат в центр экрана. Радиус и цвет окружности получаются в качестве параметров командной строки - как числа.

4.15.Реализация компьютерной игры типа «Арканоид». По экрану летает шарик, отражающийся от верхней, левой и правой границы экрана. В нижней части экрана находится прямоугольник, перемещаемый стрелочками «влево», «вправо» и также способный отражать шарик. Если шарик падает вне зоны прямоугольника – игра прекращается.

4.16.Реализация программы, рисующей циферблат механических часов. Показываемое время должно соответствовать реальному. Перемещение часовой и минутной стрелки должно осуществляться плавно, секундной – по делениям. По нажатию на клавиши «+», «-» часы должны изменять свой размер. При нажатии стрелок на клавиатуре часы должны перемещаться по экрану.

(Примечание: <1> <2> <3>)