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

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

Задача

Рассмотрим вариант решения задания из учебника Семакин, Хеннер, Шеина 10 класс, Бином: 17. Написать программу, определяющую, будут ли прямые A1X + В1у + C1 = 0 и А2х + В2у + С2 = 0 перпендикулярны. Если нет, то найти угол между ними. *Цитирирование задания со ссылкой на учебник производится исключительно в учебных целях для лучшего понимания разбора решения задания. 10 semakin10 pract/3-3/zad1/17 98

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

Для прямых $$A_1x + B_1y + C_1 = 0$$ и $$A_2x + B_2y + C_2 = 0$$ угловые коэффициенты равны

$$k_1 = -\frac{A_1}{B_1}, \qquad k_2 = -\frac{A_2}{B_2}.$$

Прямые перпендикулярны тогда и только тогда, когда

$$k_1k_2 = -1,$$

то есть

$$A_1A_2 + B_1B_2 = 0.$$

Если это условие не выполняется, угол между прямыми находим по формуле

$$\tan \varphi = \left|\frac{k_1-k_2}{1+k_1k_2}\right|.$$

Подставляя $$k_1 = -\frac{A_1}{B_1}$$ и $$k_2 = -\frac{A_2}{B_2}$$, получаем

$$\varphi = \arctan \left|\frac{A_1B_2-A_2B_1}{A_1A_2+B_1B_2}\right|.$$

Ниже приведена программа на Pascal, которая сначала проверяет, что введённые коэффициенты действительно задают прямую, а затем выводит либо сообщение о перпендикулярности, либо угол между прямыми.

var a1, b1, c1, a2, b2, c2: integer;
u: real;
begin
  repeat
    writeln(‘Введите коэффициенты первой прямой:’);
    readln(a1, b1, c1);
    if (a1 = 0) and (b1 = 0) then
      writeln(‘Это не прямая, повторите ввод.’);
  until (a1 <> 0) or (b1 <> 0);

  repeat
    writeln(‘Введите коэффициенты второй прямой:’);
    readln(a2, b2, c2);
    if (a2 = 0) and (b2 = 0) then
      writeln(‘Это не прямая, повторите ввод.’);
  until (a2 <> 0) or (b2 <> 0);

  if a1 * a2 + b1 * b2 = 0 then
    writeln(‘Прямые перпендикулярны’)
  else
  begin
    u := abs(arctan((a1 * b2 — a2 * b1) / (a1 * a2 + b1 * b2)) * 180 / pi);
    writeln(‘Прямые не перпендикулярны, угол=’, u:0:2);
  end;
  readln;
end.

Ответ

Программа определяет, перпендикулярны ли прямые, и при необходимости вычисляет угол между ними по формуле $$\varphi = \arctan \left|\frac{A_1B_2-A_2B_1}{A_1A_2+B_1B_2}\right|.$$



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