Арктангенс, арксинус и арккосинус дают один угол из разных отношений сторон. Встроенные тригонометрические функции работают с радианами.
Где и как запускать
Полный серверный общий модуль своей учебной конфигурации. Только собственные числа и строки в памяти.
Подготовка
В своей отдельной конфигурации УчебнаяКонфигурацияСинтаксиса создайте серверный общий модуль УчебныеФормулы с флагом Сервер. Вставьте полный модуль выбранного урока и вызовите ВыполнитьПример из серверной команды учебной обработки.
Все числа, строки и URI создаются внутри примера. Нет запросов к базе, файлов, сетевых соединений или вычисления произвольного кода.
Для первых запусков не меняйте данные. Затем меняйте один параметр за раз и сравнивайте объяснение с результатами проверок.
Булево и тригонометрические функции в этих уроках не предназначены для вызова через COM-соединение. Кодирование строк выполняется на сервере.
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);
Сообщить("Фактический угол, радианы: " + Строка(УголТангенса));
Сообщить("Фактический угол, градусы: " + Строка(Градусы));
КонецПроцедурыРазбор по шагам
Проверить положительность сторон и равенство 3²+4²=5² до деления.
ATan принимает высота/основание=0,75; ASin принимает высота/гипотенуза=0,6; ACos принимает основание/гипотенуза=0,8.
Получить Пи как ACos(-1) и перевести радианы в градусы множителем 180/Пи.
Проверить равенство углов с допуском, а не точным сравнением численных результатов.
Tan от вычисленного угла возвращает отношение 0,75, не градусы. Затем замените стороны на 6–8–10: угол должен сохраниться.
Как проверить результат
Четыре сообщения Истина. Угол примерно 0,643501 радиана, или 36,869898 градуса.
При 6–8–10 отношения и угол те же. При основании 0 понятный отказ до деления.
Ожидаемый результат
Настоящая небольшая геометрическая задача с независимыми способами расчёта и проверкой результата.
На что обратить внимание
Tan(36.87) считает тангенс радиан, не градусов.
ASin и ACos допускают аргументы только от −1 до 1.
Проверка Пифагора с точным равенством здесь рассчитана на свои целые стороны, а не измерения с погрешностью.
Этот опыт не является расчётом нормативного уклона пандуса или строительным заключением.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.