IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Робот
Pautina
сообщение 24.05.2007 16:32
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 40
Пол: Женский
Реальное имя: Nataly

Репутация: -  0  +


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


Ниже приведен текст программы, но что-то не работает. Может, кто-нибудь сможет помочь! Очень вас прошу! Заранее спасибо!


Прикрепленные файлы
Прикрепленный файл  ROBOT.PAS ( 1.5 килобайт ) Кол-во скачиваний: 202
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 10)
klem4
сообщение 24.05.2007 17:07
Сообщение #2


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Цитата
Требуется составить 2 вида моделей, которые для задаваемых исходных данных (m и n) определяют количество поворотов, которые должен сделать робот в процессе разминирования.


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

ps А вообще помоему обычный обход матрицы по спирали, поищи на форуме выкладывалось.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Pautina
сообщение 24.05.2007 17:35
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 40
Пол: Женский
Реальное имя: Nataly

Репутация: -  0  +


Есть исходник обхода матрицы по спирали. Как сделать, чтобы обход начинался не с центра, а с верхнего левого угла? и чтобы велся подсчет поворотов?


Прикрепленные файлы
Прикрепленный файл  Z3.PAS ( 2.48 килобайт ) Кол-во скачиваний: 231
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Ozzя
сообщение 25.05.2007 7:30
Сообщение #4


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


Цитата
с верхнего левого угла?

А в ФАК заглянуть?
unsure.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Pautina
сообщение 26.05.2007 10:12
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 40
Пол: Женский
Реальное имя: Nataly

Репутация: -  0  +


А как быть, если дана не квадратная матрица? Что тогда нужно изменить в исходной проге? и как должен осуществляться подсчет поворотов?

Сообщение отредактировано: Pautina - 26.05.2007 10:13


Прикрепленные файлы
Прикрепленный файл  rob.pas ( 956 байт ) Кол-во скачиваний: 196
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Pautina
сообщение 27.05.2007 15:31
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 40
Пол: Женский
Реальное имя: Nataly

Репутация: -  0  +


Никак не получается! Помогите, пожалуйста!


Прикрепленные файлы
Прикрепленный файл  ROB.PAS ( 1018 байт ) Кол-во скачиваний: 177
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
-Pautina-
сообщение 28.05.2007 10:45
Сообщение #7


Гость






Люди, не будьте такими равнодушными! я без вашей помощи никак не справлюсь!
 К началу страницы 
+ Ответить 
Sto
сообщение 28.05.2007 13:27
Сообщение #8


Пионер
**

Группа: Пользователи
Сообщений: 70
Пол: Мужской
Реальное имя: Илья

Репутация: -  2  +


Цитата(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)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Pautina
сообщение 28.05.2007 19:48
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 40
Пол: Женский
Реальное имя: Nataly

Репутация: -  0  +


А куда я должна это вставить в программу?.. что-то не работает..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Sto
сообщение 28.05.2007 20:05
Сообщение #10


Пионер
**

Группа: Пользователи
Сообщений: 70
Пол: Мужской
Реальное имя: Илья

Репутация: -  2  +


Это аналитическая модель.
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.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Pautina
сообщение 28.05.2007 20:47
Сообщение #11


Новичок
*

Группа: Пользователи
Сообщений: 40
Пол: Женский
Реальное имя: Nataly

Репутация: -  0  +


Sto, СПАСИБО тебе огромное!!!! ты мой спаситель!!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 27.07.2025 3:47
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"