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

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

Задача

Рассмотрим вариант решения задания из учебника Семакин, Хеннер, Шеина 10 класс, Бином: 14. Даны координаты n (n < = 30) точек на плоскости: (Х1, У1), ..., (Xn, Yn). Найти номера пары точек, расстояние между которыми наибольшее (считать, что такая пара единственная). *Цитирирование задания со ссылкой на учебник производится исключительно в учебных целях для лучшего понимания разбора решения задания. 10 semakin10 pract/3-6/14 98

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

Чтобы найти пару точек с наибольшим расстоянием, нужно перебрать все пары точек и для каждой вычислить расстояние по формуле

$$d=\sqrt{(x_i-x_j)^2+(y_i-y_j)^2}$$

Если найденное расстояние больше текущего максимума, запоминаем его и номера точек этой пары.

Так как по условию такая пара единственная, достаточно хранить одну лучшую пару.

var t: array [1..30] of record
  x, y: real
end;
r, d: extended;
i, j, n, t1, t2: integer;
begin
  write(‘Введите количество точек: ‘);
  readln(n);
  for i := 1 to n do
  begin
    write(‘Координаты ‘, i, ‘-й точки (X Y): ‘);
    readln(t[i].x, t[i].y);
  end;
  r := 0;
  for i := 1 to n — 1 do
    for j := i + 1 to n do
    begin
      d := sqrt((t[i].x — t[j].x) * (t[i].x — t[j].x) +
              (t[i].y — t[j].y) * (t[i].y — t[j].y));
      if d > r then
      begin
        r := d;
        t1 := i;
        t2 := j;
      end;
    end;
  writeln(‘Наибольшее расстояние между точками ‘, t1, ‘ и ‘, t2);
end.

Ответ: перебор всех пар точек с вычислением расстояния и запоминанием пары с максимальным значением.



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