Ответ:
Для построения окружности заданного радиуса `r`, проходящей через две точки `A` и `B`, нужно найти центр этой окружности. Вот псевдокод, описывающий этот процесс:
**Псевдокод:**
```
1. // Входные данные: координаты точек A(xa, ya) и B(xb, yb), радиус r.
2. // Вычисление середины отрезка AB (точка M).
3. mx = (xa + xb) / 2
4. my = (ya + yb) / 2
5. // Вычисление вектора AB.
6. v_x = xb - xa
7. v_y = yb - ya
8. // Вычисление длины отрезка AB
9. d = sqrt(v_x^2 + v_y^2)
10. // Проверка, существует ли решение.
11. Если d > 2*r, то:
12. Вывести "Решения не существует, расстояние между точками больше диаметра".
13. Конец.
14. // Вычисление высоты треугольника, образованного точками A, B и центром окружности.
15. h = sqrt(r^2 - (d/2)^2)
16. // Находим вектор нормали к вектору AB. Нормаль перпендикулярна отрезку AB
17. n_x = -v_y
18. n_y = v_x
19. //Нормализуем вектор нормали
20. len_n = sqrt(n_x^2 + n_y^2)
21. n_x = n_x / len_n
22. n_y = n_y / len_n
23. //Находим координаты двух возможных центров окружности. У нас может быть два решения.
24. c1_x = mx + n_x * h
25. c1_y = my + n_y * h
26. c2_x = mx - n_x * h
27. c2_y = my - n_y * h
28. Вывести "Координаты первого центра: (c1_x, c1_y)".
29. Вывести "Координаты второго центра: (c2_x, c2_y)".
30. // Нарисовать окружность с центрами (c1_x, c1_y) и (c2_x, c2_y) с радиусом r.
31. Конец.
```
**Пояснения:**
1. **Вход:** Координаты точек A и B, радиус `r`.
2. **Середина:** Находим середину отрезка AB (точка M).
3. **Вектор AB**: Вычисляем вектор AB.
4. **Длина AB**: Вычисляем длину отрезка AB.
5. **Проверка:** Если расстояние между A и B больше диаметра окружности (2r), то окружность построить нельзя.
6. **Высота треугольника:** Вычисляем высоту треугольника, образованного точками A, B и центром окружности. Эта высота является расстоянием от середины отрезка AB до центра окружности.
7. **Нормаль:** Находим вектор нормали к отрезку AB.
8. **Нормализация**: Нормализуем вектор нормали (делаем его единичным).
9. **Центры:** Вычисляем координаты двух возможных центров окружности, перемещаясь от середины отрезка AB в направлении нормали на расстояние h.
10. **Вывод:** Выводим координаты центров и строим окружности.
**Псевдокод:**
```
1. // Входные данные: координаты точек A(xa, ya) и B(xb, yb), радиус r.
2. // Вычисление середины отрезка AB (точка M).
3. mx = (xa + xb) / 2
4. my = (ya + yb) / 2
5. // Вычисление вектора AB.
6. v_x = xb - xa
7. v_y = yb - ya
8. // Вычисление длины отрезка AB
9. d = sqrt(v_x^2 + v_y^2)
10. // Проверка, существует ли решение.
11. Если d > 2*r, то:
12. Вывести "Решения не существует, расстояние между точками больше диаметра".
13. Конец.
14. // Вычисление высоты треугольника, образованного точками A, B и центром окружности.
15. h = sqrt(r^2 - (d/2)^2)
16. // Находим вектор нормали к вектору AB. Нормаль перпендикулярна отрезку AB
17. n_x = -v_y
18. n_y = v_x
19. //Нормализуем вектор нормали
20. len_n = sqrt(n_x^2 + n_y^2)
21. n_x = n_x / len_n
22. n_y = n_y / len_n
23. //Находим координаты двух возможных центров окружности. У нас может быть два решения.
24. c1_x = mx + n_x * h
25. c1_y = my + n_y * h
26. c2_x = mx - n_x * h
27. c2_y = my - n_y * h
28. Вывести "Координаты первого центра: (c1_x, c1_y)".
29. Вывести "Координаты второго центра: (c2_x, c2_y)".
30. // Нарисовать окружность с центрами (c1_x, c1_y) и (c2_x, c2_y) с радиусом r.
31. Конец.
```
**Пояснения:**
1. **Вход:** Координаты точек A и B, радиус `r`.
2. **Середина:** Находим середину отрезка AB (точка M).
3. **Вектор AB**: Вычисляем вектор AB.
4. **Длина AB**: Вычисляем длину отрезка AB.
5. **Проверка:** Если расстояние между A и B больше диаметра окружности (2r), то окружность построить нельзя.
6. **Высота треугольника:** Вычисляем высоту треугольника, образованного точками A, B и центром окружности. Эта высота является расстоянием от середины отрезка AB до центра окружности.
7. **Нормаль:** Находим вектор нормали к отрезку AB.
8. **Нормализация**: Нормализуем вектор нормали (делаем его единичным).
9. **Центры:** Вычисляем координаты двух возможных центров окружности, перемещаясь от середины отрезка AB в направлении нормали на расстояние h.
10. **Вывод:** Выводим координаты центров и строим окружности.
