Вычисление гиперболических функций вещественной переменной:
Допустим, требуется вычислить гиперболическую функцию для одного или нескольких значений.
Вначале необходимо выбрать эту функцию. Для этого надо нажать , потом дважды — клавишу, над которой надписана одноименная тригонометрическая функция.
Аргумент вводится в #X, затем нажимается клавиша . На индикаторе появляется соответствующее значение функции. Дальше можно вводить следующий аргумент и снова нажимать — выбранная функция будет отрабатывать, пока пользователь явно не переключится на другую с помощью .
Примеры:
Для расчётов используется только стек. Сохранять полученные результаты можно в любых адресуемых регистрах.
Предусмотрена простейшая подстраховка от ошибки. В программе на первом значимом шаге (38) стои́т команда с кодом 3C, вызывающая сообщение ЕГГОГ: она выполнится, если пользователь по рассеяности нажмёт вместо выбора нужной функции через .
38. 3C 39. + 40. F√ 41. + 42. Fln 43. С/П 44. В↑ 45. Fx² 46. 1 47. БП 48. 39 49. 1 50. − 51. F√ 52. + 53. Fln 54. С/П 55. В↑ 56. Fx² 57. БП 58. 49 59. ÷ 60. 1 61. + 62. Fln 63. 2 64. ÷ 65. С/П 66. В↑ 67. + 68. 1 69. FВx 70. − 71. БП 72. 59 73. − 74. 2 75. ÷ 76. С/П 77. Feˣ 78. В↑ 79. F1/x 80. БП 81. 73 82. В↑ 83. F1/x 84. + 85. 2 86. ÷ 87. С/П 88. Feˣ 89. БП 90. 82 91. + 92. 2 93. ↔ 94. ÷ 95. 1 96. ↔ 97. − 98. С/П 99. В↑ A0. + A1. Feˣ A2. 1 A3. БП A4. 91
У данной программы имеются три любопытные особенности. Во-первых, код расположен так, чтобы начало вычисления каждой гиперболической функции приходилось на адрес, составленный из удвоенной цифры на клавише, над которой находится одноименная тригонометрическая функция:
Именно это и позволяет вызывать нужную функцию через наглядную мнемонику.
Во-вторых, можно заметить, что функции как бы разорваны: сначала идёт хвост функции с командой останова, за которой находится её начало. Сделано это для уплотнения кода: длина функций не равна в точности 11 шагам, и если разместить функции просто по адресам вызова, между ними останутся неиспользуемые шаги. Поскольку программа предусматривает возможность повторного вызова функций, это требует «закольцовывающей» команды перехода: здесь она после выполнения начала функции передаёт управление на её хвост, после отработки которого программа останавливается на команде , непосредственно предшествующей началу этой функции.
В-третьих, несмотря на то, что конец программы занимает шаги 98…A4, она подходит не только для МК-61/МК-52, где это самостоятельные шаги программной памяти, но и для Б3-34/МК-54/МК-56/МС-1104, в которых эти шаги приходится на короткую побочную ветвь 160-шагового цикла: в 98-шаговых моделях команды с этих шагов просто дублируются в начальные шаги программной памяти 00…06, и при обращении к адресу 99 (функция th) отрабатывают как положено.
Программу разработал, перевёл в формат эмулятора и составил эту инструкцию Адам Лаврик — 2026-04-24