1. Получить аналитическую модель (выражение в виде формулы) решения приведенной ниже задачи.
2. Получить компьютерную модель решения этой же задачи на основе программной имитации действий робота. Результаты решения должны совпадать с теми, которые получены в п.1
3. Сделать выводы о достоинствах и недостатках двух видов моделей.
Задача: робот-минер способен провести разминирование местности, план которой должен быть представлен в виде прямоугольника с целыми длинами сторон (n – высота, m – длина). Перед началом работы робот размещают перед левой верхней клеткой прямоугольника в направлении «слева – направо», после чего робот начинает обход и разминирование, двигаясь по часовой стрелке по спирали. При этом спираль постепенно закручивается вовнутрь. Разминирование заканчивается, когда проверены все клетки.
Требуется составить 2 вида моделей, которые для задаваемых исходных данных (m и n) определяют количество поворотов, которые должен сделать робот в процессе разминирования.
Ниже приведен текст программы, но что-то не работает. Может, кто-нибудь сможет помочь! Очень вас прошу! Заранее спасибо!
Прикрепленные файлы
ROBOT.PAS ( 1.5 килобайт )
Кол-во скачиваний: 290
Есть исходник обхода матрицы по спирали. Как сделать, чтобы обход начинался не с центра, а с верхнего левого угла? и чтобы велся подсчет поворотов?
Прикрепленные файлы
Z3.PAS ( 2.48 килобайт )
Кол-во скачиваний: 282
А как быть, если дана не квадратная матрица? Что тогда нужно изменить в исходной проге? и как должен осуществляться подсчет поворотов?
Прикрепленные файлы
rob.pas ( 956 байт )
Кол-во скачиваний: 242
Никак не получается! Помогите, пожалуйста!
Прикрепленные файлы
ROB.PAS ( 1018 байт )
Кол-во скачиваний: 258
Люди, не будьте такими равнодушными! я без вашей помощи никак не справлюсь!
А куда я должна это вставить в программу?.. что-то не работает..
Это аналитическая модель.
Var
n, m, k :Integer;
Begin
Write('n -> ');
ReadLn(n);
Write('m -> ');
ReadLn(m);
If (m = 1) Then k := 1;
If (m = 2) Then k := 3;
If (m >= 3) Then k :=2*(n-1);
Write('k = ', k);
ReadLn;
End.
Sto, СПАСИБО тебе огромное!!!! ты мой спаситель!!!!