K
KELA
Вот часть кода
[codebox]var
Form1: TForm1;
a,b,e,error,x,n,t1,t2,x1,x2,i,k,c1,c2,c3,c4,a1,a2,tmp,errorF,koren,iter:REAL;
kor1,kor2,kor3,it1,it2,it3:real;
m1,m2,m3: RealArray;
t: integer;
implementation
// Функция подсчёта логарифма по основанию b
function MyLog(x, b: Real): Real;
begin
Result := ln(x) / lnrolleyes:;
end;
// Функция возведения в степень
function MySt(a,b:real):real;
begin
Result := exp(b*ln(a));
end;
// Функция F(h)
FUNCTION F(h:REAL):REAL;
begin
t1:=h*(MyLog(MySt(5, (2*h-8)/5), 10));
t2:=MyLog(25, 10);
F:=t1-t2;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(floattostr(F(-1)); // ВЫВОДИТ -2.2*** !!!!!
[/codebox]
Корни функции F(h) ---- (-1) и (5) ТОЧНО!
При этих значениях t1 должен быть равен t2 (t1-t2=0)
Но в итоге получается, что F(-1) И F(5) РАВНЫ -2,2******
НО! Если от F(-1) или F(5) онять к примеру 0.0001 , то получается примерно 0 (точнее, -0.0001)
Что за фигня? Как такое может быть?
+ если в функции сравнить модули t1 и t2, он тупо не видит, что они равны! Хотя, выводя их через showmessage(floattostr()) поочерёдно - они одинаковые!
Где логика?
[codebox]var
Form1: TForm1;
a,b,e,error,x,n,t1,t2,x1,x2,i,k,c1,c2,c3,c4,a1,a2,tmp,errorF,koren,iter:REAL;
kor1,kor2,kor3,it1,it2,it3:real;
m1,m2,m3: RealArray;
t: integer;
implementation
// Функция подсчёта логарифма по основанию b
function MyLog(x, b: Real): Real;
begin
Result := ln(x) / lnrolleyes:;
end;
// Функция возведения в степень
function MySt(a,b:real):real;
begin
Result := exp(b*ln(a));
end;
// Функция F(h)
FUNCTION F(h:REAL):REAL;
begin
t1:=h*(MyLog(MySt(5, (2*h-8)/5), 10));
t2:=MyLog(25, 10);
F:=t1-t2;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(floattostr(F(-1)); // ВЫВОДИТ -2.2*** !!!!!
[/codebox]
Корни функции F(h) ---- (-1) и (5) ТОЧНО!
При этих значениях t1 должен быть равен t2 (t1-t2=0)
Но в итоге получается, что F(-1) И F(5) РАВНЫ -2,2******
НО! Если от F(-1) или F(5) онять к примеру 0.0001 , то получается примерно 0 (точнее, -0.0001)
Что за фигня? Как такое может быть?
+ если в функции сравнить модули t1 и t2, он тупо не видит, что они равны! Хотя, выводя их через showmessage(floattostr()) поочерёдно - они одинаковые!
Где логика?