Нарисовать отрезок и определить его длину. - PascalABC.NET

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

Помогите пожалуйста. Нужна программа для решения и вывода графика на экран по формуле sqrt((x02-x01)*(x02-x01)+(y02-y01)*(y02-y01)).

Код к задаче: «Нарисовать отрезок и определить его длину. - PascalABC.NET»

textual
uses graphABC;
var x1,y1,x2,y2,s,m:real;
    cn,i:integer;
    st:string;
begin
repeat
writeln('Введите координаты двух точек от -10 до 10');
readln(x1,y1,x2,y2);
until(x1>=-10)and(x1<=10)and(y1>=-10)and(y1<=10)    
and  (x2>=-10)and(x2<=10)and(y2>=-10)and(y2<=10);
setwindowsize(500,550);
centerwindow;
clearwindow;
cn:=windowwidth div 2;
m:=(cn-20)/10;
line(0,cn,2*cn,cn);
line(cn,0,cn,2*cn);
textout(2*cn-10,cn-20,'X');
textout(cn+5,0,'Y');
textout(cn+5,cn+10,'0');
for i:=1 to 10 do
 begin
  line(cn+round(i*m),cn-3,cn+round(i*m),cn+3);
  textout(cn+round(i*m),cn+10,inttostr(i));
  line(cn-round(i*m),cn-3,cn-round(i*m),cn+3);
  textout(cn-round(i*m),cn+10,inttostr(-i));
  line(cn-3,cn-round(i*m),cn+3,cn-round(i*m));
  textout(cn-15,cn-round(i*m),inttostr(i));
  line(cn-3,cn+round(i*m),cn+3,cn+round(i*m));
  textout(cn-20,cn+round(i*m),inttostr(-i));;
 end;
setbrushcolor(clRed);
setpencolor(clRed);
circle(cn+round(x1*m),cn-round(y1*m),3);
circle(cn+round(x2*m),cn-round(y2*m),3);
setpenwidth(2);
line(cn+round(x1*m),cn-round(y1*m),cn+round(x2*m),cn-round(y2*m));
s:=sqrt(sqr(x1-x2)+sqr(y1-y2));
str(s:0:2,st); 
setbrushstyle(bsClear);
textout(cn-100,windowheight-20,'Длина отрезка='+st);
end.

9   голосов, оценка 4.111 из 5


СОХРАНИТЬ ССЫЛКУ
Похожие ответы