Нарисовать отрезок и определить его длину. - PascalABC.NET
Формулировка задачи:
Помогите пожалуйста. Нужна программа для решения и вывода графика на экран по формуле sqrt((x02-x01)*(x02-x01)+(y02-y01)*(y02-y01)).
Решение задачи: «Нарисовать отрезок и определить его длину.»
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.
Объяснение кода листинга программы
- В первой строке используется директива uses graphABC, которая подключает модуль graphABC для работы с графикой.
- Затем определяются переменные x1, y1, x2, y2, s, m, cn, i, st типа real и integer для хранения координат точек, длины отрезка и других служебных значений.
- Далее следует блок repeat-until, который повторяет ввод координат двух точек, пока они не будут корректными (в пределах от -10 до 10 по осям X и Y).
- Затем устанавливаются размеры окна и его центральное положение, а также происходит очистка окна.
- Переменная cn инициализируется значением, равным половине ширины окна, а переменная m вычисляется как шаг для масштабирования координат.
- На экране рисуются оси X и Y, а также точка (0,0).
- Далее в цикле for i:=1 to 10 происходит рисование отрезков и меток с числами от -10 до 10 с шагом i*m.
- Затем устанавливаются красный цвет кисти и красный цвет пера, рисуются окружности вокруг введенных точек, а затем рисуется отрезок между этими точками.
- Вычисляется длина отрезка по формуле sqrt(sqr(x1-x2)+sqr(y1-y2)) и сохраняется в переменную s.
- С помощью функции str(s:0:2,st) строка s форматируется до двух знаков после запятой и сохраняется в переменную st.
- Наконец, с помощью функции textout выводится сообщение
Длина отрезка=
и значение переменной st на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д