Алгоритми для знаходження
кількісних характеристик відрізків
Задача1. Написати алгоритм, для обчислення довжини відрізка, що заданий
координатами кінців А(х1;у1) та В(х2; у2)
Формула довжини відрізка
Розв′язання.
Program vidr1;
var x1,y1,x2,y2,d:real;
begin
writeln('введите
A(X1,Y1) и B(X2,Y2)');
readln(
x1,y1,x2,y2 );
d:=sqrt(sqr(y2-y1)+sqr(x2-x1));
writeln('длина отрезка
|AB|=',d); end.
Задача 2. Написати алгоритм, для обчислення координат точки С(х; у) на відрізку
АВ, що ділить заданий відрізок координатами кінців А(х1;у1) та В(х2; у2) у відношенні l:1.
Формули поділу відрізка на частини:
Задача 3. Написати алгоритм, для з′ясування яка точка А(х1;у1) чи В(х2; у2) ближче до початку координат.
Program vidr3;
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));
d2:=sqrt(sqr(y2)+sqr(x2));
if d1 < d2 then writeln('Точка A ближе')
else if d1 > d2 then writeln('Точка B ближе')
else writeln('Одинаково');
end.
Задача 4. Написати
алгоритм, для з′ясування перетину двох
відрізків, що задані координатами кінців1-ий відрізок
а: (ах1;ау1) (ах2; ау2) 2-ий відрізок b: (bх1;bу1) (bх2;
bу2). Якщо True, то перетин є. Якщо False, то перетину відрізків немає.
Program vidr4;
function Intersection(ax1,ay1,ax2,ay2,bx1,by1,bx2,by2:real):boolean;
var v1,v2,v3,v4:real;
begin
v1:=(bx2-bx1)*(ay1-by1)-(by2-by1)*(ax1-bx1);
v2:=(bx2-bx1)*(ay2-by1)-(by2-by1)*(ax2-bx1);
v3:=(ax2-ax1)*(by1-ay1)-(ay2-ay1)*(bx1-ax1);
v4:=(ax2-ax1)*(by2-ay1)-(ay2-ay1)*(bx2-ax1);
Intersection:=(v1*v2<0) and (v3*v4<0); end;
begin { основная программа, вызов функции - тест }
writeln(Intersection(1,1,5,5,1,2,3,1)); {test1, yes Intersection}
writeln(Intersection(1,1,5,5,1,2,1,3)); {test2, no Intersection}
end.
Немає коментарів:
Дописати коментар