Лабораторная работа 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) ее значение при вызове функции также равно номеру манипулятора, т.к. в вызове аргументом служит номер потока, он же-номер манипулятора.

Характеристики лабораторной работы
Учебное заведение
Семестр
Номер задания
Вариант
Просмотров
227
Размер
880,16 Kb
Список файлов
Лаб № 2 вариант 24.pdf

Друзья, спасибо за доверие! Если вам понравилась работа – поставьте 5⭐ и напишите отзыв. Это поможет другим студентам, а мне даст силы делать ещё больше качественных материалов для вас 🔥
Комментарии
Нет комментариев
Стань первым, кто что-нибудь напишет!
Отзывы на другие работы автора
ДМ1519 - Проектирование привода цепного транспортера с двухступенчатым цилиндрическим редуктором выполненным по развернутой схеме
Есть недочёты, хорошо подходит как база для выполнения аналогичного варианта курсача
Сборочная размерная цепь + Подетальная размерная цепь
Были замечания, но автор все быстро исправил, теперь все отлично.
Плоская и пространственная статика
Есть небольшая путаница с углами из условий, которая может влиять на численный ответ, и подобные мелкие ошибки, в остальном всё хорошо
Кратные и криволинейные интегралы
есть ошибка в 5 номере и преподаватели уже начинают палить что эта работа списана
Отчет по производственной практике - Композиционные материалы - Предприятие НИИ СМ МГТУ им. Н.Э. Баумана
Спасибо! Изложение краткое и конструктивное, лишней информации нет. Помогло при составлении отчета
МГТУ им. Н.Э.Баумана
anhyeuem




















