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

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

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

 
 Ответить  Открыть новую тему 
> Лабиринт паскаль
PFanthem
сообщение 14.12.2014 13:57
Сообщение #1





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

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


Пусть имеется лабиринт разбитый на клетки со стороной 1м. Длина лабиринта n, а ширина m. Закрашенная клетка -это непроходимая область, Высота лабиринта везде одинакова h=3м. Вход в лабиринт и выход расположены в левом верхнем и в правом нижнем углу. Нумерация клеток начинается из левого верхнего угла . перед открытием сезона необходимо оклеить все внутренние стены лабиринта новыми обоями .
Требуется: написать программу определения общей площади всех внутренних стен лабиринта
Вводные данные: n и m, двухмерный массив. Элементы массива принимают два значения "пусто" или "занято"
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Федосеев Павел
сообщение 15.12.2014 8:05
Сообщение #2


Бывалый
***

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

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


Думаю, что здесь алгоритм такой:
1. Заполняем массив лабиринта так, как описано в условии 0 - проход, 1 - стена.
2. Просматриваем лабиринт в поисках первой попавшейся 1 и 0 - пустого места рядом с ней.
3. Мысленно прижимаемся левой рукой к стене и идём вперёд, насколько позволяют стены. при этом стену, к которой прижимались рукой обозначаем не 1, а 2.
3. Движемся вперёд пока не закончится стена или не вернёмся в исходное положение.
4. Повторяем пункты 2 - 3 до полной замены всех 1 в массиве, описывающем лабиринт.

Количество 1, заменённых на 2 и есть искомый периметр стен. Осталось умножить его на высоту h и написать ответ.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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