Для студентов МГТУ им. Н.Э.Баумана по предмету Разработка программных системЛабораторная работа №2 (вариант 24)Лабораторная работа №2 (вариант 24)
1,0051
2021-04-012021-04-01СтудИзба
Лабораторная работа 2: Лабораторная работа №2 (вариант 24) вариант 24
Описание
Текст задания
Разработать программу, моделирующую в реальном времени работу кооператива подвижных манипуляторов (ПМ) и блока управления (БУ) ими. БУ реализуется в качестве головного (корневого) потока и воспринимает со стандартного ввода команды создания/уничтожения ПМ и управления ими. ПМ реализуются в рамках отдельных вновь порождаемых (и убиваемых) потоков. ПМ существуют в прямоугольном дискретном поле размером NxM и могут передвигаться в нем в 4-х направлениях с временными затратами T секунд на клетку. При достижении границы поля ПМ останавливается. ПМ информируют о смене своего положения, например, выдавая на стандартный вывод (что неправильно, почему?) строку "кто: откуда=>куда". БУ читает со стандартного ввода команды пользователя (синтаксис придумать самостоятельно), позволяющие создавать/уничтожать ПМ, задавать их направление и "скорость" движения (количество ПМ не ограничено).
Описание структуры программы
В функции main происходит обработка входных параметров: проверка на ввод ширины и длины поля, а также создание и удаление потоков по нажатию клавиш a и d соответственно. Функция visual отвечает за отрисовку: принимает координаты и отображает их. Функция manipulator меняет координаты манипулятора, соответственно заданным характеристикам движения, отвечает за условия выхода за границы поля. Функция check осуществляет проверку координат нового манипулятора(выход за границы массива и отсутствие других манипуляторов в окрестности). Для ввода данных использован неканонический ввод. Скорость, направление и координаты манипулятора задаются через командную строку. При добавлении каждого манипулятора переменная pot увеличивает значение на единицу. В этом же проходе функции, а значит и для этого же значения переменной pot пользователь вводит координаты, направление и скорость манипулятора. Они записываются в массивы с индексом, равным переменной pot (номеру манипулятора). Далее все функции, работающие с массивами x,y,v,d берут данные с индексом, равным переменной pot, т.е. номеру манипулятора. При индексации с использованием локальной переменной (напр. indx) ее значение при вызове функции также равно номеру манипулятора, т.к. в вызове аргументом служит номер потока, он же-номер манипулятора.
Разработать программу, моделирующую в реальном времени работу кооператива подвижных манипуляторов (ПМ) и блока управления (БУ) ими. БУ реализуется в качестве головного (корневого) потока и воспринимает со стандартного ввода команды создания/уничтожения ПМ и управления ими. ПМ реализуются в рамках отдельных вновь порождаемых (и убиваемых) потоков. ПМ существуют в прямоугольном дискретном поле размером NxM и могут передвигаться в нем в 4-х направлениях с временными затратами T секунд на клетку. При достижении границы поля ПМ останавливается. ПМ информируют о смене своего положения, например, выдавая на стандартный вывод (что неправильно, почему?) строку "кто: откуда=>куда". БУ читает со стандартного ввода команды пользователя (синтаксис придумать самостоятельно), позволяющие создавать/уничтожать ПМ, задавать их направление и "скорость" движения (количество ПМ не ограничено).
Описание структуры программы
В функции main происходит обработка входных параметров: проверка на ввод ширины и длины поля, а также создание и удаление потоков по нажатию клавиш a и d соответственно. Функция visual отвечает за отрисовку: принимает координаты и отображает их. Функция manipulator меняет координаты манипулятора, соответственно заданным характеристикам движения, отвечает за условия выхода за границы поля. Функция check осуществляет проверку координат нового манипулятора(выход за границы массива и отсутствие других манипуляторов в окрестности). Для ввода данных использован неканонический ввод. Скорость, направление и координаты манипулятора задаются через командную строку. При добавлении каждого манипулятора переменная pot увеличивает значение на единицу. В этом же проходе функции, а значит и для этого же значения переменной pot пользователь вводит координаты, направление и скорость манипулятора. Они записываются в массивы с индексом, равным переменной pot (номеру манипулятора). Далее все функции, работающие с массивами x,y,v,d берут данные с индексом, равным переменной pot, т.е. номеру манипулятора. При индексации с использованием локальной переменной (напр. indx) ее значение при вызове функции также равно номеру манипулятора, т.к. в вызове аргументом служит номер потока, он же-номер манипулятора.
Характеристики лабораторной работы
Учебное заведение
Семестр
Номер задания
Вариант
Просмотров
223
Покупок
6
Размер
880,16 Kb
Список файлов
Ваше удовлетворение является нашим приоритетом, если вы удовлетворены нами, пожалуйста, оставьте нам 5 ЗВЕЗД и позитивных комментариев. Спасибо большое!