![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Cetus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 18.4.2004 Репутация: нет Всего: 1 |
возник вопрос, является ли код корректным?
если при i=k, (0<k<n) возникнет исключение, то в секции except значение i будет то же самое что и в секции try (в т.ч. при граничных значениях)? На тестах проблем не было, но компилятор делфи ругается, что значение i может быть не определено... Это сообщение отредактировал(а) Alex - 23.3.2005, 21:36 --------------------
Легко внести изменения в код.Трудно сделать это корректно. |
|||
|
||||
| fess |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 17.2.2005 Где: г. Мурманск, Росс ия Репутация: 2 Всего: 3 |
Не обращай внимания --------------------
Компьютер не подчиняется законам физики. Только в нём глюки возникают из ничего, файлы исчезают в никуда, а объём измеряется в метрах и называется весом. |
|||
|
||||
| Marriage |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 4.5.2004 Где: Таганрог Репутация: нет Всего: 2 |
Странно, что не было. Я бы сделал так :
Ошибка по идее должна пропасть. -------------------- Praemonitus, praemunitus |
||||
|
|||||
| fess |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 17.2.2005 Где: г. Мурманск, Росс ия Репутация: 2 Всего: 3 |
Почему они должны быть? Ведь значение переменной цикла не может быть измененно внутри цикла (в смысле нельзя сделать i:=5), а сразу после цикла стоит except, следовательно, переменная i не изменяется до попадания в блок исключения. А это предупрежедние как раз говорит о том, что значение i может быть измененно. --------------------
Компьютер не подчиняется законам физики. Только в нём глюки возникают из ничего, файлы исчезают в никуда, а объём измеряется в метрах и называется весом. |
|||
|
||||
| Marriage |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 4.5.2004 Где: Таганрог Репутация: нет Всего: 2 |
fess
Я имел ввиду не конкретный случай, а общий. Например цикл while -------------------- Praemonitus, praemunitus |
|||
|
||||
| bursa |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 25.2.2005 Где: Липецк Репутация: нет Всего: 1 |
После выхода из цикла for i ... переменнная i может содержать что угодно. Чаще, конечно, там может быть то, что тебе нужно. Но, будте уверены, будут глюки. А отлавливать такие глюки (то есть ошибка, то нет) дело неблагодарное.
Делай как Marriage сказал. Это сообщение отредактировал(а) bursa - 24.3.2005, 12:42 |
|||
|
||||
| fess |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 17.2.2005 Где: г. Мурманск, Росс ия Репутация: 2 Всего: 3 |
Почему? --------------------
Компьютер не подчиняется законам физики. Только в нём глюки возникают из ничего, файлы исчезают в никуда, а объём измеряется в метрах и называется весом. |
|||
|
||||
| bursa |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 25.2.2005 Где: Липецк Репутация: нет Всего: 1 |
В учебнике по Turbo Pascal прочитал. В году эдак '89.
Это связано с особенностью компилятора. В общем, я никогда и не использовал по сегодняшний день. Может, что-то изменилось? |
||||
|
|||||
| Marriage |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 4.5.2004 Где: Таганрог Репутация: нет Всего: 2 |
НУжно еще учитывать ВЕЛИКОЛЕПНЫЙ exept. То есть код выполняется при "глючной" ситуации. И никто не знает , что там произошло и повлекло за собой ... Может именно там перезаписалось значение i. Это сообщение отредактировал(а) Marriage - 24.3.2005, 15:24 -------------------- Praemonitus, praemunitus |
|||
|
||||
| Cetus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 18.4.2004 Репутация: нет Всего: 1 |
bursa , Marriage меня не интересует значение переменной _после_ выхода из цикла, а именно _в цикле_ (в т.ч. на границах)
Необходимо для следующего: если при модификации k-го элемента массива (0 <= k <= n) обнаружилоcь, что элемент не соотв условию, то произвести 'обратную модификацию' элементов массива от 0 до k, не трогая элементы с k+1 до n. --------------------
Легко внести изменения в код.Трудно сделать это корректно. |
|||
|
||||
| Marriage |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 4.5.2004 Где: Таганрог Репутация: нет Всего: 2 |
Cetus
Что то я не понял .... А почему не сделать так :
Try/exept - это когда проект вовремя сдать надо !!!! -------------------- Praemonitus, praemunitus |
|||
|
||||
| Cetus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 18.4.2004 Репутация: нет Всего: 1 |
Marriage
Пишу для MySQL, но там нет механизма транзакций, откатов. На каждую запись свой отдельный SQL запрос, если не выполняется, то делаем откат изменений. Поэтому приходится реализовывать все самому, через try-for-except для многопользовательского режима. --------------------
Легко внести изменения в код.Трудно сделать это корректно. |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Надёжнее и правильнее запоминать на каждом шаге i в какой-нибудь переменной...
Добавлено @ 12:44 Или делать цикл не через for, а чере while -------------------- С уважением, г-н Посол. |
|||
|
||||
| Гость_Cetus |
|
|||
|
Unregistered |
ну и чем же они будут отличаться?
|
|||
|
||||
| Marriage |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 4.5.2004 Где: Таганрог Репутация: нет Всего: 2 |
Гость_Cetus
Мой ответ на твой вопрос
Ну а дальше уже тебе решать. -------------------- Praemonitus, praemunitus |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |