Посадка на Луну с HP-12C и краткий обзор
Оригинальная программа для 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!
Стандартный набор: маленькое печатное руководство, все остальное - на прилагаемом диске. Очень приятные клавиши.
Первым делом я заменил разделитель по тысячам на точку, а десятичную точку - на запятую. Из американской в почти европейскую. Жаль, нельзя пробел вместо точки использовать.
Две стандартные батарейки и "шпаргалка" по некоторым функциям. ПМК бережливый, если в течение минуты-двух не касаться клавиш, дисплей отключается. Программа и данные, конечно, сохраняются.
blog comments powered by Disqus