1. Получить аналитическую модель (выражение в виде формулы) решения приведенной ниже задачи. 2. Получить компьютерную модель решения этой же задачи на основе программной имитации действий робота. Результаты решения должны совпадать с теми, которые получены в п.1 3. Сделать выводы о достоинствах и недостатках двух видов моделей. Задача: робот-минер способен провести разминирование местности, план которой должен быть представлен в виде прямоугольника с целыми длинами сторон (n – высота, m – длина). Перед началом работы робот размещают перед левой верхней клеткой прямоугольника в направлении «слева – направо», после чего робот начинает обход и разминирование, двигаясь по часовой стрелке по спирали. При этом спираль постепенно закручивается вовнутрь. Разминирование заканчивается, когда проверены все клетки. Требуется составить 2 вида моделей, которые для задаваемых исходных данных (m и n) определяют количество поворотов, которые должен сделать робот в процессе разминирования.
Ниже приведен текст программы, но что-то не работает. Может, кто-нибудь сможет помочь! Очень вас прошу! Заранее спасибо!
klem4
24.05.2007 21:07
Цитата
Требуется составить 2 вида моделей, которые для задаваемых исходных данных (m и n) определяют количество поворотов, которые должен сделать робот в процессе разминирования.
Чем модели то отличаются ?
ps А вообще помоему обычный обход матрицы по спирали, поищи на форуме выкладывалось.
Pautina
24.05.2007 21:35
Есть исходник обхода матрицы по спирали. Как сделать, чтобы обход начинался не с центра, а с верхнего левого угла? и чтобы велся подсчет поворотов?
А как быть, если дана не квадратная матрица? Что тогда нужно изменить в исходной проге? и как должен осуществляться подсчет поворотов?
Pautina
27.05.2007 19:31
Никак не получается! Помогите, пожалуйста!
-Pautina-
28.05.2007 14:45
Люди, не будьте такими равнодушными! я без вашей помощи никак не справлюсь!
Sto
28.05.2007 17:27
Цитата(Pautina @ 24.05.2007 16:32)
1. Получить аналитическую модель (выражение в виде формулы) решения приведенной ниже задачи.
n-высота m-длинна k-колдичество поворотов
Если m = 1 тогда k=0 (или 1) Если m = 2 тогда k=3 Если m >= 3 тогда k=2*(n-1)
Pautina
28.05.2007 23:48
А куда я должна это вставить в программу?.. что-то не работает..
Sto
29.05.2007 0:05
Это аналитическая модель.
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.
Pautina
29.05.2007 0:47
Sto, СПАСИБО тебе огромное!!!! ты мой спаситель!!!!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.