Постройте график линейного уравнения с двумя переменными - Turbo Pascal
Формулировка задачи:
Постройте график линейного уравнения с двумя переменными y=5+x. Вывод графика с решением. (Заранее спасибо !!!! ).
Решение задачи: «Постройте график линейного уравнения с двумя переменными»
textual
Листинг программы
uses graph;
function F1(x:real):real;
begin
F1:=5+x
end;
function F2(x:real):real;
begin
F2:=-7-2*x
end;
var a,b,m:real;
x,x1,y1:real;
x0,y0,i:integer;
s,s1:string;
begin
x0:=0;
initgraph(x0,y0,'');{инициализация графического режима}
a:=-16;
b:=10;{интервал по Х}
x0:=getmaxX div 2;{начало координат по Х}
y0:=getmaxY div 2;{начало координат по Y}
m:=(y0-40)/F1(b);
line(x0-round(17*m),y0,x0+round(17*m),y0);{оси}
line(x0,0,x0,getmaxY);
for i:=1 to 16 do{максимальное количество засечек в одну сторону}
begin
line(x0-3,y0-round(i*m),x0+3,y0-round(i*m));{засечки на оси У}
line(x0-3,y0+round(i*m),x0+3,y0+round(i*m));
line(x0+round(i*m),y0-3,x0+round(i*m),y0+3); {засечки на оси Х}
line(x0-round(i*m),y0-3,x0-round(i*m),y0+3);
if i mod 2=0 then
begin
{подпись оси У}
str(i,s);
outtextXY(x0-25,y0-round(i*m),s);{соответственно засечкам}
outtextXY(x0-30,y0+round(i*m),'-'+s);
{подпись оси Х}
outtextXY(x0+round(i*m),y0+10,s);
outtextXY(x0-round(i*m)-10,y0+10,'-'+s);
end;
end;
{подписи концов осей}
outtextXY(x0+round(16*m),y0-20,'X');
outtextXY(x0+5,10, 'Y');
{график}
x:=a;
setcolor(12);
while x<=b do
begin
if x=a then moveto(x0+round(x*m),y0-round(F1(x)*m))
else lineto(x0+round(x*m),y0-round(F1(x)*m));
x:=x+0.1;
end;
x:=a;
setcolor(10);
while x<=b do
begin
if x=a then moveto(x0+round(x*m),y0-round(F2(x)*m))
else lineto(x0+round(x*m),y0-round(F2(x)*m));
if abs(F1(x)-F2(x))<0.01 then
begin
x1:=x;
y1:=F1(x);
end;
x:=x+0.1;
end;
setcolor(14);
setfillstyle(1,14);
fillellipse(x0+round(x1*m),y0-round(y1*m),3,3);
{название}
setcolor(12);
outtextXY(10,80,'y=5+x');
setcolor(10);
outtextXY(10,100,'y=-7-2x');
setcolor(14);
str(x1:0:1,s);
str(y1:0:1,s1);
outtextXY(10,120,'x='+s+' y='+s1);
readln
end.
Объяснение кода листинга программы
- Создается функция F1(x), которая принимает переменную x и возвращает значение 5+x.
- Создается функция F2(x), которая принимает переменную x и возвращает значение -7-2*x.
- Создаются переменные a, b, m, x, x1, y1, x0, y0, i, s, s1.
- Инициализируется графический режим с помощью функции initgraph(x0, y0, '').
- Задаются начальные значения для переменных x0, y0, i, s и s1.
- Вычисляется значение m как (y0-40)/F1(b).
- Строятся линии на графике: оси X и Y, а также засечки на каждой из осей.
- Строятся графики функций F1(x) и F2(x) с помощью функции while.
- Строится эллипс с помощью функции fillellipse.
- Выводятся подписи осей X и Y, а также название графика.
- Выводится значение переменной x1 и y1.
- Выводится название графика с помощью функции outtextXY.
- Выводится значение переменной x1, y1 с помощью функции str.
- Выводится значение переменной m с помощью функции str.
- Выводится значение переменной x0 с помощью функции str.
- Выводится значение переменной y0 с помощью функции str.