Какой используется Паскаль в сценариях?
Какой используется Паскаль в сценариях?
Добрый день. Много лет работаю с вашей программой. Преподаю в школе физику. Пишу простые сценарии. Не могу найти угол в градусах (радианах) по синусу угла? Функция arcsin(x) выдает ошибку? Помогите разобраться.
Re: Какой используется Паскаль в сценариях?
Вычисление арксинуса, увы, сейчас не реализовано:
Re: Какой используется Паскаль в сценариях?
Физика. Определить угол преломления y в среде с показателем n=2, если угол падения х= 50 градусов.
Решение. Формула n= sinx/siny. Следовательно siny=sinx/n. Синус х без проблем, а как вернуть значение угла по sin Y? Ответ до целых.
Как выкрутится? по ссылке я что-то не нашел решения?
Решение. Формула n= sinx/siny. Следовательно siny=sinx/n. Синус х без проблем, а как вернуть значение угла по sin Y? Ответ до целых.
Как выкрутится? по ссылке я что-то не нашел решения?
Re: Какой используется Паскаль в сценариях?
Если требуются только значения углов, округленные до целых градусов, то в сценарии можно воспользоваться поиском по таблице Брадиса :) значений синуса с шагом в один градус. Если применяются обычные правила округления, то таблица будет иметь такой вид:
Пусть нужно найти угол, синус которого равен 0.03. Ищем во втором столбце таблицы интервал, в который попадает это значение, - это интервал от 0.02617694830787315 до 0.043619387365336, соответствующий углам от 1.5° до 2.5° (насчет граничных значений см. ниже). Такие углы при округлении до целых градусов дадут 2° - это и есть результат для данного значения синуса.
Таблицу можно построить как буквально (записав ее в массив), так и "виртуально", вычисляя значения по мере необходимости.
Важно иметь в виду, что если при вычислении правильного ответа в сценарии появится значение, очень близкое к "порогу" округления (в случае, когда тестируемый должен ввести округленный ответ), то из-за погрешностей вычислений результат округления может оказаться не таким, как ожидалось. Так, при использовании "настоящего" арксинуса имеем (пример на Python):
После округления до целого получится уже не 32, а 31. (На самом деле такое может произойти даже при простом переводе градусов в радианы и обратно.) Поэтому следует либо писать сценарий так, чтобы в нем гарантированно не появлялись подобные значения, либо предусматривать корректную обработку таких ситуаций (например, с помощью поля Допустимая погрешность в эталоне ответа).
Код: Выделить всё
x,° sin x
---------------------------
0.5 0.008726535498373935
1.5 0.02617694830787315
2.5 0.043619387365336
...
88.5 0.9996573249755573
89.5 0.9999619230641713
Таблицу можно построить как буквально (записав ее в массив), так и "виртуально", вычисляя значения по мере необходимости.
Важно иметь в виду, что если при вычислении правильного ответа в сценарии появится значение, очень близкое к "порогу" округления (в случае, когда тестируемый должен ввести округленный ответ), то из-за погрешностей вычислений результат округления может оказаться не таким, как ожидалось. Так, при использовании "настоящего" арксинуса имеем (пример на Python):
Код: Выделить всё
>>> degrees(asin(sin(radians(31.5))))
31.499999999999993
Re: Какой используется Паскаль в сценариях?
Как это реализовать на практике. Я с таблицами не работал. Меня устроить точность до 2 градусов, дадим в допуске.
Если можно напишите образец.
Если можно напишите образец.
Re: Какой используется Паскаль в сценариях?
Можете предложить такое задание кому-нибудь из учеников или искусственному интеллекту :)