1-11 класс
  • 1-11 класс
  • 1 класс
  • 2 класс
  • 3 класс
  • 4 класс
  • 5 класс
  • 6 класс
  • 7 класс
  • 8 класс
  • 9 класс
  • 10 класс
  • 11 класс
Выберите класс
Предметы
Семакин
Работа 3.6 Упр.22 ГДЗ Семакин 10 класс (Информатика)
Семакин, Хеннер, Шеина
10 класс
Автор
Семакин, Хеннер, Шеина

Работа 3.6 Упр.22 ГДЗ Семакин 10 класс (Информатика)

Задача

а) минимальный радиус окружности с центром в начале координат, которая содержит все точки;
б) внутренний и внешний радиусы кольца с центром в начале координат, которое содержит все точки;
в) номера точек, которые могут являться вершинами квадрата;
г) номера точек, которые могут являться вершинами равнобедренного треугольника;
д) номера самых удаленных и наименее удаленных друг от друга точек;
е) три точки, которые являются вершинами треугольника, для которого разность точек вне его и внутри является минимальной.

Подробный ответ

Пусть в массиве хранятся координаты точек $$x_1, y_1, x_2, y_2, \dots, x_k, y_k$$. Тогда для каждой точки нужно найти квадрат расстояния до начала координат:

$$r_i^2 = x_i^2 + y_i^2$$

Если среди всех таких значений найти минимальное и максимальное, то:

  • минимальный радиус окружности, содержащей все точки, равен $$\sqrt{r_{\max}^2}$$;
  • внутренний радиус кольца равен $$\sqrt{r_{\min}^2}$$;
  • внешний радиус кольца равен $$\sqrt{r_{\max}^2}$$.

В приведённом решении вычисляются именно квадраты расстояний, чтобы не выполнять лишние извлечения корня в цикле.

const
n = 10; // предельное количество точек
var
a: array[1..2 * n] of real;
x, y, lmax, lmin: real;
i, j, k: integer;
begin
writeln(‘Введите количество точек (не более ‘, n, ‘)’);
readln(k);
writeln(‘Вводите координаты точек (x,y) попарно’);
lmax := 0;
lmin := 1e10;
for i := 1 to k do
begin
j := 2 * i — 1;
read(a[j], a[j + 1]);
l := sqr(a[j]) + sqr(a[j + 1]); // квадраты расстояния до точки
if lmax < l then lmax := l;
if lmin > l then lmin := l
end;
writeln;
writeln(‘Все точки находятся внутри кольца с радиусами ‘, sqrt(lmin), ‘, ‘, sqrt(lmax))
end.

В этом фрагменте программа находит только радиусы кольца. Для остальных пунктов задания нужно дополнительно сравнивать расстояния между точками и проверять геометрические свойства фигур.

Для пункта д) нужно перебрать все пары точек и найти:

  • максимальное расстояние — самые удалённые точки;
  • минимальное расстояние — наименее удалённые точки.

Для пункта е) нужно перебрать все тройки точек, проверить, образуют ли они треугольник, и выбрать ту тройку, для которой разность числа точек внутри и вне треугольника минимальна.

Ответ: программа находит минимальный и максимальный радиусы окружностей, содержащих все точки; для остальных пунктов требуется дополнительный перебор пар и троек точек.



Общая оценка
4.8 / 5
Другие учебники
Другие предметы