![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Доброго всем времени суток. Вообщем пишу программу по заданию из универа и всё бы хорошо но одна из операций постоянно сообщает об ошибке, что я уже не пытался сделать ничего не помогает....
Вот собственно сама прога Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Math, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Memo1: TMemo; Button1: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin Edit1.Text:='-2,235E-2'; Edit2.Text:='2,23'; Edit3.Text:='15221'; Memo1.Clear; end; procedure TForm1.Button1Click(Sender: TObject); var x,y,z,a,b,c,s : real; begin Memo1.Clear; Memo1.Lines.Add('Исходные данные:'); x:=StrToFloat(Edit1.Text); Memo1.Lines.Add('X='+FloatToStrF(x,fffixed,8,4)); y:=StrToFloat(Edit2.Text); Memo1.Lines.Add('Y='+FloatToStrF(y,fffixed,8,4)); z:=StrToFloat(Edit3.Text); Memo1.Lines.Add('Z='+FloatToStrF(z,fffixed,8,4)); a:=exp(abs(x-y))*exp((x+y)*ln(abs(x-y))); b:=arctan(x)+arctan(z); c:=Power(exp(6*ln(x))+sqr(ln(y)),1/3); // ошибку выдаёт в этой строке ( Invalid floating point operation) s:=a/b+c; Memo1.Lines.Add('Результат S='+FloatToStrF(s,fffixed,8,3)); end; end. Помогите плиз разобраться с этой проблемой. Заранее благодарен Последний раз редактировалось Admin, 01.10.2011 в 13:29. |
#2
|
|||
|
|||
![]() ![]() вот собственно само задание и исходные данные к нему... мб я неправильно закодировал операции.... |
#3
|
||||
|
||||
![]() Не пойму, зачем столько раз делать экспоненту и считать через логарифмы, когда есть обычная степень.
Код:
a:=exp(abs(x-y))*power(abs(x-y),(x+y)); b:=arctan(x)+arctan(z); c:=Power(power(x,6)+sqr(ln(y)),1/3); s:=a/b+c; Меня пугают строчки Код:
Edit1.Text:='-2,235E-2'; // Не проще написать -0,02235? Ну это ладно. Edit2.Text:='2,23'; Edit3.Text:='15221'; // Может все-таки 15,221? |
#4
|
|||
|
|||
![]() Что означает я знаю, прочитал уже в справочниках.
число деййствительно 15,221 но это ничего не меняет. Возникает ошибка в операции с.(((( Может быть я неправильно написал код? Если не сложно, я условие прикрепил выше. Можете написать код для выражения с ( тогочто с корнем кубическим). Заранее спасибо... |
#5
|
||||
|
||||
![]() В предыдущем сообщении оно есть.
Только ошибка вполне может быть и одной-двумя строками ранее. То, что среда рисует на этой строчке, еще не значит, что там она 100% находится. ![]() jmp $ ; Happy End! The Cake Is A Lie. |
#6
|
|||
|
|||
![]() Огромное спасибо ввёл ваш код и всё заработало)))))))
|