Поиск роботом источников радиации в закрашенной области
Автор: Bushmish • Май 25, 2023 • Курсовая работа • 1,274 Слов (6 Страниц) • 189 Просмотры
Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
«Волгоградский государственный технический университет»
Факультет электроники и вычислительной техники
Специальность(направление): Информатика и вычислительная техника
Кафедра: Программное обеспечение автоматизированных систем
Дисциплина: Информатика
Семестровая работа
Студент: Шаболтас Андрей Андреевич
Группа: ИВТ-160
Тема: Поиск роботом источников радиации в закрашенной области
(вариант 86)
Срок представления «23» января 2023 г.
Проверил Ю. А. Качанов
с оценкой
«23» января 2023 г.
Волгоград 2023
Робот находится в левой верхней клетке огороженного пространства, имеющего форму прямоугольника. Размеры прямоугольника: 4 ≤ширина ≤ 11, 4 ≤ высота ≤ 10. На поле часть клеток закрашено:
Нижняя закрашенная строка области равна (ширине поля)/2 (если получается дробное значение, то оно округляется вниз до целого значения) и привязана к левой границе поля. Каждая следующая закрашенная строка равна предыдущей строке, но смещена относительно нее на одну клетку вправо.
[pic 1]
[pic 2]
В поле имеется одно неразрывное радиоактивное пятно произвольных размеров. Необходимо определить, что пятно полностью находится в закрашенной области. Как результат напечатать сообщения:
● "Радиационное пятно внутри закрашенной области";
● "Радиационное пятно вне закрашенной области";
● "Радиационное пятно пересекается с закрашенной областью".
Реализовать и использовать один из вспомогательных алгоритмов:
лог найти_ИР_в_строке(лит направление, цел длина)
дано |направление и длина строки, в которой ищем радиацию
надо |признак наличия радиации в строке, робот в последней клетке строки
лог найти_ИР_в_столбце(лит направление, цел длина)
дано |направление и длина строки, в которой ищем радиацию
надо |признак наличия радиации в строке, робот в последней клетке строки
лог найти_ИР_по_диагонали(лит направление, цел длина)
дано |направление и длина строки, в которой ищем радиацию
надо |признак наличия радиации в строке, робот в последней клетке строки лог найти_ИР_в_ряду(лит направление, цел длина)
дано |направление и длина строки, в которой ищем радиацию
надо |признак наличия радиации в строке, робот в последней клетке строки
Считается, что робот НЕ МОЖЕТ определить самостоятельно, закрашена клетка или нет, т.е. ЗАПРЕЩЕНО использовать команды робота "клетка закрашена" и "клетка чистая". Расположение закрашенных клеток Робот должен определять исходя из правил закраски в задании, не обращаясь к клеткам поля.
Результаты анализа и исследования задачи
Идея решения: чтобы поиск ИР выполнялся одинаково вне зависимости от стартовой позиции робота, необходимо привести робота в фиксированную клетку закрашенной области. Таковой будет клетка в левом нижнем углу рабочего поля. Также пока робот двигается в назначенную позицию посчитаем высоту и ширину поля.
Подзадача “Дойти до левой нижней клетки и посчитать высоту и ширину поля”
1.Робот в верхней левой клетке | [pic 3] |
1.1.Робот посчитал высоту и находится в левой нижней клетке | [pic 4] |
1.2.Робот посчитал ширину и находится в правой нижней клетке | [pic 5] |
1.3.Робот вернулся в левую нижнюю клетку | [pic 6] |
Идея решения: робот посчитает количество радиоактивных клеток в закрашенной области, а затем всей области. Если число радиоактивных клеток равно нулю, то задача решена: радиационное пятно находится вне закрашенной области. Иначе же мы сохраним число клеток для последующего сравнения.
...