Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 05.01.2020, 20:24   #1
Школьница_прогер
Новичок
Джуниор
 
Регистрация: 05.01.2020
Сообщений: 2
По умолчанию delphi. несмотря на блок try, программа завершается ошибкой

при вычислении Р и Х при некоторых шагах цикла вайл(при многих) не проходит ОДЗ. => я сделала, части кода, где может быть ошибка, в try, но при выполнении, доходя до этого вычесления(где не проходит одз) вылетает сообщение с ошибкой, и программа вылетает.


Код:
  while t<tmax+h do begin
  memo2.Lines.Add(floattostrF(t, ffFixed, 2, 1));
   try
   x:=0.256*power(t,power(3, 2-a));
   memo3.Lines.Add(floattostrF(x, fffixed, 9, 7));
   except
   memo3.Lines.Add('вычесление невозможно1');
   memo1.Lines.Add('вычесление невозможно1');  end;

   try
    p:=arcsin(x+0.2)/power(x-0.9,3*sin(d*x))/ln(x)*ln(3);
    memo1.Lines.Add(floattostrF(p, fffixed, 6, 3));
   except
    memo3.Lines.Add('вычесление невозможно2');
    memo1.Lines.Add('вычесление невозможно2');
   end;

 t:=t+H;
 end;
Школьница_прогер вне форума Ответить с цитированием
Старый 05.01.2020, 20:48   #2
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,030
По умолчанию

Замените except на finally .
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 09.01.2020, 00:37   #3
Школьница_прогер
Новичок
Джуниор
 
Регистрация: 05.01.2020
Сообщений: 2
По умолчанию

пробовала, выдаёт ту же ошибку(инвалид флоатинг поинт оперэйшн) и показывает на строку с вычеслением(p:=....) как будто он пытаясь вычислить в блоке трай(неудачно из-за одз) все равно закрывает программу с ошибкой
Школьница_прогер вне форума Ответить с цитированием
Старый 09.01.2020, 03:15   #4
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 14,242
По умолчанию

Запустите программу не из среды, а сам ехе-шник.
Arigato вне форума Ответить с цитированием
Старый 09.01.2020, 08:22   #5
Heneken87
Форумчанин
 
Регистрация: 27.04.2012
Сообщений: 198
По умолчанию

Цитата:
Сообщение от Школьница_прогер Посмотреть сообщение
при вычислении Р и Х при некоторых шагах цикла вайл(при многих) не проходит ОДЗ. => я сделала, части кода, где может быть ошибка, в try, но при выполнении, доходя до этого вычесления(где не проходит одз) вылетает сообщение с ошибкой, и программа вылетает.


Код:
  
power(x-0.9,3*sin(d*x))/ln(x)*ln(3)
В целом тут и try не нужны.
Перед 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.
Цитата:
Функция Power ( X, Y: Extended ): Extended;

Модуль: Math

Описание
Функция возводит X в степень Y.
Значение аргумента Х должно быть больше нуля, иначе возникнет исключение EInvalidOp. Данная функция аналогична функции IntPower за исключением того, что для Power значение показателя степени Y может превышать MaxInt и иметь нецелочисленный тип.
Пишу много и развернуто

Последний раз редактировалось Heneken87; 09.01.2020 в 08:35.
Heneken87 вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа CL.exe завершается кодом 2, непонятно Tak-Tik Общие вопросы C/C++ 16 01.07.2019 01:54
Программа сразу завершается yakimechik Общие вопросы C/C++ 1 19.11.2015 21: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 14:18