You are here
Посадка на Луну с 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 :)
Стандартный набор: маленькое печатное руководство, все остальное - на прилагаемом диске. Очень приятные клавиши.
Первым делом я заменил разделитель по тысячам на точку, а десятичную точку - на запятую. Из американской в почти европейскую. Жаль, нельзя пробел вместо точки использовать.
Две стандартные батарейки и "шпаргалка" по некоторым функциям. ПМК бережливый, если в течение минуты-двух не касаться клавиш, дисплей отключается. Программа и данные, конечно, сохраняются.