Посчитать угол учебного треугольника 3–4–5 тремя способами

Учебные задачи

Арктангенс, арксинус и арккосинус дают один угол из разных отношений сторон. Встроенные тригонометрические функции работают с радианами.

Где и как запускать

Полный серверный общий модуль своей учебной конфигурации. Только собственные числа и строки в памяти.

Подготовка

  1. В своей отдельной конфигурации УчебнаяКонфигурацияСинтаксиса создайте серверный общий модуль УчебныеФормулы с флагом Сервер. Вставьте полный модуль выбранного урока и вызовите ВыполнитьПример из серверной команды учебной обработки.

  2. Все числа, строки и URI создаются внутри примера. Нет запросов к базе, файлов, сетевых соединений или вычисления произвольного кода.

  3. Для первых запусков не меняйте данные. Затем меняйте один параметр за раз и сравнивайте объяснение с результатами проверок.

  4. Булево и тригонометрические функции в этих уроках не предназначены для вызова через COM-соединение. Кодирование строк выполняется на сервере.

  5. URI example.invalid только печатается и проверяется как строка; адрес не открывается. Эти BSL-примеры не запускались автоматически в 1С.

Процедура ВыполнитьПример() Экспорт
    Высота = 3;
    Основание = 4;
    Гипотенуза = 5;
    Если Высота <= 0 ИЛИ Основание <= 0 ИЛИ Гипотенуза <= 0 Тогда
        ВызватьИсключение "Для этого учебного треугольника стороны должны быть положительными";
    КонецЕсли;
    Если Высота * Высота + Основание * Основание <> Гипотенуза * Гипотенуза Тогда
        ВызватьИсключение "Для опыта нужен прямоугольный треугольник";
    КонецЕсли;
    УголТангенса = ATan(Высота / Основание);
    УголСинуса = ASin(Высота / Гипотенуза);
    УголКосинуса = ACos(Основание / Гипотенуза);
    Пи = ACos(-1);
    Градусы = УголТангенса * 180 / Пи;
    РазницаСинуса = УголТангенса - УголСинуса;
    РазницаКосинуса = УголТангенса - УголКосинуса;
    ВосстановленноеОтношение = Tan(УголТангенса);
    Сообщить(РазницаСинуса > -0.000000001 И РазницаСинуса < 0.000000001);
    Сообщить(РазницаКосинуса > -0.000000001 И РазницаКосинуса < 0.000000001);
    Сообщить(ВосстановленноеОтношение > 0.749999999 И ВосстановленноеОтношение < 0.750000001);
    Сообщить(Градусы > 36.86 И Градусы < 36.88);
    Сообщить("Фактический угол, радианы: " + Строка(УголТангенса));
    Сообщить("Фактический угол, градусы: " + Строка(Градусы));
КонецПроцедуры

Разбор по шагам

  1. Проверить положительность сторон и равенство 3²+4²=5² до деления.

  2. ATan принимает высота/основание=0,75; ASin принимает высота/гипотенуза=0,6; ACos принимает основание/гипотенуза=0,8.

  3. Получить Пи как ACos(-1) и перевести радианы в градусы множителем 180/Пи.

  4. Проверить равенство углов с допуском, а не точным сравнением численных результатов.

  5. Tan от вычисленного угла возвращает отношение 0,75, не градусы. Затем замените стороны на 6–8–10: угол должен сохраниться.

Как проверить результат

  1. Четыре сообщения Истина. Угол примерно 0,643501 радиана, или 36,869898 градуса.

  2. При 6–8–10 отношения и угол те же. При основании 0 понятный отказ до деления.

Ожидаемый результат

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

На что обратить внимание

  1. Tan(36.87) считает тангенс радиан, не градусов.

  2. ASin и ACos допускают аргументы только от −1 до 1.

  3. Проверка Пифагора с точным равенством здесь рассчитана на свои целые стороны, а не измерения с погрешностью.

  4. Этот опыт не является расчётом нормативного уклона пандуса или строительным заключением.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.