Предлагаемая читателям ЗВЕЗДОЧЕТА программа на Бейсике объемом около 4 килобайт позволит вычислить практически все данные о планетах, а именно: экваториальные и эклиптические координаты, расстояния от Земли и Солнца, угловые диаметры, фазы и блеск.
ТЕСТ
Исходная дата вычислений: 1996,1,1,1,1 Юлианский день: 2450083.5424 Данные для Меркурия: α=20h6.8m, δ=-22°20', I=299.2, b=-1.4, г1 =1.032, d=6.5, r2=0.3423, m=-1.7, f=0.7 Данные для остальных планет будут также выпилены правильно, если их элементы орбит введены верно. |
Итак, рассмотрим структуру программы. В строке с номером 10 устанавливается режим монитора 80 на 25 строк, очищается экран и память.
В строках 20-210 заносятся исходные данные, необходимые программе. При этом используются следующие сокращения: А(1) — большая полуось, Е(1) — эксцентриситет, IN(I) — наклонение, UZ(I) — долгота восходящего узла, PER(I) — долгота перигелия, SL(I) — средняя долгота в начальный момент (в его качестве выбрана юлианская дата 2447920.5), М(1) — масса планеты в массах Солнца, DP(I) — диаметр планеты в км, ALB(I) — геометрическое альбедо.
В строке 220 на экран выводится запрос. В ответ на него необходимо набрать (через запятую) год, месяц, число, час и минуту момента, для которого будут производиться расчеты. Учтите, что при вводе иного числа параметров на экран будет выдано сообщение об ошибке и вам придется повторить ввод сначала.
В строках 230-290 вычисляется юлианская дата и ее значение выводится на экран.
После этого, в строках 300-310 рисуется шапка таблицы. В таблице приняты следующие обозначения: а — прямое восхождение в часах и минутах, d — склонение в градусах и минутах дуги, I — эклиптическая долгота в градусах и их долях, b — эклиптическая широта в градусах и их долях, rl — расстояние от Земли в а.е., г2 — расстояние от Солнца в а.е., d — угловой диаметр в секундах, m — блеск в звездных величинах, f — фаза.
В строках 320-940 осуществляются основные расчеты. Кратко их поясним. Уравнение Кеплера решается методом Ньютона. Причем, подсчитывается число итераций и происходит выход из цикла, если их число превысит 50 (строки 340-410).
При расчете данных о Солнце нет необходимости определять его блеск, фазу и некоторые другие данные, поэтому в строках 560, 770 и 840 осуществляется обход этих вычислений.
После окончания расчетов для каждой планеты издается звуковой сигнал с возрастающей частотой (строка 950). Данные выводятся на экран в виде таблицы (отсечение ненужных цифр происходит в строках 880-930). Следует помнить, что все координаты планет получаются приведенными к эпохе 2000.0 г.
Затем, в строке 960 таблица окончательно дорисовывается и компьютер ждет нажатия клавиши <Пробел > — для повторения расчетов на другую дату или клавиши
Обратите внимание, что после расчетов в переменных AL(I), DEL(I), L(I), В(1) хранятся данные о прямом восхождении, склонении, эклиптической долготе и широте планет (все эти данные — в градусах), которые можно использовать для дальнейших вычислений (например, горизонтальных координат).
В заключение отмечу, что для разделения операторов в строке применяется символ ":" (двоеточие). Некоторые версии Бейсика используют для этого "\" (косая черта). Для обозначения строковых переменных применяется значок "$" (доллар) или "¤" (клоп) в других версиях. Знак "#" (диез) обозначает переменные двойной точности. Также учтите, что вторая половина таблицы символов ASCII для различных персональных компьютеров часто отличается, и возможно, строку 305 вам придется заменить на строку T$=STRING$ (79, 196), а оператор CHR$(165) в строке 960 заменить на CHR$(179).
Программа