Ю4.6

 Задача: Угол между векторами

Найти угол между векторами    [latex]A(n)[/latex] и  [latex]B(n)[/latex]   используя формулу:

[latex]cos\varphi =\cfrac { \left( A,B \right) }{ \left| A \right| \cdot \left| B \right| } =\cfrac { \sum _{ i=1 }^{ n }{ { a }_{ i }{ b }_{ i } } }{ \sqrt { \sum _{ i=1 }^{ n }{ { a }_{ i }^{ 2 } } } \sqrt { \sum _{ i=1 }^{ n }{ { b }_{ i }^{ 2 } } } }[/latex]
  N  A(n)  B(n)  Rad & Deg
  2   3 4   4 3  0.283794         16.2596
  2   7 1   5 5  0.643501         36.8686
3 3 4 0 4 4 2 0.367208         21.0388
10 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 0               0
2 0 2 3 0 1.5708       89.9969
2 -3 5 4 -1 2.35619      134.995

Код программы на С++

Код программы на Java

Чтобы выполнить задачу, требуется всего лишь следовать вычислениям формулы. Для того, что бы узнать значение не косинуса а самого угла, применяем математическую функцию [latex]acos[/latex].

Ссылка C++

Ссылка на Java

Related Images:

Ю3.8

«Отскоки»

Задача: Материальная точка бросается на горизонтальную плоскость со скоростью [latex]V[/latex] и под углом [latex]\alpha[/latex] к ней ( плоскости ). При каждом ударе о плоскость, кинетическая энергия точи уменьшается в [latex]\beta[/latex] раз. Найти абсциссы первых [latex]n[/latex] точек касания. Сопротивлением воздуха пренебречь.

По умолчанию примем количество интересующих нас отскоков равным 3.

[latex]V[/latex](speed)[latex]m/c[/latex] [latex]\alpha[/latex](corner)  [latex]\beta[/latex] Первая координата Вторая координата Третья координата Комментарий
10 15 2 5.09858 7.64787 8.92252 Тест пройден
8 30 4 5.65184 7.06480 7.41804 Тест пройден
27 45 3 74.3373 99.1164 107.376 Тест пройден
17 35 3 27.6926 36.9234 40.0004 Тест пройден
13 0 5 0.00000 0.00000 0.00000 Тест пройден

Замечание:

По неизвестной мне причине (думаю на погрешность округления) [latex]sin( \pi)[/latex] при вычислениях равен 1.24879e-15.

Исходный код:

Для решения задачи необходимо вспомнить уроки физики в начале десятого класса, а именно главу о движении под углом к горизонту. Воспользуемся формулой расстояния полета материальной точки [latex]S=\frac{V^2sin(2\alpha) }{g}[/latex] . По условию задачи сказано, что кинетическая энергия уменьшается при каждом отскоке в [latex]\beta[/latex] раз. Если рассмотреть формулу кинетической энергии: [latex]E_{k}=\frac{ mV^2 }{2}[/latex]- можно заметить, что [latex] m[/latex] (масса) является константой, значит изменяться может только [latex]V^2[/latex] (скорость тела в квадрате). Если условится, что материальная точка начинает движение в начале координат, то координата первого отскока будет равна [latex]S[/latex], второй — [latex]S+S_{1}[/latex], третьей — [latex]S+S_{1}+S_{2}[/latex], n-ой — [latex]S+…+S_{n-1}[/latex].

Алгоритм:

  1. Объявление переменных и константы(ускорение свободного падения).
  2. Вывод поясняющей информации.
  3. Ввод значений переменных.
  4. Проверка недопустимых ситуаций:
    • Проверка угла: значения угла выше 90 градусов или отрицательное значение противоречат условию задачи.
    • Проверка скорости: отрицательное значение будет означать движение в противоположную интересующей нас сторону.
    • Проверка коэффициента уменьшения кинетической энергии: это число должно быть хотя бы положительным.
    • Проверка числа интересующих нас отскоков: это должно быть натуральное число.
  5. Вычисление вспомогательных величин (двойной угол, скорость в квадрате).
  6. Создание вычислительного цикла.
    • Вывод значений.
  7. Окончание работы.

 Ссылка на Ideone.

Related Images: