![]() |
|
Модераторы: volvo877, Snowy, MetalFan |
![]()
|
|
| Alexey91 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 195 Регистрация: 18.9.2008 Репутация: нет Всего: нет |
Прога компилируется, но не выводится новый массив Е (прога виснет).
Не понимаю из-за чего.
|
|||
|
||||
| darkart |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 379 Регистрация: 9.11.2005 Репутация: нет Всего: 31 |
В коде: при проверке p не будет равно 0, так как в условном операторе внутри цикла - в обеих ветках:
|
||||
|
|||||
| Alexey91 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 195 Регистрация: 18.9.2008 Репутация: нет Всего: нет |
И что вы предлагаете?
Мы же должны прекратить цикл в том случае, если не будет сделано ни одной операции сравнения. Если в одной части условие сравнения не выполняется, то в другой оно будет выполнено точно. Поэтому я поставил p двух местах, чтобы зафиксировать, что оно произошло. Если мы даже уберем p с одной ветки от этого программа правильно работать не будет Это сообщение отредактировал(а) Alexey91 - 6.11.2008, 17:00 |
|||
|
||||
| volvo877 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 2 Всего: 116 |
Я бы тебе предложил сначала сделать корректное упорядочивание массива D, потому что не всегда он упорядочен по возрастанию... Вот, например, что мне сказала однажды твоя программа:
А уж как добьешься того ,что и C и D нормально упорядочены - то "сливать" оба массива:
Это сообщение отредактировал(а) volvo877 - 6.11.2008, 17:44 |
||||
|
|||||
| Alexey91 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 195 Регистрация: 18.9.2008 Репутация: нет Всего: нет |
Volvo877
Спасибо большое, я бы плюс бы поставил, но не могу Массивы я отсортировал (поставил begin'ы) Только непонятно, а почему мой цикл сортировки не работает? Я так на бумажке цикл проэмулировал, работает.. не понятно. Переменная p до последнего момента равняется 1, поэтому цикл не закрывается, но когда нет никаких операций сравнения p=0 и все ок, почему тут в проге виснет? |
|||
|
||||
| volvo877 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 2 Всего: 116 |
||||
|
||||
| Alexey91 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 195 Регистрация: 18.9.2008 Репутация: нет Всего: нет |
Так Z зависит от X и Y. Сколько было операций сравнение, такое численное значение Z. Не могу представить ситуацию, когда Z будет больше n*2. Отладчик уже раз 10 запускал, еще такого не было. Кстати, почему переменная e[z] в отладчике постоянно равна 0? Это сообщение отредактировал(а) Alexey91 - 6.11.2008, 20:59 |
|||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
Alexey91, брейки следят за X и Y, а за Z следит цикл.
|
|||
|
||||
| Alexey91 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 195 Регистрация: 18.9.2008 Репутация: нет Всего: нет |
Мое сообщение оказалось выше вашего ответа
|
|||
|
||||
| volvo877 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 2 Всего: 116 |
Потому что 1) Z - это позиция, куда БУДЕТ записываться очередное значение. Понимаешь, не записалось, а только будет, естественно, что записываться очередной элемент должен в пустую ячейку. 2) отладчик работает ПОСТРОЧНО. Поскольку у тебя (вернее, у меня) и изменение e[Z] и изменение Z - в одной строке, то отловить тот момент, когда e[Z] не ноль, ты не можешь... Разбей строку так:
А этого и не должно быть... Просто надо задать граничное условие для выхода из цикла. И вместо того, чтобы задавать Until False я предпочитаю сделать Until Z >= 2*n Это сообщение отредактировал(а) volvo877 - 6.11.2008, 21:42 |
|||
|
||||
| Alexey91 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 195 Регистрация: 18.9.2008 Репутация: нет Всего: нет |
|
|||
|
||||
![]()
|
| Правила форума "Delphi" | |
|
|
Запрещается! 1. Обсуждать и делится взломанными компонентами или программным обеспечением 2. Публиковать ссылки на варез 3. Оффтопить
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |