Выяснить, является ли отрезок АВ диаметром заданной окружности - Pascal
Формулировка задачи:
Всем привет ребят, нужна Ваша помощь. Так как я в программировании не шарю, но учусь на программиста... Мне нужно написать 2 программы для рубежного контроля.
1 задача: Даны окружность радиуса r с центром в точке О с координатами и две точки А и В с координатами и , соответственно. Выяснить, является ли отрезок АВ диаметром заданной окружности.
2 задача: Даны окружность радиуса r с центром в точке О с координатами и две точки А и В с координатами и , соответственно. Выяснить, является ли отрезок АВ диаметром заданной окружности.
Может просто кто нибудь уже решал эти задачи, очень нужна Ваша помощь!
Решение задачи: «Выяснить, является ли отрезок АВ диаметром заданной окружности»
textual
Листинг программы
program Oak;
const
Eps = 1e-5;
type
TPoint = record
x, y: real;
end;
function LengthAB(A, B: TPoint): real;
begin
LengthAB := sqrt(sqr(A.x - B.x) + sqr(A.y - B.y));
end;
var
O: TPoint;
r: real;
A, B: TPoint;
var
C: TPoint;
AB: real;
begin
readln(r);
readln(O.x, O.y);
readln(A.x, A.y);
readln(B.x, B.y);
C.x := (A.x + B.x) / 2;
C.y := (A.y + B.y) / 2;
if (LengthAB(O, C) < Eps) and (abs(LengthAB(A, B) - r) < Eps) then
writeln('Да')
else
writeln('Нет');
end.
Объяснение кода листинга программы
- Объявление константы Eps со значением
1e-5. - Определение пользовательского типа данных TPoint, который представляет координаты точки на плоскости.
- Определение функции LengthAB, которая вычисляет расстояние между двумя точками A и B по их координатам.
- Объявление переменных O (центр окружности), r (радиус окружности), A и B (координаты концов отрезка).
- Объявление переменной C (середина отрезка AB).
- Ввод значения r (радиус окружности), O (центр окружности), A и B (координаты концов отрезка) с клавиатуры.
- Расчет координат центра отрезка C как среднее арифметическое координат концов отрезка A и B.
- Проверка условия: если расстояние между центром окружности O и центром отрезка C меньше Eps и разность длины отрезка AB и радиуса окружности меньше Eps, то выводится
Да, иначе выводитсяНет.