Помощь - Поиск - Пользователи - Календарь
Полная версия: Робот
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Pautina
1. Получить аналитическую модель (выражение в виде формулы) решения приведенной ниже задачи.
2. Получить компьютерную модель решения этой же задачи на основе программной имитации действий робота. Результаты решения должны совпадать с теми, которые получены в п.1
3. Сделать выводы о достоинствах и недостатках двух видов моделей.
Задача: робот-минер способен провести разминирование местности, план которой должен быть представлен в виде прямоугольника с целыми длинами сторон (n – высота, m – длина). Перед началом работы робот размещают перед левой верхней клеткой прямоугольника в направлении «слева – направо», после чего робот начинает обход и разминирование, двигаясь по часовой стрелке по спирали. При этом спираль постепенно закручивается вовнутрь. Разминирование заканчивается, когда проверены все клетки.
Требуется составить 2 вида моделей, которые для задаваемых исходных данных (m и n) определяют количество поворотов, которые должен сделать робот в процессе разминирования.


Ниже приведен текст программы, но что-то не работает. Может, кто-нибудь сможет помочь! Очень вас прошу! Заранее спасибо!
klem4
Цитата
Требуется составить 2 вида моделей, которые для задаваемых исходных данных (m и n) определяют количество поворотов, которые должен сделать робот в процессе разминирования.


Чем модели то отличаются ?

ps А вообще помоему обычный обход матрицы по спирали, поищи на форуме выкладывалось.
Pautina
Есть исходник обхода матрицы по спирали. Как сделать, чтобы обход начинался не с центра, а с верхнего левого угла? и чтобы велся подсчет поворотов?
Ozzя
Цитата
с верхнего левого угла?

А в ФАК заглянуть?
unsure.gif
Pautina
А как быть, если дана не квадратная матрица? Что тогда нужно изменить в исходной проге? и как должен осуществляться подсчет поворотов?
Pautina
Никак не получается! Помогите, пожалуйста!
-Pautina-
Люди, не будьте такими равнодушными! я без вашей помощи никак не справлюсь!
Sto
Цитата(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
А куда я должна это вставить в программу?.. что-то не работает..
Sto
Это аналитическая модель.
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
Sto, СПАСИБО тебе огромное!!!! ты мой спаситель!!!!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.