Связь с администрацией сайта:       

demo

Среди толпы я одинок

Какая точка (A или B) ближе к началу координат

Разберемся с вычислением координат в паскале. Для многих данная тема как дремучий лес. На самом деле – обычная математика. И всё, что здесь будет – это не что иное, как расчет по математическим формулам. Самый простой пример, будем разбираться, какая из двух точек ближе всего находится к началу системы координат.
 
Для данных расчетов в pascal воспользуемся формулой, а именно корень квадратный из выражения квадратов X и Y, где X и Y– введенные координаты.
И получаем следующий код:
var x1,y1,x2,y2,d1,d2:real;
begin
     writeln('Введите A(X1,Y1) и B(X2,Y2)');
     readln( x1,y1,x2,y2 ); //Вводим координаты точек
     d1:=sqrt(sqr(y1)+sqr(x1)); //Формула для расчетов удаленности точки A
     d2:=sqrt(sqr(y2)+sqr(x2)); //Формула для расчетов удаленности точки B
     ifd1<d2 thenwriteln('Точка A ближе') //Сравниваем результаты
     else
     if d1>d2 then writeln('Точка B ближе') else writeln('Одинаково');
end.
 
 
Результат:
Введите A(X1,Y1) и B(X2,Y2)
10 15 20 40
Точка A ближе
 
Sqrt – стандартный метод квадратного корня из числа в pascal.
Sqr – стандартный метод возведения числа в квадрат в pascal.
Видите, ничего сложного. Главное знать формулы и знать, где ими воспользоваться.
Преобразуем данный алгоритм в функцию, которую можно будет вызывать в любом участке кода:
function distanceAB(_x1:real;_y1:real;_x2:real;_y2:real):String;
var d1,d2:real;
begin
 d1:=sqrt(sqr(_y1)+sqr(_x1));
 d2:=sqrt(sqr(_y2)+sqr(_x2));
if d1<d2 then distanceAB:='Точка A ближе'
     else
     if d1>d2 then distanceAB:='Точка B ближе' else distanceAB:='Одинаково';
end;
 
var x1,y1,x2,y2:real;
begin
        writeln('Введите A(X1,Y1) и B(X2,Y2)');
     readln( x1,y1,x2,y2 );    
        writeln(distanceAB(x1,y1,x2,y2));
end.
 
 
Rate this item
(0 votes)
Login to post comments