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

3 страниц V < 1 2 3 >  
 Ответить  Открыть новую тему 
> Острова
сообщение
Сообщение #21


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(@^WARlock^@ @ 28.03.2007 5:30) *

Из-за чего так получается?

Насколько я смог понять, в твоей программе острова обозначены единицами. В моем алгоритме они обозначены -1 (минус единицами). Мне кажется, это вполне может вызвать такое поведение.
Выходов, как всегда, два:
1. Переделать мой код (не оченб красиво будет, но можно)
2. Поменять обозначение острова у тебя на -1.
Думай..

PS
Вообще, в твоей программе трудно разбираться.. Форматирование ты презираешь как класс? Даже мой кусок выровнял в линеечку - я еле узнал его..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #22


Пионер
**

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

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


С подсчетом островов я разобрался.
Прикрепленный файл  OSTROVA.rar ( 8.64 килобайт ) Кол-во скачиваний: 422


Как теперь сделать все в графическом режиме, поле и сетку нарисовать смогу, а как перемещаться поэтой сетке(для выделения острова) и сделать так, чтоб масив заполнялся путем выделения клетки в этой сетке?

Сообщение отредактировано: @^WARlock^@ -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #23


Пионер
**

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

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


Так, как можно заполнять массив в графическом режиме?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #24


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Молодец, прога, вроде, работает! smile.gif
Цитата(@^WARlock^@ @ 7.04.2007 14:03) *

как можно заполнять массив в графическом режиме?

Заполнять - точно так же. Нужно поменять только интнрфейс.
Я не совсем понимаю, зачем ты сделал юнит ENGINE.. Вот выделить интерфейс в отдельный юнит - это было бы правильно. Тогда замена текста на графику состояла бы в написании нового юнита - и все. Попробуй разделить engine на два юнита, выделив графику.
А как писать - аналогично.. Только использовать графику: Line, Rectangle, Bar, OutTextXY.. - и т.д. т.п. smile.gif. Начни и показывай..

PS
а форматирование у тебя все так же на нуле.. sad.gif Читать такие программы удовольствия мало. Учти, это затрудняет тех, кто отвечает тебе (если уж тебе самому все равно) с соответствующим результатом..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #25


Пионер
**

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

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


Цитата
Попробуй разделить engine на два юнита, выделив графику.

На какие и как? Просто располовинить? blink.gif

Вот добавил новый юнит GRAFICA, из предыдущих островов. В графическом режиме вылазиет поле, и можно управлять мышью. А как состыковать это все с моей задачей, что-то придумать не могу. Труба полная mega_chok.gif .
Прикрепленный файл  OSTROVA.rar ( 58.61 килобайт ) Кол-во скачиваний: 424
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #26


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(@^WARlock^@ @ 9.04.2007 11:06) *

На какие и как? Просто располовинить?
...
Труба полная

Попробуй отделить все, что относится к отображению в отдельный юнит. Скажем, твой DrawMap - это явно к отображению, а Schet - нет. Это я грубо, примерно. Остальные найди сам. Соответственно, и переменные разделить. Многое для этого придется переделать, задача сама по себе непростая. А потом по образу и подобию того юнита, который отображает текст, сделаешь юнит, который отображает в графике. Это потребует немалой работы, но зато в результате должно получиться следующее: нужна графика - подставляешь юнит с графикой, нужен текст - подставляешь текстовый..

PS
Еще раз поторяю: разберись с форматированием программного текста. Если снова проигнорируешь мой совет - я тоже буду игнорировать твои вопросы. Я не имею в виду, что ты сразу все правильно отфоматируешь, но хотя бы обратить на это внимание - необходимо!


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #27


Пионер
**

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

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


Цитата
Еще раз повторяю: разберись с форматированием программного текста. ...

Вот понавтыкал пробелов, может лучше будет.

А вот в этом случае идет заполнение мвссива?
Прикрепленный файл  OSTR.rar ( 52.9 килобайт ) Кол-во скачиваний: 391

Если идет, то я там добавил (Procedure SCHET). Не подскажите, как в графмческом режиме вывести числовую переменную. В данном случае результат процедуры (SCHET).

Сообщение отредактировано: @^WARlock^@ -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #28


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(@^WARlock^@ @ 12.04.2007 6:21) *

как в графмческом режиме вывести числовую переменную.

Процедура OutTextXY. Только сначала переведи ее а строку.
Прогу гляну чуть позже..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #29


Пионер
**

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

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


В моей последней проге идет хоть какое-то заполнение массива, или нет?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #30


Пионер
**

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

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


Как и "все", я решил забить на подключение графики к моей проге.

Я оредактировал мою старую прогу и вот, что получилось:
Прикрепленный файл  OSTROVA.rar ( 7.44 килобайт ) Кол-во скачиваний: 437


Сообщение отредактировано: @^WARlock^@ -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #31


Пионер
**

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

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


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

Процедура подсчета островов:
.....
Procedure Schet;
Var
n:integer;
begin
n:=mx*my;
for wy:=1 to my do
for wx:=1 to mx do
if (Z[wx,wy]=1) and (Z[wx,wy+1]<>1) and (Z[wx+1,wy]<>1) and
(Z[wx,wy-1]<>1) and (Z[wx-1,wy]<>1) then
begin
Inc(n);
Z[wx,wy]:=n;
end;
for wy:=1 to my do
for wx:=1 to mx do
if (Z[wx,wy]=1) and (Z[wx,wy+1]<mx*my) and (Z[wx+1,wy]<mx*my) and
(Z[wx,wy-1]<mx*my) and (Z[wx-1,wy]<mx*my) then
begin
Inc(n);
Z[wx,wy]:=n;
end
else if(Z[wx,wy]=1) then
begin
if (Z[wx,wy+1]>mx*my) then Z[wx,wy]:=Z[wx,wy+1];
if (Z[wx+1,wy]>mx*my) then Z[wx,wy]:=Z[wx+1,wy];
if (Z[wx,wy-1]>mx*my) then Z[wx,wy]:=Z[wx,wy-1];
if (Z[wx-1,wy]>mx*my) then Z[wx,wy]:=Z[wx-1,wy];
end;
write(n-mx*my);
end;
.....


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

 ! 
@^WARlock^@, файлы .doc прикреплять запрещено (читай Правила). Файл удален.
Lapp



Сообщение отредактировано: Lapp -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #32


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(@^WARlock^@ @ 22.04.2007 7:09) *

Народ, подскажите алгоритм выполнения подсчета островов или блок схему процедуры подсчета островов.
...
Я как бы сделал блок схему, и алгоритм проги, но мне сказали после условия "Если поле заполнено", подробно расписать, как происходит подсчет островов.

Твоя процедура работает неправильно.. Нет смысла, думаю, составлять алгоритм или блок-схему по неверной процедуре. Вот, смотри - тут приведены острова, потом выводится результат твоей процедуры, а потом сама матрица, где можно видеть, как ты считал острова. Видно, что один и тот же остров помечен разными цифрами. Волны означают воду.. smile.gif
Код
~~~~~~~~
XXXXXXXX
~XX~~~X~
X~~~XXX~
X~XX~~~X
~~XXX~XX
X~XX~XXX
~XXX~XXX

9

~~~~~~~~
22222222
~22~~~2~
3~~~444~
3~55~~~6
~~555~77
1~55~888
~999~888

@^WARlock^@ - чисто по-человечески, скажи, почему ты сначала задаешь вопрос, тебе отвечают, потом ты делаешь все по-другому, а потом снова просишь ответить на вопрос, на который уже отвечено в самом первом посте темы?..
Это вызываает недоумение.. Есть ли смысл говорить, если собеседник не слышит?


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #33


Пионер
**

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

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


Цитата
Твоя процедура работает неправильно.

Точно, а я и не замечал(наверное потомучто больше 4-6 островов не выделял). Не подскажите, из-за чего так происходит?
И, что надо изменить в процедуре SCHET, чтобы прога считала правильно.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #34


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(@^WARlock^@ @ 22.04.2007 13:58) *

Не подскажите, из-за чего так происходит?
И, что надо изменить в процедуре SCHET, чтобы прога считала правильно.

Я тебя решительно не понимаю.. Советов не слушаешь, на вопросы не отвечаешь - я умываю руки..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #35


Пионер
**

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

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


Цитата
Советов не слушаешь, на вопросы не отвечаешь


Советы, по поводу того, что процдура SCHET не корректно работает, я обратил внимание перепроверил, да это действительно так.
На какие вопросы я не отвечаю?
Мне кажется, что совсем наоборот, мои вопросы ни кто не замечат.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #36


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(@^WARlock^@ @ 24.04.2007 6:39) *

На какие вопросы я не отвечаю?

Вот на этот:
@^WARlock^@ - чисто по-человечески, скажи, почему ты сначала задаешь вопрос, тебе отвечают, потом ты делаешь все по-другому, а потом снова просишь ответить на вопрос, на который уже отвечено в самом первом посте темы?..
Это вызываает недоумение.. Есть ли смысл говорить, если собеседник не слышит?


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #37


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(@^WARlock^@ @ 22.04.2007 13:58) *

И, что надо изменить в процедуре SCHET, чтобы прога считала правильно.

Мой совет: вернись к началу, и возьми мою процедуру в точности в том виде, в котором она есть. Я понимаю, тебя не устраивает, что в ней острова обозначены -1, а не 1. Поменяй в моей процедуре все знаки на обратные. То есть острова обозначай 1, а их номера - отрицательными числами. Это самый простой способ, имхо..
Тогда и алгоритм будет один в один. Сможешь взять прямо из первого мессаджа. Что непонятно - я объясню.. smile.gif

PS
ты извини за наезды, просто старайся внимательно читать советы и придерживаться их. Либо говори, почему делаешь иначе. Ведь это же двусторонний разговор, так? smile.gif

Добавлено через 4 мин.
Но будет значительно красивее, если ты в своей части переделаешь 1 на -1. По-хорошему, вообще не нужно привязываться к конкретному числу. Просто сделай константу - скажем, Terra = -1. При заполнении островов используй ее. Нигде не пользуйся явно минус единицей или единицей. Вот подсчет - это другое дело. Номер должен быть явно.
Улавливаешь идею?
Говори тут активней, тогда результат будет лучше.
Успехов!


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #38


Пионер
**

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

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


Не понимаю почему я тупил столько времени.
LAPP - видимо всетаки ты отчасти был прав, на счет того, что я не слушаю советов.
Например вот этот.
Цитата
Поменять обозначение острова у тебя на -1.


Я поменял у себя обозначения острова, и вродибы прога стала работать как надо.
Прикрепленный файл  OSTROVA.rar ( 9.27 килобайт ) Кол-во скачиваний: 400


Надеюсь теперь ты мне поможешь реализовать блок-схему процедуры SCHET.

И еще такой нюанс, как сделать, чтобы мой PASCAL распознавал русский язык.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #39


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(@^WARlock^@ @ 27.04.2007 12:02) *

Не понимаю почему я тупил столько времени.
Бывает.. одни тупят, другие ждут у них просветления. Главное - дождаться.. smile.gif
Цитата(@^WARlock^@ @ 27.04.2007 12:02) *

видимо всетаки ты отчасти был прав, на счет того, что я не слушаю советов.
Фраза сказана предельно осторожно, но если ты действительно это понял хоть немного - это самое большое твое (и немного мое smile.gif) достижение в этой работе. Программирование на втором месте..
Цитата(@^WARlock^@ @ 27.04.2007 12:02) *

Надеюсь теперь ты мне поможешь реализовать блок-схему процедуры SCHET.
Помогу обязательно! Только сначала высплюсь.. smile.gif
Цитата(@^WARlock^@ @ 27.04.2007 12:02) *

И еще такой нюанс, как сделать, чтобы мой PASCAL распознавал русский язык.
Этот вопрос много раз обсуждался, есть надежные способы. Признаться, я по ним не спец..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #40


Пионер
**

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

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


LAPP - говорил, что поможешь реализовать блок-схему процедуры SCHET, а сам пропал куда-то.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 28.03.2024 21:34
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name