Построить график функции и найти все возможные ее решения - Turbo Pascal
Формулировка задачи:
Задав конкретную функцию F(x), построить на символьном экране дисплея ее график и графически найти все возможные решения, не применяя никаких численных методов.
При реализации учесть, что вид функции и интервал могут быть любыми (в конкретных вариан-тах задан тестовый интервал и значение корня на этом интервале - для проверки правильности построения графика данной функции).
В программе должны быть предусмотрены соответствующие процедуры и функции
Решение задачи: «Построить график функции и найти все возможные ее решения»
textual
Листинг программы
uses crt;
function f(x:real):real;
begin
f:=exp(x)-exp(-x)-2;
end;
const a=0;{параметры графика}
b=1;
var x,y,mx,my,x1:real;
i:byte;
begin
clrscr;
{Заголовок}
gotoXY(25,1);
write('График функции F(x)=e^x-e^-x-2');
gotoXY(28,2);
writeln('на интервале x=[0..1]');
{оси координат}
{ось X горизoнтально}
gotoXY(7,7);
for i:=0 to 73 do
if i mod 7=0 then
write(#194)
else write(#196);
i:=14;
x:=0.1;
while x<=b+0.05 do
begin
gotoXY(i-1,9);
write(x:0:1);
x:=x+0.1;
i:=i+7;
end;
{ось Y вертикально}
for i:=1 to 25 do
begin
gotoXY(7,i);
if (1+i) mod 4=0 then write(#180)else write(#179);
end;
y:=0.5;
i:=3;
while y>=f(a) do
begin
gotoXY(2,i);
write(y:4:1);
y:=y-0.5;
i:=i+4;
end;
gotoXY(8,1);
write('Y');
gotoXY(79,6);
write('X');
{график}
mx:=68/(b-a);{масштабы по осям}
my:=20/(f(b)-f(a)) ;
x:=a;
while x<=b+0.05 do
begin
{смещаем точки на 7 по горизонтали и на 7 по вертикали}
gotoXY(7+round(x*mx),7-round(f(x)*my));
if f(x)*f(x-0.05)<0 then
begin
textcolor(10);
x1:=x-0.025;
end
else textcolor(9);
write('*');
x:=x+0.05
end;
gotoXY(50,15);
textcolor(10);
write('x=',x1:0:4);
gotoXY(1,1);
readln
end.