program Lab11_Var10;
var
a, b, c, x, x_end, dx, f: real;
is_real, div_zero: boolean;
begin
Write('Введите действительные числа a, b, c: ');
ReadLn(a, b, c);
Write('Введите Xнач., Xкон., dX: ');
ReadLn(x, x_end, dx);
{ Проверка кратности 4 целой части выражения abc }
is_real := (Trunc(a * b * c) mod 4 = 0);
WriteLn('-----------------------------');
WriteLn('| X | F |');
WriteLn('-----------------------------');
{ Цикл с предусловием для прохода по интервалу }
while x <= x_end + 1e-9 do
begin
div_zero := False;
if (x < 3) and (b <> 0) then
f := a * Sqr(x) - b * x + c
else if (x > 3) and (b = 0) then
begin
if x - c = 0 then
div_zero := True
else
f := (x - a) / (x - c);
end
else
begin
if c = 0 then
div_zero := True
else
f := x / c;
end;
{ Вывод строки таблицы с учетом типа значения F }
if div_zero then
WriteLn('| ', x:9:2, ' | Деление на 0 |')
else if is_real then
WriteLn('| ', x:9:2, ' | ', f:13:4, ' |')
else
WriteLn('| ', x:9:2, ' | ', Trunc(f):13, ' |');
x := x + dx;
end;
WriteLn('-----------------------------');
ReadLn;
end.