![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 17.03.2013
Сообщений: 5
|
![]()
доброго времени суток! в школе учитель дал задачу, которую нужно через паскаль решить. задача: дан лес, нужно поджечь дерево и рассчитать время горения леса. вообщем лес я создал и выбрал дерево, с которого начнется пожар. дальше я делаю проверку через цикл for каждого дерева, стоит ли оно рядом с только что подоженным. если бы рядом стояло только одно дерево и дальше всегда стояло бы только одно дерево, то все просто. а я не знаю, что делать, когда сразу несколько деревьев рядом, как дальше от них вести счет. подскажите. мне решение не нужно, нужно что-то типа совета.
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]()
То есть вам нужно как бы распараллелить алгоритм на несколько деревьев?
Обычно это делается припомощи структуры данных типа стек или очередь. Предполагаю, что горение у Вас организовано по тактам - каждый такт "поджигает" новую порцию деревьев. Тогда нужно применить очередь. С одной стороны в нее запихиваются те деревья, что вновь подожжены, а с другой - добываются горящие деревья, которые должны поджечь соседние. |
![]() |
![]() |
![]() |
#3 | |
Новичок
Джуниор
Регистрация: 17.03.2013
Сообщений: 5
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
![]()
HalvaForever
задача: дан лес, нужно поджечь дерево и рассчитать время горения леса. Ознакомь учителя с Уголовным Кодексом РФ: Статья 261. Уничтожение или повреждение лесов 1. Уничтожение или повреждение лесов, а равно насаждении, не входящих в лесной фонд, в результате неосторожного обращения с огнем или иными источниками повышенной опасности — наказываются штрафом в размере от двухсот до пятисот минимальных размеров оплаты труда или в размере заработной платы или иного дохода осужденного за период от двух до пяти месяцев, либо исправительными работами на срок до двух лет, либо лишением свободы на срок до двух лет. 2. Уничтожение или повреждение лесов, а равно насаждений, не входящих в лесной фонд, путем поджога, иным общеопасным способом либо в результате загрязнения вредными веществами, отходами, выбросами или отбросами — наказываются лишением свободы на срок от трех до восьми лет.
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
![]() |
![]() |
![]() |
#5 | |
Новичок
Джуниор
Регистрация: 17.03.2013
Сообщений: 5
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#6 |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
![]()
Вечер Добрый.
Могу предложить еще такой вариант : Берем массив (для наглядности - массив_символов) Инициализируем лес Код:
Код:
Код:
Код:
Код:
Внимание! Т.к. уже поздно и дел у меня не початый край - я писал всё прямо в браузере.. UPDATE Т.к. Вам выводить лес не обязательно, то можно всё более-менее упростить.. Код:
Последний раз редактировалось Poma][a; 17.03.2013 в 22:04. |
![]() |
![]() |
![]() |
#7 | |
Новичок
Джуниор
Регистрация: 17.03.2013
Сообщений: 5
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#8 |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
![]()
А что такое пользовательские процедуры\функции Вы знаете?
|
![]() |
![]() |
![]() |
#9 |
Новичок
Джуниор
Регистрация: 17.03.2013
Сообщений: 5
|
![]() |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]()
Poma][a, фактически Вы предлагаете реализацию совпадающую с распространением волны в волновом алгоритме. Там существуют достаточно эффективные алгоритмы, как правило, с применением той же очереди.
Плюс такого подхода - гораздо менее ресурсоемко находить соседей (хотя и здесь есть эффективные способы), минус - довольно странная метрика dist := min(dx,dy); вместо привычного dist := sqrt(sqr(dx) + sqr(y));, ну и деревья допустимо помещать только в узлах сетки, а не где попало. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
нужно доделать задачу | гоша37 | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 27.11.2012 12:18 |
доделать задачу | Sylar9 | Общие вопросы C/C++ | 0 | 06.05.2012 11:48 |
Не могу доделать задачу | X-REY | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 25.10.2011 20:50 |
Помогите доделать задачу | n1ce > Kuzia | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 08.01.2009 11:42 |
Помогите доделать задачу!!!! | Vincenzo | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 11.05.2008 09:35 |