Тригонометричні ефемериди планет Сонячної системи
Планети Сонячної системи — це небесні тіла, котрі рухаються в полі тяжіння Сонця по еліптичних орбітах й світяться відбитим сонячним промінням. Основна відмінність планет від зірок у бо температури всередині планет недостатні для перебігу там термоядерних реакцій, що на свій чергу зумовлене їхні малою масою. Крім великих планет у склад Сонячної системи входять малі планети — астероїди. Великі… Читати ще >
Тригонометричні ефемериди планет Сонячної системи (реферат, курсова, диплом, контрольна)
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ.
ТЕРНОПІЛЬСЬКИЙ ДЕРЖАВНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ.
імені Івана Пулюя.
КУРСОВА РОБОТА.
із об'єктно — орієнтованого програмування на тему:
«Тригонометричні ефемериди планет.
Сонячної системи".
Зміст.
стор.
Вступ. _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _5.
1.Теоретична частина._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 6 2. Розробка алгоритму й структури програми._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 16 3. Програма на мові програмування Delphi._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 19 4. Тестування програми й результати її виконання. _ _ _ _ _ _ _ _ _ _ _ _ _ _ 45 5.Висновки. _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 46 6. Список літератури. _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 47.
Вступ.
З давніх часів люди захоплено дивилися в нічне зоряне небо. Ще нічого не знаючи про будову Всесвіту, смердоті із ночі в ніч вели спостереження за зорями й Місяцем. Особливо їхні зацікавив небесний рух 5 яскравих зірок, котрі на відміну від інших міняли своє положення й отримали за це назву — планети (aster planetes — (латів.) блукаюча зоря).
Спостерігачі стародавніх цивілізацій намагалися розгадати закони руху цих зірок небом. Древній грек Птоломей описавши їхні рух, виходячи з своєї гео;
центричної системи світу. Корінний перелом у вивченні небесної механіки наступив в середньовіччі, коли Копернік поставивши у центр світу Сонце, Кеп;
лер на основі спостережень сформулював закони руху планет по своїх орбі;
тах, а Ньютон вивів закон всесвітнього тяжіння. З тихий пір астрономи почали детально порівнювати результати спостережень з результатами обчислень.
Розвиток оптичних приладів й математичного апарату обчислень давши поштовх до того, що результати набули високої точності. титану незначні невідповідності.
в обчисленнях змусили астрономів задуматись над їхні причинами, що дало змогу відкрити нерівномірності в русі планет, так наприклад зміщення пери;
гелію Меркурія було б пояснено лише із приходом теорії відносності.
Людина завжди прагнула побачити своє майбутнє, астрономам вдалося зазирнути у майбутнє планет. Знаючи їхні початкове положення й ті, як смердоті ру;
хаються, вчені можуть прогнозувати їхнього місцезнаходження на століття вперед. Однак вирішення цієї задачі складне, оскільки потрібно враховувати дуже ба;
гато чинників: вплив Сонця, вплив планет одна однією, зміну елементів їхні орбіт із плином години. До появи ЕОМ ці заподіяння вирішувались на папері мак;
симум із логарифмічною лінійкою, що займало місяці тяжкої роботи. Навіть незначна помилка, особливо на початку роботи, зводила всю її нанівець. Тепер же, астрономи, за допомогою потужних ЕОМ можуть за лічені секунди обраху;
вати траєкторії руху планет, комет, астероїдів.
1. Теоретична частина.
Планети Сонячної системи — це небесні тіла, котрі рухаються в полі тяжіння Сонця по еліптичних орбітах й світяться відбитим сонячним промінням. Основна відмінність планет від зірок у бо температури всередині планет недостатні для перебігу там термоядерних реакцій, що на свій чергу зумовлене їхні малою масою. Крім великих планет у склад Сонячної системи входять малі планети — астероїди. Великі планети за їхнього фізичними характеристиками поділяють на дві групи: планети земної групи — Меркурій, Венера, Земля, Марс, та планети-гіганти — Юпітер, Сатурн, Уран, Нептун. Плутон швидше належить до малих планет. Ос;
новна відмінність між цими групами до того, що у склад планет першої групи входять в основному важкі хімічні елементи тоді як планети-гіганти складаються переважно із водню й гелію.
Отже уявімо, що проста людина, озброївшись підзорною трубою чи навіть біноклем, захоче подивитися на ці планети. Перше запитання, яку в неї виникне — це куди, в якої точку неба направити свій погляд, адже без спеціальних знань зоряних атласів виокремити планети на фоні тисячі зірок неможливо. Для любителів астрономії й професіоналів астрономів важливо якщо знаті точні координати планети, відстань до неї, кутовий діаметр, фазу диска, видиму зоряну величину — тобто знаті астрономічні ефемериди планети .
У даній курсовій роботі складена програма на мові Delphi, Яка використовуючи закони тригонометрії приблизно обчислює ефемериди планет й дозволяє наочно зобразити планети на фоні зоряного неба. Слово «приблизно» означає, що існує деяка похибка, пов’язана із слабким математичним апаратом обчислення, й ця похибка для професіоналів був б просто катастрофічною. Адже сучасні теорії руху планет із використанням диференціального й інтегрального обчислення, а також сучасні обчислювальні машини дозволяють нівелювати похибку обчислення до похибки роздільної здатності сучасних телескопів. Алі хочу звернути увагу, що кінцевими користувачами програми можуть бути прості люди й любителі астрономії, для які ця похибка не дуже важлива.
Отже, що таке ефемериди? Ефемериди — це астрономічні дані про положення на небі та умови спостереження світил для окремих чи послідовних моментів години. Ефемериди публікують у спеціальних виданнях. Астрономічні ефемериди містять головним чином дані про координати, відстані, фази планет.
Архімед сказавши: «Дайте Мені точку опори й я переверну Землю». Для астрономії точкою опори, здатною перевернути усю Сонячну систему, є годину, а точніше початкова точка відліку часу.
У програмі точкою відліку години є 9 января 1990р. Чим особлива ця дата? А ані чим, просто автор програми под рукою був лише «Астрономічний календар на.
1990р. «й він із нього дізнався про точні координати планет Сонячної системи саме на цю дату. Другою проблемою, якої слід вирішити — є система відліку часу.
Те, що творилося із нашим календарем в історії для астрономів інакше як жахом не назвеш. Те спочатку був Юліанський календар потім Григоріанський, под час переходу було б втрачено 13 днів, як наслідок ми св’яткуємо старий Новий рік. Ви;
сокосні рокта, 29 лютого, декретний годину — все це призводить до плутанини.
У астрономії прийнято нумерувати дні. Нумеровані дні в астрономії мають назву юліанські дні. Якщо дні нумеровані, то спрощуються усі календарні розрахунки. Наприклад, число днів між двома датами рівне різниці відповідних номерів дат. Це визначення й покладено основою системи відліку годині на нашій програмі. Єдина проблема — це розробити метод нумерації днів в рамках нашого Григоріанського календаря.
Нумерація днів в сучасному календарі утруднена через його неперіодичність: самі місяці мають 30 днів, інші 31, у те 28, то 29 в високосному році. Як;
би в кожному місяці було б 30 днів, а високосних років не було б, то номер дати можна було б б визначити по формулі:
N=365 * G + 30 * (M-1) + D.
де — G, M, D — рік, місяць, день дати.
Найбільші складності в удосконалені цієї формули створює лютий. Для високосних років, починаючи із 1 березня, потрібно враховувати додатковий день. Якби лютий був останнім місяцем року, то крайній мірі, ця складність зникла б. Тому в календарних розрахунках місяць й рік доцільно перенумерувати: березень якщо першим місяцем року й т.д., а січень й лютий одинадцятим й дванадцятим місяцями попереднього року.
Алгоритм присвоєння номери дні, у рамках Григоріанського календаря буде таким:
P.S:= int (12 — M /10);
M:= 12 * P. S + M — 2 ;
G:= G — P. S ;
N:= 365 * G + int (G/4) — int (G/100) + int (G/400) + int (30.59 * M) + D — 30 ;
спростимо: об'єднаємо Перші два члена до int (365.25 * G).
Для дат із 1900 по 2099 рокта вираз N спрощується за рахунок того, що сума тре;
тього й четвертого членів протягом години не міняється й дорівнює -15. Так як в нуме;
рації дат числа -15 й -30 лише посувають номери всіх дат на одне й теж число, то в розрахунках їхні можна не враховувати. Щоб номери дат для ((й (((ст. не були занадто великими із номери року віднімемо 1900, тоді:
N:= int (365.25 * (G — 1900) + int (30.59* M) + D; (1).
Оскільки за цією формулою 9 января 1990 р. Має значення N:=32 852, то ми вводи;
мо його як константу точки відліку часу.
Тепер розберемося із простором. Просторове положення планети відносно Сонця задається елементами орбіти. Елементи орбіти — величини, котрі характеризують розміщення орбіти небесного тіла в просторі, її розміри, форму, а також положення тіла на орбіті. За вушко відліку координат беруть точку весняного рівнодення — точку небесного екватора, через якої центр диска Сонця 20(21) березня переходити із Південної півкулі неба в Північну.
Якщо дивитися із полюси орбіти, із якого рух тіла відбувається проти руху стрілки годинника, то точку перетину площини орбіти із площиною екліптики (площина орбіти землі), в якій орбіта піднімається над площиною екліптики — називають висхідним вузлом. Дугу від точки весняного рівнодення по великому колі екліптики до вузла — називають довготою висхідного вузла ((, Aie).
Дугу від точки весняного рівнодення до точки перигелію планети (найменша відстань до Сонця) — називають довготою перигелію Aap.
Розміри й форму орбіти визначають за рівнянням орбіти в полярних координатах.
[pic] де:
r — відстань від крапки над орбіті, де знаходиться планета до Сонця в а.о.) AR ,.
e — ексцентриситет орбіти (геометрична властивість еліпса орбіти) Aeo ,.
a — велика піввісь орбіти (середня відстань від планети до Сонця в а.о.) Aao ,.
v — кут справжньої аномалії (кут у площині орбіти від перигелію до точки на.
орбіті, де перебуває планета),.
оскільки v = (- Aap де:
(- геліоцентрична довгота планети (кут між точкою весняного рівнодення й точкою на орбіті де перебуває планета) AG,.
отже:
[pic] чи [pic] (2).
Це головна формула, Яка визначає рух планети по еліптичній орбіті. Невідоми;
ми величинами тут є AG й AR: геліоцентрична довгота й радіус-вектор — основ;
ні ефемериди планети із які в подальшому будуть визначатися інші.
Отже перед початком роботи програми нам відомі елементи орбіти, що є конс;
тантами, номер дати спостереження, початкові координати планети: геліоцентри;
чна довгота й радіус-вектор в початковий момент години 9 января 1990р. Використає;
мо 2 закон Кеплера для опису руху планети. Він говорити, що площа секторів еліпса орбіти за одинаків проміжок години однакова. Ос-кільки швидкість руху планети по орбіті незмінна, то дуги цих секторів будуть також однакові .
S1 = S2; R1 = R2.
Знаючи елементи орбіти можемо визначити площу всього еліпса орбіти й поділивши на період обертання визначити площу еліпса за день (n=1), або за одну годину чи одну хвилину (відповідно n=1/24, n=1/1440).
[pic] (в а.о.2).
(3).
Знаючи орбітальну швидкість (км/с) можемо визначити лінійну довжину дуги еліпса орбіти за день (відповідно протягом року., за 1 хв.).
R:= vорб * 86 400 / AO (* n) (в а.о.) (4).
де:
86 400 — кількість секунд у дні (60*60*24).
AO — астрономічна одиниця (середня відстань від землі до Сонця).
Нам необхідно знайти (- кут переміщення планети за n-днів.
[pic][pic] [pic].
[pic].
[pic] [pic].
[pic] (5).
[pic].
[pic].
(6).
Знайдемо довготу на 10 января 1990р.: (= (поч + (. За формулою (2) визначимо точніше r2 радіус-вектор на 10 января 1990р.
На початку циклу обчислень ми посуваємо початковий момент на 1 день (або.
n-днів). У кінці циклу ми прирівнюємо r1:=r2 й перевіряємо чи початковий мо;
мент години ставши рівним моменту спостереження.
Іншим кроком програми якщо знаходження видимих екваторіальних координат планети: пряме піднесення (й схилення (. Пряме піднесення (- вимірюється від точки весняного рівнодення вздовж небесного екватора назустріч видимому добовому обертанню небесної сфери до кола схилень світила й вимірюється в годинній мірі від 0 до 24h (AA). Схилення (- вимірюється в градусах від небесного екватора вздовж кола схилень до світила (від-900 до+900) (AB). Здавалось пряме піднесення (легко визначити розділивши довготу AG на 15 (150 = 1 рік.). Однак це було б б правильно, якби Земля й планета рухалися на одній прямій від Сонця. Направду нам необхідно розрахувати зміщення ((скорегувавши таким чином значення AG/15.
[pic][pic].
[pic].
[pic].
[pic].
(7).
тоді AA:=(+ ((/15.
Схилення планет однозначно визначити не можна. Ос-кільки площина орбіти планети нахилена до площини екліптики под кутом й (Aei), то знаючи піднесення АА визначимо, яку б було б схилення планети якби вона рухалася по екліптиці, а потім скорегуємо його відповідно до нахилу й на ((.
Схилення (точки екліптики, знаючи його піднесення (, можна визначити за формулою:
[pic].
де (- кут нахилу екліптики до небесного екватора (23,50).
Зміщення ((можна знайти розв’язавши завдання стереометрії. Виведення кінце;
вої формули досить велике, тому дамо остаточний результат:
[pic][pic] (8).
де: (= (- (.
(= (- (.
(= arcsin (sin (* sin ().
тоді: AB= (+ ((.
Знаючи Z й R із формули (8) можемо визначити лінійну відстань між Землею.
і планетою.
[pic] (9).
Знаючи AV й екваторіальний радіус планети можемо визначити видимий кутовий діаметр планети.
[pic] [pic] (10).
Фазу планети визначають так:
[pic][pic].
[pic].
[pic].
[pic] [pic].
[pic].
Фаза планети — це її форма, що її бачить спостерігач з землі. Вона зумовлена змінами в умовах освітленості планети Сонцем под годину руху навколо нього. У ас;
трономії фазу описують числом — це ставлення найбільшої ширини освітленої.
частини диска планети до його діаметра.
Важливими ефемеридами планети є умови її видимості, тобто годину одразу ж й заходженню азимути точок одразу ж й заходженню на горизонті.
Сходом й заходом світила — називають момент перетину світилом математичного обрію, коли воно та переходити із невидимої півкулі в видиму й навпаки. Годинний кут t одразу ж й заходженню світила із координатами (й (на географічній широті (визначають із виразу:
[pic] (12) де:
(- рефракція на горизонті (0,590),.
R — кутовий радіус світила (AYD/2),.
p — горизонтальний паралакс (RЗ/(AV*AO)).
Азимут, А світила при сході й заході можна знайти із виразу:
[pic] (13).
Отже, нам потрібно знайти годинний кут. Годинний кут — це годину, що проминувши із мо;
менту верхньої кульмінації. Годинний кут t визначають за місцевим зоряним ча;
сом спостерігача p. s й прямим піднесенням (: t=s-(. Звідси годину верхньої кульмінації.
можна знайти за умовою p. s=(. оскільки: p. s = s0 + T0 + 0.0027*T0;
то: (= s0 + T0 * (1.0027);
T0 * (1.0027) = (- s0;
T0 = (- s0 / 1.0027.
(14).
де:
s0 — місцевий зоряний година за 0h по всесвітньому часу,.
T0 — годину кульмінації.
Знаючи годину кульмінації, додавши й віднявши від нього годинний кут одразу ж і.
заходу отримуємо відповідно годину одразу ж й заходженню, а й за формулою (13) азимути точок одразу ж й заходу.
Програму містить алгоритми, котрі враховують особливості додавання й віднімання годинних величин, адже:
23h + 2h (25h.
23h + 2h = 1h (25h — 24h).
2h — 3h (-1h.
2h — 3h =23h (-1h + 24h).
Ос-кільки початкові координати планет взяті в 0h за всесвітнім годиною то кінцеві.
результати також будуть відповідати йому. Щоб привести результати часових вимірів до місцевого години спостерігача треба врахувати географічну довготу (.
місця спостереження:
Тм = Т0 — (/15 + n.
Літній годину зумовлює додавання ще однієї години (n=1 літо, n=0 зима).
2. Розробка алгоритму та структури програми.
Нижчеописана програма на мові Delphi є лише інструментом приблизного обчислення руху планет Сонячної системи. Програму розбита на кілька структурниx частин: Form1 'Ефемериди планет Сонячної системи', Form2 ‘Обчислення ефемерид планет Сонячної системи', Form3 ‘Огляд зоряного неба', Form4 ‘Детальний огляд зоряного неба'.
У Form1 відображена загальна інформація про курсову роботу. У полі Edit1 ми вводимо пароль й нажимаємо кнопку «Старт"(Button1) для запуску програми. У програмі процедура TForm1. Button1Click порівнює правильність паролю. Якщо пароль вірна сворюється Form2, в протилежному випадку видається повідомлення про невірний пароль. Кнопка «Фініш"(Button2) закриває програму.
У Form2 відбувається процес обчислення. Першим кроком необхідно вибрати планету. Для цого у GroupBox1 зібрано 9 RadioButton. Процедури TForm2. RadioButton1.9Click відповідають за вибір міток планет, котрі будуть в подальшому використовуватись програмою в інших формах. Іншим кроком ми вибираємо дату моменту спостереження у формі день. місяць.рік. із трьох ComboBox, що зібрані в GroupBox2. Третім кроком вводимо координати місця спостереження — широту на полі Edit1, довготу на полі Edit2, що зібрані у GroupBox3. При натискані кнопки «Help» запускається процедура TForm2. Button4Click, котра створює інформаційне вікно про географічні координати деяких міст України й світу. Слід врахувати що програма працює в межах від 8 января 1990 року до 31 грудня 2099 року. Задання дат поза межами робочої зони, не введення мітки планети, неправильне введення номери дня місяця, місяця, географічної широти місця спостереження вважається за помилку й виводить програму на автоматичний вибір початкових даних.
При натисканні кнопки «Обчислити"(Button1) запускається весь процес обчислення. Запускається процедура Eagth1 із модуля Eagth. Необхідність введення модуля Eagth, де ми знаходимо координати землі відносно Сонця, зумовлена тім, що ми ведемо спостереження з землі, внаслідок чого ми спостерігаємо нерівномірний рух планети небом, то він рухається, то раптом стає й починає рухатись тому. Після цого запускається модуль Mars (для приклада), де виконуються три процедури.
У першій процедурі визначають геліоцентричну довготу й радіус вектор Марса у циклі із кроком N4 днів із моменту 9.01.1990р. до заданого моменту спостереження. Обчислення проводяться на основі 2 закону Кеплера про рівність площ секторів еліпса орбіти за одинаків проміжок часу.
У другій процедурі визначають видимі координати Марса в завдань момент на зоряному небі в екваторіальній системі координат. Для цого використовую;
чи дані із модуля Eagth й процедури Mars1 розв’язують завдання стереометрії: виз;
начають кутове зміщення Марса за прямим піднесенню від істинного й відхи;
лення схилення від площини екліптики. У процесі обчислення ми можемо виз;
начити лінійну відстань від землі до Марса й знаючи лінійний радіус Марса мо;
жемо визначити видимий кутовий діаметр й фазу диска планети.
Третя процедура модуля Mars має более зрозуміле значення для простого користувача програми оскільки визначає годину одразу ж, заходженню й кульмінації Марса.
Кульмінація — це момент проходження небесного меридіана, коли планета зна;
ходиться в найвищій точці над обрієм й має найкращі умови для спостере;
ження. Також визначається азимут точок одразу ж й заходженню планети на горизонті.
Результати обчислення виводяться на форму як множина Label, що зібрані у GroupBox4. Кнопка Button3 запускає процедуру створення Form3.
У Form 3 на фоні зоряного неба відображається вибрана планета. У процедурі.
procedure TForm3. FormCreate (Sender: TObject); створюється фон зоряного неба через елемент Image1. Вводитися Canvas. Rectangle відовідного розміру заповняється Canvas. Brush чорним кольором й через масив координат й зоряних величин заповняється зорями через побудову Image1.Canvas.Ellipse (x1,y1,x2,y2);
Через кнопку «Показати» procedure SpeedButton1Click (Sender: TObject); відбувається перетворення зоряних координат планети на пікселі відповідно масштабу Image1 й зображається сама планета відповідним кольором через.
Image1.Canvas.Pen.Color й Image1.Canvas.Ellipse (x4,y4,x5,y5);
Через кнопку «Закрити» procedure TForm3. Button1Click (Sender: TObject); відбувається закриття форми.
Через кнопку «Детальніше» procedure TForm3. SpeedButton2Click (Sender: TObject); створюється Form4.
У Form4 зображається более детальніше фон зоряного неба. Завдяки збільшенню розмірів Image1, ми змушені використати смугу прокручування. Створення форми відбувається аналогічно Form3. Відмінність полягає у тому, що зображення планети миготить. Це дозволяє наочно відрізнити планету від зірок. Досягається це в procedure TForm4. Timer1Timer (Sender: TObject);, де ми вводимо рахівник й через порівняння чи він парний чи непарний зображення планети проявляється то замальовується чорним кольором под колір фону.
3. Програму на мові програмування Delphi.
[pic].
unit Unit1;
interface.
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Unit2, jpeg;
type TForm1 = class (TForm).
Panel1: TPanel;
Image1: TImage;
StaticText1: TStaticText;
StaticText2: TStaticText;
StaticText3: TStaticText;
StaticText4: TStaticText;
StaticText5: TStaticText;
GroupBox1: TGroupBox;
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
StaticText6: TStaticText;
Image2: TImage; procedure Button1Click (Sender: TObject); procedure Button2Click (Sender: TObject); procedure FormCreate (Sender: TObject);
private.
{ Private declarations } public.
{ Public declarations } end;
var Form1: TForm1; Form2: TForm2;
implementation.
{$R *.dfm}.
procedure TForm1. Button1Click (Sender: TObject); var PAR: string; begin PAR:=Edit1.Text; If PAR= «orion 17 «Then begin.
Form2:=TForm2.Create (Application);
Form2.ShowModal;
Form2.Free;
Edit1.Clear; end else begin if MessageDlg («Пароль невірний! Значення „“ +Edit1.Text+ „“ не є паролем! Зверніться до розробника », mtError,[mbOK], 0)=mrOK then.
Edit1.Clear; end; end; procedure TForm1. Button2Click (Sender: TObject); begin close; end; procedure TForm1. FormCreate (Sender: TObject); begin Image1.Picture.LoadFromFile («star.jpg »); Image2.Picture.LoadFromFile («star2.jpg »); end;
end. [pic] unit Unit2;
interface.
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Math, Dialogs, StdCtrls, ExtCtrls, Unit3, KonstPLN, Eagth, Mars, Jupiter, Saturn, Mercury, Venus, Uran, Neptun, Pluton, Common, Unit4;
type TForm2 = class (TForm).
Panel1: TPanel;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
GroupBox3: TGroupBox;
GroupBox4: TGroupBox;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Image1: TImage;
Image2: TImage;
RadioButton1: TRadioButton;
—————————————;
RadioButton9: TRadioButton;
StaticText1: TStaticText;
—————————————-;
StaticText5: TStaticText;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
ComboBox3: TComboBox;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
—————————————;
Label46: TLabel; procedure RadioButton1Click (Sender: TObject);
——————————————————————— procedure RadioButton9Click (Sender: TObject); procedure FormCreate (Sender: TObject); procedure Button1Click (Sender: TObject); private.
{ Private declarations } public.
{ Public declarations } end;
var.
Form2: TForm2; Form3: TForm3;
PLN, D0, M0,R0,i, DR, n: integer; FI, LB, k, S0,P0,RM, ED, EG, ER, ER0, ESD, EH, ER1, EGD, AD, AG, AR, x, AR0,ASD, AH, AR1, AGD, AAD1, ARS, AZE, AZP, ABD, AV, AYD, AYDS, AAD0, AAD, AA, AAM, AAS, AID1, AID2,AID, AB, ABM, AF, AT1, ATK, ATKL, ATKLM, AP, AT2, AT3,ATG, ATS, ATSL, ATSLM, ATZ, ATZL, ATZLM, AZ, AAH, ABG, ATKLH, ATSLH, ATZLH: real; implementation.
{$R *.dfm}.
procedure TForm2. Button4Click (Sender: TObject); begin MessageDlg («Інформація! Деякі географічні координати: «+#13+ «Чортків FI=49.03, LB=25.83 «+#13+ «Тернополі FI=49.6, LB=25.6 «+#13+ «Львів FI=49.8, LB=24 «+#13+ «Київ FI=50.5, LB=30.5 «+#13+ «Лондон (Грінвіч) FI=51.6, LB=0 », mtInformation,[mbOK], 0); end;
procedure TForm2. Button3Click (Sender: TObject); begin close; end;
procedure TForm2. RadioButton1Click (Sender: TObject); begin PLN:=1;ZPL:=1; ZPL1:=1; Image1.Picture.LoadFromFile («mercury.jpg »); end;
——————————————————————————-;
procedure TForm2. RadioButton9Click (Sender: TObject); begin PLN:=9; ZPL:=9; ZPL1:=9; Image1.Picture.LoadFromFile («pluton.jpg »); end;
procedure TForm2. FormCreate (Sender: TObject); begin Image1.Picture.LoadFromFile («star1.jpg »); Image2.Picture.LoadFromFile («sun.bmp »); ComboBox1. ItemIndex:=8; ComboBox2. ItemIndex:=0; ComboBox3. ItemIndex:=0; Label4. Visible:=false; ——————————— Label46. Visible:=false; Button2. Enabled:=false; end;
procedure TForm2. Button1Click (Sender: TObject); begin Button2. Enabled:=false; Label4. Visible:=false; ———————————— Label46. Visible:=false; if PLN=0 then //захист від помилки begin if MessageDlg («Ві забули вибрати планету! «+#13+ «По замовчуванню якщо вибрана Земля. «.
mtError,[mbOK], 0)=mrOK then begin.
RadioButton3.Checked:=true;
PLN:=3;
Image1.Picture.LoadFromFile («eath.jpg »); end; end; D0:=StrToInt (ComboBox1.Text); ZD:=StrToInt (ComboBox1.Text); ZD1:=StrToInt (ComboBox1.Text); if (D031) then //захист від дурня begin if MessageDlg («Помилка введення номери дня місяця! «.
mtError,[mbOK], 0)=mrOK then begin.
ComboBox1.ItemIndex:=8;
D0:=StrToInt (ComboBox1.Text);
ZD:=StrToInt (ComboBox1.Text);
ZD1:=StrToInt (ComboBox1.Text); end; end; if ComboBox2. ItemIndex=0 then begin.
M0:=1;ZM:=1; ZM1:=1; end;
—————————————————;
if ComboBox2. ItemIndex=11 then begin.
M0:=12;ZM:=12; ZM1:=12; end; if M0=0 then //захист від помилки begin if MessageDlg («Введення значення місяця цифрою недопустиме! », mtError,[mbOK], 0)=mrOK then begin.
ComboBox2.ItemIndex:=0;
M0:=1;
ZM:=1;
ZM1:=1; end; end;
R0:=StrToInt (ComboBox3.Text);
ZR:=StrToInt (ComboBox3.Text);
ZR1:=StrToInt (ComboBox3.Text); if (R02100) then //захист від помилки begin if MessageDlg («Помилка граничних між дат спостереження 1990;2100 рр. «.
mtError,[mbOK], 0)=mrOK then begin.
ComboBox3.ItemIndex:=0;
R0:=StrToInt (ComboBox3.Text);
ZR:=StrToInt (ComboBox3.Text);
ZR1:=StrToInt (ComboBox3.Text); end; end;
FI:=StrToFloat (Edit1.Text); if abs (FI)>90 then //захист від помилки begin if MessageDlg («Помилка введення географічної широти місця спостереження! «+#13+ «Має бути в межах ±90 градусів », mtError,[mbOK], 0)=mrOK then begin.
Edit1.Text:= «56 » ;
FI:=StrToFloat (Edit1.Text); end; end;
LB:=StrToFloat (Edit2.Text); if LB.