Математический анализ поведения функции при заданных значения аргумента(табулирование функции) - Pascal ABC

Формулировка задачи:

Условие: составить алгоритм и программу вычисления: -исследовать методами математического анализа поведение функции при заданных значениях аргумента. -результаты вычислений вывести на экран в виде таблицы. -значения аргумента Xmin=0;Xmax=3. Прирост Δх=0.1 . Для тригонометрических функций нужно включить значение х, кратное числу Pi (Pi/4, Pi/2, 3Pi/4, Pi). Таблица значений функций прилагается,а также сами 7 функций к табулированию ------- А теперь что получилось у меня.
Program lab4;
Uses Crt;
Const pi=3.1415926;
Var i:integer; 
       x:real;
Function fun1(x:real):real; 
begin
fun1:=x* (x-1) * (x-1) * (x-1) * (x-1); 
end;
Function fun2(x:real):real; 
begin
fun2:=sqrt(1+x)/sqr(x); 
end;
Function fun3(x:real):real;
begin
fun3:=sqr(1-sin(x))/sin(x); 
end;
Function fun4(x:real):real; 
begin
fun4 := 1/ (1-exp (-x)); 
end;
Function fun5(x:real):real; 
begin
fun5 :=sqr (x) / ( (exp (x) +exp (-x) ) /2) ; 
end;
Function fun6(x:real):real; 
begin
fun6:=1/(ln(sqr(x)+1)); 
end;
Function fun7(x:real):real; 
begin
fun7:= ((exp (x) -exp (-x) ) /2) *sin (x);
end;
Procedure FBI(x:real); 
begin
write(x:2:1,'  ');
write(fun1(x): 9: 3); 
if ((x=0) or ((x)<1)) then     write('   ---- ')    else write(fun2(x):8:3);
if ((x=0) or (x=pi)) then     write('   ---- ')    else write(fun3(x):8:3); 
if x=0 then     write('   ____ ')    else write(fun4(x):8:3); 
write(fun5(x):8:3) ; 
if x=0 then     write('   ____ ')    else write(fun6(x):8:3); 
write(fun7(x):8:3); 
end;
BEGIN 
ClrScr;
writeln ('  x      fun1    fun2    fun3    fun4    fun5    fun6    fun7');
x:=0;
for i:=1 to 31 do 
begin 
writeln;
FBI(x); 
x:=x+0.1; 
end;
x:=pi/4;
for i:=1 to 4 do 
begin
writeln;
FBI(x);
x:=x+pi/4;
end;
readln;
END.
Программа считает не корректно,помогите найти ошибку.Например:почему оно не может найти sqrt(1+x)/sqr(x) при х=0.8 ,будет же где-то около 2. Скрин результатов ниже. Пожалуйста,не проходите мимо,буду очень благодарен за помощь,а за готовый переделанный код вообще буду безгранично благодарен.
1.0      0.000   ----    0.030   1.582   0.648   1.443   0.989
1.1      0.000   1.198   0.013   1.499   0.725   1.261   1.190
1.2      0.002   1.030   0.005   1.431   0.795   1.121   1.407
1.3      0.011   0.897   0.001   1.375   0.857   1.011   1.636
1.4      0.036   0.790   0.000   1.327   0.911   0.921   1.877
1.5      0.094   0.703   0.000   1.287   0.956   0.848   2.124
1.6      0.207   0.630   0.000   1.253   0.993   0.788   2.375
1.7      0.408   0.569   0.000   1.224   1.022   0.736   2.624
1.8      0.737   0.516   0.001   1.198   1.043   0.692   2.865
1.9      1.247   0.472   0.003   1.176   1.056   0.654   3.093
2.0      2.000   0.433   0.009   1.157   1.063   0.621   3.298
2.1      3.075   0.399   0.022   1.140   1.064   0.592   3.472
2.2      4.562   0.370   0.045   1.125   1.060   0.567   3.604
2.3      6.569   0.343   0.087   1.111   1.050   0.544   3.682
2.4      9.220   0.320   0.156   1.100   1.037   0.523   3.692
2.5     12.656   0.299   0.269   1.089   1.019   0.505   3.621
2.6     17.039   0.281   0.455   1.080   0.999   0.488   3.451
2.7     22.551   0.264   0.767   1.072   0.975   0.473   3.165
2.8     29.393   0.249   1.320   1.065   0.950   0.459   2.744
2.9     37.793   0.235   2.419   1.058   0.923   0.446   2.167
3.0     48.000   0.222   5.227   1.052   0.894   0.434   1.414
0.8      0.002   ----    0.121   1.838   0.466   2.081   0.614
1.6      0.167   0.650   0.000   1.262   0.983   0.804   2.301
2.4      7.971   0.330   0.121   1.105   1.043   0.532   3.697
3.1     66.084   0.206   ----    1.045   0.851   0.419   0.000

Код к задаче: «Математический анализ поведения функции при заданных значения аргумента(табулирование функции) - Pascal ABC»

textual
if ((x=0) or ((x)<1))

8   голосов, оценка 4.250 из 5


СОХРАНИТЬ ССЫЛКУ