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

Узнай цену своей работы

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

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

Решение задачи: «Нарисовать отрезок и определить его длину.»

textual
Листинг программы
  1. uses graphABC;
  2. var x1,y1,x2,y2,s,m:real;
  3.     cn,i:integer;
  4.     st:string;
  5. begin
  6. repeat
  7. writeln('Введите координаты двух точек от -10 до 10');
  8. readln(x1,y1,x2,y2);
  9. until(x1>=-10)and(x1<=10)and(y1>=-10)and(y1<=10)    
  10. and  (x2>=-10)and(x2<=10)and(y2>=-10)and(y2<=10);
  11. setwindowsize(500,550);
  12. centerwindow;
  13. clearwindow;
  14. cn:=windowwidth div 2;
  15. m:=(cn-20)/10;
  16. line(0,cn,2*cn,cn);
  17. line(cn,0,cn,2*cn);
  18. textout(2*cn-10,cn-20,'X');
  19. textout(cn+5,0,'Y');
  20. textout(cn+5,cn+10,'0');
  21. for i:=1 to 10 do
  22.  begin
  23.   line(cn+round(i*m),cn-3,cn+round(i*m),cn+3);
  24.   textout(cn+round(i*m),cn+10,inttostr(i));
  25.   line(cn-round(i*m),cn-3,cn-round(i*m),cn+3);
  26.   textout(cn-round(i*m),cn+10,inttostr(-i));
  27.   line(cn-3,cn-round(i*m),cn+3,cn-round(i*m));
  28.   textout(cn-15,cn-round(i*m),inttostr(i));
  29.   line(cn-3,cn+round(i*m),cn+3,cn+round(i*m));
  30.   textout(cn-20,cn+round(i*m),inttostr(-i));;
  31.  end;
  32. setbrushcolor(clRed);
  33. setpencolor(clRed);
  34. circle(cn+round(x1*m),cn-round(y1*m),3);
  35. circle(cn+round(x2*m),cn-round(y2*m),3);
  36. setpenwidth(2);
  37. line(cn+round(x1*m),cn-round(y1*m),cn+round(x2*m),cn-round(y2*m));
  38. s:=sqrt(sqr(x1-x2)+sqr(y1-y2));
  39. str(s:0:2,st);
  40. setbrushstyle(bsClear);
  41. textout(cn-100,windowheight-20,'Длина отрезка='+st);
  42. end.

Объяснение кода листинга программы

  1. В первой строке используется директива uses graphABC, которая подключает модуль graphABC для работы с графикой.
  2. Затем определяются переменные x1, y1, x2, y2, s, m, cn, i, st типа real и integer для хранения координат точек, длины отрезка и других служебных значений.
  3. Далее следует блок repeat-until, который повторяет ввод координат двух точек, пока они не будут корректными (в пределах от -10 до 10 по осям X и Y).
  4. Затем устанавливаются размеры окна и его центральное положение, а также происходит очистка окна.
  5. Переменная cn инициализируется значением, равным половине ширины окна, а переменная m вычисляется как шаг для масштабирования координат.
  6. На экране рисуются оси X и Y, а также точка (0,0).
  7. Далее в цикле for i:=1 to 10 происходит рисование отрезков и меток с числами от -10 до 10 с шагом i*m.
  8. Затем устанавливаются красный цвет кисти и красный цвет пера, рисуются окружности вокруг введенных точек, а затем рисуется отрезок между этими точками.
  9. Вычисляется длина отрезка по формуле sqrt(sqr(x1-x2)+sqr(y1-y2)) и сохраняется в переменную s.
  10. С помощью функции str(s:0:2,st) строка s форматируется до двух знаков после запятой и сохраняется в переменную st.
  11. Наконец, с помощью функции textout выводится сообщение Длина отрезка= и значение переменной st на экран.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы