Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.09.2011, 18:40   #1
robin39
Пользователь
 
Регистрация: 18.05.2010
Сообщений: 37
По умолчанию Возникает ошибка при отрицательном числе

При вводе 0 возникает ошибка floating point division by zero.
при -0,.. тоже возникает ошибка, но уже invalid floating point operation

Никак не могу допереть в чем дело. Где накасячил. Помогите.


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
edt1: TEdit;
edt2: TEdit;
btn1: TButton;
btn2: TButton;
btn3: TButton;
lbl1: TLabel;
lbl2: TLabel;
img1: TImage;
lbl3: TLabel;
lbl4: TLabel;
procedure btn3Click(Sender: TObject);
procedure btn2Click(Sender: TObject);
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btn3Click(Sender: TObject);
begin
Close;
end;

procedure TForm1.btn2Click(Sender: TObject);
begin
Edt1.text:= '';
Edt2.text:='';
end;

procedure TForm1.btn1Click(Sender: TObject);
begin

if (StrTofloat(edt1.text) > -1) and (StrTofloat(edt1.text) <= 1) then
begin edt2.Text:=FloatToStr(exp(2*ln(strt ofloat(edt1.Text)))*2-1)
end
else begin
if (StrTofloat(edt1.text) > 1) and (StrTofloat(edt1.text) <= 2) then
begin edt2.Text:=FloatToStr(exp(2*ln(strt ofloat(edt1.Text))))
end
else begin
if(StrTofloat(edt1.text) <= 1) then begin
edt2.Text:=FloatToStr(1);
end


else begin
if StrTofloat(edt1.text) > 2 then begin
Edt2.text:= 'x>2 функция не определена'
end
end;
end;
end;
end;

end.
robin39 вне форума Ответить с цитированием
Старый 22.09.2011, 19:21   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
При вводе 0 возникает ошибка floating point division by zero.
ТС, подскажите пожалуйста, чему равен Ln 0 = ?
Цитата:
Никак не могу допереть в чем дело. Где накасячил. Помогите.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 22.09.2011 в 19:26.
evg_m вне форума Ответить с цитированием
Старый 22.09.2011, 19:39   #3
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

Между прочим, в Delphi для возведения в степень можно использовать функцию Power, а не такую необычную комбинацию
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Старый 22.09.2011, 21:44   #4
robin39
Пользователь
 
Регистрация: 18.05.2010
Сообщений: 37
По умолчанию

Цитата:
Сообщение от robin39 Посмотреть сообщение
при -0,.. тоже возникает ошибка, но уже invalid floating point operation
эта ошибка по той же причине?
robin39 вне форума Ответить с цитированием
Старый 23.09.2011, 10:33   #5
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

именно, Вы в школе учились? помните допустимые значения под логарифмом? поэтому сейчас для возведения в степень проще использовать Power, чем писать несколько условий на каждый неподходящий случай (отдельно отрицательные, отдельно ноль)
благодарность - сюда (не забываем писать от кого)

Последний раз редактировалось Zer0; 23.09.2011 в 10:36.
Zer0 вне форума Ответить с цитированием
Старый 23.09.2011, 11:56   #6
robin39
Пользователь
 
Регистрация: 18.05.2010
Сообщений: 37
По умолчанию

ок, спасибо)))

Последний раз редактировалось robin39; 23.09.2011 в 12:16.
robin39 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При закрытии Word возникает ошибка sewer777 Microsoft Office Word 3 20.10.2011 13:19
При установке MySQL возникает ошибка Gen_r_questions PHP 0 28.05.2011 10:41
Ошибка 104, возникает при определенном шаге. TomOoma Паскаль, Turbo Pascal, PascalABC.NET 0 08.05.2011 13:48
При измимении Button возникает ошибка с CheckBox Саня_ Общие вопросы Delphi 4 07.03.2011 21:05
При открытии двойным щелчком раздела возникает ошибка( DEMONENOC Операционные системы общие вопросы 3 30.06.2009 05:02