Ю2.9

Задача: Может ли шар с радиусом [latex] r [/latex] пройти через ромбообразное  отверстие с диагоналями [latex]p[/latex] и [latex]q[/latex]?

r p q a b c h Результат Коментарий
5 40 10 20 5 20,6255 4,8483 Не пройдет Пройден
4 20 14 10 7 12,2066 5,7346 Пройдет Пройден
3 6 8 3 4 5 2,4 Не пройдет Пройден
1 4 16 2 8 8,2462 1,9403 Пройдет Пройден
Чтобы решить эту задачу нам нужно найти высоту [latex]h[/latex], проведенную. из вершины прямого угла прямоугольного треугольника, катеты которого равны половинам диагоналей ромба.

Катеты [latex]a=\frac{p}{2}[/latex] и [latex]b=\frac{q}{2}[/latex].

Гипотенуза   [latex]c=\sqrt{a^{2}+b^{2}}[/latex].

Затем по формуле [latex]h=\frac{ab}{c}[/latex] найдем высоту треугольника.

Чтобы шар прошел через ромбообразное отверстие, нужно чтобы [latex]r\leq h[/latex].

Если [latex]r>h[/latex], то шар не пройдет через ромбообразное отверстие.

 

Посмотреть работу программы можно тут.

Чежеумова Анна
Чежеумова Анна

Latest posts by Чежеумова Анна (see all)

4 thoughts on “Ю2.9

  1. — У треугольника три высоты. У прямоугольного — две высоты совпадают с катетами. Вы ищите третью. Нужно это уточнять. «Высота проведенная из прямого угла» или «высота, опущенная на гипотенузу»
    — Дайте ссылку на ideone? где лежит Ваш код. Мы сможем убедиться, что программа не работает. Почему? А где получает значение радиус? В какой строке?

  2. Программа выдает несколько неряшливый ответ, вида:
    «a- 10.0000b- 1.0000c- 10.0499h- 0.9950r- 1.0000Шар не пройдет»
    Явно не хватает разделителя между значением а и «b- » или пробел(ы) или, еще лучше, переход на новую строку (можно табуляцию) — ну и далее в таком же духе.

    В остальном вроде все правильно, хорошо!

  3. Засчитываю работу, хотя вижу значительный недостаток.
    Предлагаю дополнительные 5 баллов за ещё один код (вставите его в конце, если сделаете).
    Что же мне не нравится? Мне не нравятся все эти деления и извлечения корня. Вычисления с плавающей точкой чреваты накоплением погрешностей разного рода и стоит их делать поменьше. Запишите на бумаге итоговое условие одной формулой. Без всяких дополнительных обозначений — только диагонали и радиус. Выполните эквивалентные преобразования неравенства (как в школе) чтобы избавится от корней и делений. Полученное условие можно будет запрограммировать в виде одной строки — просто вывести, входит или нет.

Добавить комментарий