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