Посадка на Луну с HP-12C и краткий обзор

| рубрика «Обзоры» | автор st
Метки: ,

Оригинальная программа для HP-25 была написана и опубликована в журнале «HP-25 Applications Programs» в 1975 году. После выпуска в 1981 году популярнейшей по сей день модели финансового ПМК HP-12C игру быстро адаптировали и для него. Несовместимость заключалась в том, что HP-12C не имеет операций сравнения типа x>0 и x<y, вместо которых используется x<=y и x<>y.

Сценарий игры прост. Наш лунолет находится в точке на заданной высоте, он вертикально снижается с начальной скоростью, имея запас топлива. Расход топлива в 5 кг позволяет компенсировать тяготение. Соответственно, чтобы затормозить, нужно расходовать больше. Необходимо приземлиться с приемлемой скоростью, например -5 м/сек.

Вводим текст программы.

Шаг Код команды Команда     Комменарий
01  42 4        f 4         4 digit display
02  45 0        RCL 0
03  26          EEX
04  4           4
05  10          /           Divide X by 10000
06  45 1        RCL 1
07  0           0
08  43 34       g x<=y      If 0<=V?
09  43,33 14    g GTO 14    --> V positive or zero
10  33          R dn        V negative
11  34          x<>y        Add V and -X
12  30          -
13  43,33 16    g GTO 16    -->
14  33          R dn        Add V and X
15  40          +
16  31          R/S         Display V.X and get burn
17  45 2        RCL 2       Fuel
18  34          x<>y
19  43 34       g x<=y      If Burn<=Fuel?
20  43,33 22    g GTO 22    --> Yes, so OK
21  43,33 42    g GTO 42    --> No, so prepare for crash
22  44,30 2     STO - 2     Subtract burn from fuel
23  5           5
24  30          -
25  44 3        STO 3       Acceleration is burn-5
26  2           2
27  10          /
28  45 0        RCL 0
29  40          +
30  45 1        RCL 1
31  40          +
32  44 0        STO 0       Altitude X=X+V+A/2
33  0           0
34  43 34       g x<=y      If 0<=Altitude?
35  43,33 37    g GTO 37    --> Yes, so OK
36  43,33 53    g GTO 53    --> No, so crash
37  45 3        RCL 3
38  44,40 1     STO + 1     V=V+A
39  45 2        RCL 2       Display fuel remaining
40  43 31       g PSE
41  43,33 02    g GTO 02    --> Return to display V.X
42  45 1        RCL 1       Show crash
43  36          ENTER
44  20          *
45  45 0        RCL 0
46  1           1
47  0           0
48  20          *
49  40          +
50  43 21       g SQR       V=Sqrt(V*V+2gX)
51  16          CHS         Show crash as down
52  44 1        STO 1       V
53  45 1        RCL 1       Jump here if hit ground
54  42 0        f 0
55  43,33 0     g GTO 00    --> Stop

Теперь вводим начальные данные:

  • Начальная высота 500 метров (в оригинале – футов) в регистр памяти 0: 500 STO 0
  • Начальная скорость -50 м/сек в регистр 1: 50 CHS STO 1
  • Запас топлива 120 кг в регистр 2: 120 STO 2

Нажимаем R/S, на экране число: целая часть показывает скорость, дробная – высоту. В регистре 2 находится текущий запас топлива.

Начинаем торможение. Вводим расход 5 кг чтобы не ускорять падение. 5 R/S - на секунду экран показывает 115 – это запас топлива, затем новые данные телеметрии: -50,0450. Высота 450, скорость -50. Дальше протокол в виде "расход топлива : результат".

5 : -50,0400
5 : -50,0350
5 : -50,0300
10 : -45,0253
5 : -45,0208
5 : -45,0163
5 : -45,0118
10 : -40,0075
10 : -35,0038
Резко тормозим...
25 : -15,0038
Смотрим STO 2: осталось всего 30 кг топлива!
20 : 0,0005
Мы зависли в 5 метрах от Луны!
3 : -2,0004
3 : -4,0001
Осталось 4 кг, используем их все: 4 R/S
-4

Посадка со скоростью -4 м/с. Для первого раза неплохо, но можно и лучше. Не сомневаюсь, что опытным пилотам «Лунолета-1» или тем более динамического орбитального "Лунолет-3" не составит труда прилуниться с почти нулевой скоростью.

Мягкой посадки!

Приложение для любопытных

Несколько фото ПМК HP-12C, из которых видна его специализация на финансово-статистические расчеты. Например, отсутствует тригонометрия, но есть такие операции, как умножение или деление на 12!

Стандартный набор: маленькое печатное руководство, все остальное - на прилагаемом диске. Очень приятные клавиши.

Первым делом я заменил разделитель по тысячам на точку, а десятичную точку - на запятую. Из американской в почти европейскую. Жаль, нельзя пробел вместо точки использовать.

Две стандартные батарейки и "шпаргалка" по некоторым функциям. ПМК бережливый, если в течение минуты-двух не касаться клавиш, дисплей отключается. Программа и данные, конечно, сохраняются.