Координаты точки, для которой угол между осью абсцисс и лучом, соединяющим начало координат - Turbo Pascal

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

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

Три точки заданы своими координатами X(x1, x2), Y(y1, y2) и Z(z1, z2). Найти и напечатать координаты точки, для которой угол между осью абсцисс и лучом, соединяющим начало координат с точкой, минимальный. Вычисления оформить в виде процедуры.

Решение задачи: «Координаты точки, для которой угол между осью абсцисс и лучом, соединяющим начало координат»

textual
Листинг программы
uses crt;
type point=record
           x,y,u:real;
           end;
procedure vvod(var t:point;c:char);
begin
repeat
writeln('Введите координаты точки ',c,' равные одновремено 0');
readln(t.x,t.y);
until(t.x<>0)or(t.y<>0);
end;
procedure ugol(var t:point);
begin
if(t.x=0)then t.u:=90
else t.u:=arctan(abs(t.y)/abs(t.x))*180/pi;
end;
var x,y,z,mn:point;
begin
clrscr;
vvod(x,'X');
vvod(y,'Y');
vvod(z,'Z');
ugol(x);
ugol(y);
ugol(z);
if x.u<y.u then mn:=x else mn:=y;
if z.u<mn.u then mn:=z;
writeln('Минимальный угол=',mn.u:0:2,' координаты точки (',mn.x:0:2,',',mn.y:0:2,')');
readln
end.

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

  1. Создаётся тип данных point, который представляет собой структуру записи с тремя полями: x, y и u. Поле u является дополнительным и используется для хранения угла между осью абсцисс и лучом, соединяющим начало координат.
  2. Определяется процедура vvod, которая считывает координаты точки от пользователя и проверяет их на допустимость (то есть, что они одновременно равны нулю). Если это условие выполняется, то выводится сообщение об ошибке.
  3. Определяется процедура ugol, которая вычисляет угол между осью абсцисс и лучом, соединяющим начало координат для заданной точки. Если координата x равна нулю, то угол равен 90 градусов. В противном случае, угол вычисляется с помощью арктангенса.
  4. Объявляются переменные x, y, z и mn типа point.
  5. Запускается цикл, который состоит из трех вызовов процедур vvod, ugol и чтения строки. Каждый вызов процедуры vvod считывает координаты точки от пользователя.
  6. После завершения цикла, вычисляется минимальный угол среди всех точек и сохраняется в переменной mn.
  7. Выводится сообщение с координатами точки mn.
  8. Программа завершается с помощью команды readln.

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


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

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

12   голосов , оценка 3.917 из 5
Похожие ответы