Помогите исправить ошибку!
Помогите исправить ошибку в делфи!
[Hint] Project2.dpr(37): Value assigned to 'ab2' never used
Сама программа:
Program t4t;
{$APPTYPE CONSOLE}
uses
SysUtils,
Math;
var
a,b,h,E: real;
Function F(x:real): real;
Begin
F:=0.1*x*x - x*ln(x);
End;
Function Fp(xp,E:real):real;
Begin
Result:=(F(xp+E)-F(xp))/E;
End;
Function Fpp(xpp,E:real):real;
Begin
Result:=(Fp((xpp+E),E)-Fp(xpp,E))/E;
End;
Function IsRootOne(const a,b:real):boolean;
Begin
Result:=False;
If (Fp(a,E)*Fp(b,E)>=0) AND (Fpp(a,E)*Fpp(b,E)>=0) Then
Result:=True;
End;
Function GetRoot(const a,b,E:real;const M:byte):real;
var
la,lb,ab2:real;
i:integer;
Begin
la:=a;lb:=b;ab2:=(a+b)/2;
Case M of
1:Begin
End;
2:Begin
End;
3:Begin
If Abs(F(la)) < Abs(F(lb)) Then
ab2:=F(la)
Else
ab2:=F(lb);
While Abs((ab2-F(ab2)/Fp(ab2,E))-ab2)>=E Do
ab2:=ab2-F(ab2)/Fp(ab2,E);
Result:=ab2;
End;
End;
End;
Procedure FindRoot(const a,b,E:real;const M:byte);
var
la,lb,r:real;
N,i:integer;
Begin
N:=4;
la:=a;lb:=b;
h:=(lb-la)/N;
For i:=0 to N-1 do
Begin
la:=a+i*h;
lb:=la+h;
If F(la)*F(lb)<0 Then
If IsRootOne(la,lb) Then
begin
// write(' ')
r:=GetRoot(la,lb,E,M);
Writeln(r,#9);
end
else
If N<=256 Then
Begin
N:=N*2;
h:=(lb-la)/N;
End;
End;
End;
Begin
a:=0;b:=3;E:=1e-5;
FindRoot(a,b,E,1);
Readln;
End.