|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
05.01.2020, 19:24 | #1 |
Новичок
Джуниор
Регистрация: 05.01.2020
Сообщений: 2
|
delphi. несмотря на блок try, программа завершается ошибкой
при вычислении Р и Х при некоторых шагах цикла вайл(при многих) не проходит ОДЗ. => я сделала, части кода, где может быть ошибка, в try, но при выполнении, доходя до этого вычесления(где не проходит одз) вылетает сообщение с ошибкой, и программа вылетает.
Код:
|
05.01.2020, 19:48 | #2 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Замените except на finally .
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
08.01.2020, 23:37 | #3 |
Новичок
Джуниор
Регистрация: 05.01.2020
Сообщений: 2
|
пробовала, выдаёт ту же ошибку(инвалид флоатинг поинт оперэйшн) и показывает на строку с вычеслением(p:=....) как будто он пытаясь вычислить в блоке трай(неудачно из-за одз) все равно закрывает программу с ошибкой
|
09.01.2020, 02:15 | #4 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,544
|
Запустите программу не из среды, а сам ехе-шник.
E-Mail: arigato.freelance@gmail.com
|
09.01.2020, 07:22 | #5 | ||
Форумчанин
Регистрация: 27.04.2012
Сообщений: 219
|
Цитата:
Перед x:=0.256*power(t,power(3, 2-a)); убедитесь что t > 0 Перед power(x-0.9,3*sin(d*x))/ln(x)*ln(3) убедитесь что результат x-0.9 БОЛЬШЕ нуля и ln(x)*ln(3) тоже больше нуля. И никаких исключительных ситуаций тут не надо. вылетает скорей всего в методе power. Цитата:
Пишу много и развернуто
Последний раз редактировалось Heneken87; 09.01.2020 в 07:35. |
||
21.11.2020, 00:57 | #6 |
Новичок
Джуниор
Регистрация: 20.11.2020
Сообщений: 2
|
|
23.11.2020, 08:47 | #7 |
Участник клуба
Регистрация: 03.06.2009
Сообщений: 1,814
|
внутри цикла while делаете проверку на ОДЗ или допустимые значения
Код:
x..... ln(x)......power()
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
|
23.11.2020, 11:40 | #8 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,544
|
Лучше x>0 и x<>1.
Ноль получится лишь при x=0.9, значения аргументов также не могут быть любыми. Арксинус тоже далеко не везде определен. Так что тут действительно проще проверять через try, чем пытаться вычислить ОДЗ. E-Mail: arigato.freelance@gmail.com
Последний раз редактировалось Arigato; 23.11.2020 в 11:43. |
23.11.2020, 16:57 | #9 |
Новичок
Джуниор
Регистрация: 20.11.2020
Сообщений: 2
|
Это то понятно, что блок try удобнее. Вопрос лишь в том, почему при невозможности вычисления там (ф-ия power не может быть выполнены) вылезает ошибка? При чём только если запускать из среды. Если закрыть среду и открыть exe-шник, то ошибки не вылезают и программа выполняет то, что заложено в except'e
|
23.11.2020, 19:03 | #10 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
потому в среде все ошибки поначалу перехватывает отладчик.
показывает их и спрашивает что делать дальше. в зависимости от желания программиста либо останавливает программу совсем (это действие по умолчанию!!!) (и ничего более не будет выполнено) . либо продолжает ее выполнять и в этом случае уже будет выполнено Цитата:
программа — запись алгоритма на языке понятном транслятору
|
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
программа CL.exe завершается кодом 2, непонятно | Tak-Tik | Общие вопросы C/C++ | 16 | 01.07.2019 00:54 |
Программа сразу завершается | yakimechik | Общие вопросы C/C++ | 1 | 19.11.2015 20:14 |
Программа работает, выдает правильные ответы, но завершается ошибкой | zorg-kirill | Visual C++ | 5 | 20.11.2012 18:57 |
GetMailslotInfo завершается с ошибкой. | tamTam | C# (си шарп) | 0 | 26.12.2011 14:42 |
Программа стартует и сразу же завершается | IceExecutioner | Общие вопросы Delphi | 1 | 03.03.2011 13:18 |