Розробка демонстраційної моделі руху планет Сонячної системи у середовищі Turbo Pascal

 

ВСТУП


Інколи виникає необхідність створити просте динамічне зображення, чи то для наведення прикладу можливості створення такого зображення у програмуванні, чи для якоїсь гри, чи для зображення тих чи інших природних явищ, які ми не маємо можливості спостерігати. Дана програма є простою, тут немає ніяких налаштувань, ніяких та полів введення, присутня лише одна кнопка для переходу до програми. Обмежившись одним файлом, після його запуску на екрані висвітлюється титульна сторінка програми, через деякий час на екрані висвітлюється запис для переходу до програми, для цього потрібно натиснути кнопку Enter. Після натискання кнопки Enter спостерігається перехід до програми, яка зображає рух планет навколо Сонця. Даною програмою зможе користуватися користувач - початківець, адже для цього потрібно тільки вміти запустити програму на виконання.

Для створення динамічного зображення я обрав мову програмування Turbo Pascal. Дана мова програмування дає можливості для створення та обробки динамічних зображень. Для керування програмою можна використовувати декілька способів (меню та комбінації клавіш) я вважаю що зручніше використовувати комбінації клавіш для керування програмою: Ctr-F9 - запуск програми, Alt-F9 - для перевірки програми на помилки... Також тут присутній рядок стану(внизу робочої області) де відображається номер стрічки, що дозволяє швидко знайти у програмному коді помилку.

1. ТЕОРЕТИЧНА ЧАСТИНА


Моє завдання на курсову роботу - це створення демонстраційної моделі руху планет навколо Сонця. Тому я вирішив розповісти про Сонячну систему.

Сонячна система - планетна система навколо Сонця, до складу якої входить вісім великих планет і одної карликової із більш ніж 100 супутниками, понад 100 000 астероїдів, понад 1000 комет, а також незліченна кількість дрібних, так званих метеорних тіл.

Основна роль у Сонячній системі належить Сонцю. Його маса приблизно в 750 разів перевищує масу всіх інших тіл, що входять до системи. Гравітаційне тяжіння Сонця є визначною силою для руху всіх тіл Сонячної системи, які обертаються навколо нього. Середня відстань від Сонця до найдальшої від нього планети Нептун складає 30 а. о., тобто 4,5 млрд. км., що дуже мало в порівнянні з відстанями до найближчих зір. Тільки деякі комети віддаляються від Сонця на 1015 а. о. і можуть відчувати істотний вплив тяжіння інших зір.

Усі великі планети - Меркурій, Венера, Земля, Марс, Юпітер, Сатурн, Уран і Нептун - обертаються навколо Сонця в одному напрямку (в напрямку осьового обертання самого Сонця), майже круговими орбітами, площини яких мають невеликий нахил одна до одної.

Площину земної орбіти - екліптику - вважають основною площиною для відліку нахилу орбіт планет та інших тіл, що обертаються навколо Сонця. Відстані у сонячній системі зазвичай вимірюють у астрономічних одиницях - середня відстань від Землі до Сонця, що приблизно дорівнює 150 млн. км.

Планети поділяються на дві групи, що відрізняються масою, хімічним складом, швидкістю обертання і кількості супутників. Чотири планети, найближчі до Сонця, планети земної групи, порівняно невеликі, складаються здебільшого із щільної кам'янистої речовини і металів. Планети-гіганти - Юпітер, Сатурн, Уран і Нептун - набагато масивніші, складаються здебільшого з легких речовин і тому, незважаючи на величезний тиск у їхніх надрах, мають малу густину. У Юпітера і Сатурна основну частку їхньої маси складають водень і гелій. Вони містять також до 20% кам'янистих речовин і легких сполук кисню, вуглецю й азоту, що за низьких температур конденсуються на лід. В Урана й Нептуна лід і кам'янисті речовини складають більшу частину їхньої маси.

Відстані планет від Сонця утворюють закономірну послідовність - проміжки між сусідніми орбітами зростають із віддаленням від Сонця. Ці закономірності руху планет у поєднанні з розподілом їх на дві групи за фізичними властивостями вказують на те, що Сонячна система не є випадковим скупченням космічних тіл, а утворилася в єдиному процесі. Тому вивчення кожного з тіл Сонячної системи висвітлює походження всієї Сонячної системи, а разом з тим і походження, еволюцію та сучасну будову нашої Землі.

Завдяки майже круговій формі планетних орбіт і великим відстаням між ними виключена можливість тісних зближень між планетами, коли вони могли б істотно змінювати свій рух внаслідок взаємного тяжіння. Це забезпечує тривале та стійке існування сонячної системи.

Планети обертаються також навколо своїх осей, причому у всіх планет, крім Венери й Урана, обертання відбувається в прямому напрямку, тобто, в тому ж напрямку, що і їхнє обертання навколо Сонця. Надзвичайно повільне обертання Венери відбувається в зворотному напрямку, а Уран обертається, ніби лежачи на боці.

Сатурн, Юпітер і Уран крім кількох супутників помітних розмірів мають безліч дрібних супутників, що ніби зливаються в суцільні кільця. Ці супутники рухаються орбітами, настільки близько розташованими до планети, що припливні сили не дозволяють їм об'єднатися в єдине тіло.

2. ОПИС ПРОГРАМИ


2.1 Загальна характеристика


Багато виникає випадків, коли потрібно наочно продемонструвати рух планет Сонячної системи. За допомогою цієї програми це легко зробити. Дана програма демонструє приблизний рух планет навколо Сонця.

Дана програма створена на мові програмування TURBO PASCAL, а також за допомогою середовища програмування TURBO PASCAL або School pak.

Основна функція програми - продемонструвати рух планет навколо Сонця.

Вона може бути використана у різних закладах(навчальних чи будь-яких інших).

Також може бути використана під час лекцій чи в інших навчальних або пізнавальних процесах.

Програма складається з двох частин:

титульної сторінки;

програми, яка демонструє рух планет.


2.2 Необхідні технічні засоби


Для запуску програми користувачеві знадобляться такі технічні засоби:

) компютер з характеристиками, що забезпечать функціонування програми:) процесор 128 MHz;

б) оперативна память (ОЗУ) : не менше 64 Mb;

в) вільного місця на жорсткому диску у файловій системі NTFS : не менше ніж 20 мб;

г) Кольоровий графічний дисплей, роздільна здатність дисплею 1024x768 ;

д) мишка;

) На компютері повинна бути встановлена одна із операційних систем:

а) Windows Server 2003;

б) Windows XP;

в) Windows Vista;

г) Windows 7;



2.3 Блок-схеми основних алгоритмів та структури програми




2.4 Опис процедур та обробників


Створення титульної сторінки я організував так:


setbkcolor(0);(15);(6,6,634,474);(20,20,620,460);(4,0,1);(170,30,' Міністерство освіти і науки України ');(70,55,' Камянець-Подільський коледж харчової промисловості НУХТ ');(4,0,4);(210,85,' Курсова робота ');(250,115,' на тему:');(50,140,' Розробка демонстраційної моделі руху ');(130,170,' планет Сонячної системи ');(4,0,1);(390,225,' Виконав:');(390,245,' Студент 931 групи ');(390,265,' спеціальності 5.05010101');(390,285,' Твердохліб В.А.');(390,335,' Керівник: ');(390,355,' Форкун В.П.');(300,425,'2013');(3,0,1);(999);(390,415,' Натисніть ENTER');(390,435,' для переходу ');;


Малювання мерехтливих зірок здійснюється за допомогою:


Randomize;

For i:=1 to 70 do(Random(640),Random (350),White);


Малювання орбіти здійснюється за допомогою:


For i := 1 to 100 do (320+Round(RadOrb * cos((i+VisualPage/5)*Pi/50+0.3)),

+Round(RadOrb*Naklon*sin((i+VisualPage/5)*Pi/50-Pi/2)),15);


Малювання Сонця здійснюється процедурою:


PieSlice(310, 160, 0, 360, RadSun);


Малювання планети (її паралелей і меридіанів)::= Ugol+DUgol ; { кут повороту планети щодо Сонця }:= Round(180*Ugol/Pi) mod 360; := 320+Round(RadOrb*cos((Ugol+Pi/2+0.3))); { координати }:=160+Round(RadOrb*Naklon*sin(Ugol)); {центра планети}:= 2.5-cos(Ugol+0.3);

{ коефіцієнт врахування віддаленості планети від спостерігача }:= Round(RadZem*CompressZem); { поточний радіус планети }:= UgZem+DUgZem; { кут повороту планети щодо своєї осі }i := 0 to 11 do { малювання меридіанів }:= (UgZem+i*30) mod 360;(90<UgMer) and (UgMer<270) { установка початкового і кінцевого }begin StAngle := 90; EndAngle := 270 end { кутів дуги }begin StAngle := 270; EndAngle := 90 end; { еліпса меридіана }:= (Grad+220) mod 360; Ub := (Grad+400) mod 360;

{ установка кольорів малювання затіненої і освітленої частин меридіана }:= LightBlue;Ua<=Ub then if (Ua<UgMer) and (UgMer<Ub) then Color := White;Ua >Ub then if (Ua<UgMer) or (UgMer<Ub) then Color := White;(Color);:= round((ZemPix*cos(UgMer*Pi/180))); (ZemX,ZemY,StAngle,EndAngle,abs(XRad),round(PressZem*ZemPix));;i := 2 to 7 do { малювання паралелей }:= abs(Round(ZemPix*sin(i*Pi/9)));

{ велика піввісь еліпса паралелі }:= Round(ZemPix*PressZem*cos(i*Pi/9));

{ висота паралелі над площиною екватора }:= ZemY+UpDown; { координата Y центру еліпса паралелі }(LightBlue);(ZemX, ParallelY, 0, 360, XRad, Round(Naklon*XRad));

{ затінена частина паралелі }(White);(ZemX,ParallelY,Grad+220,Grad+400,XRad,Round(Naklon*XRad));

{ освітлена частина паралелі };


Малювання протуберанців здійснюється процедурою:


RandSeed := VisualPage mod 12;i := 1 to 250 do := (1-sqr(Random))*Pi/2;:= RadSun+Round((20)*sin(Projection))-15;:= 2 * Pi * Random+VisualPage/20;:= 310 + Round( XRad * cos(PolUgol));:= 160 + Round( Compress * XRad * sin(PolUgol));(PixelX, PixelY, LightRed);


2.5 Інструкція користувача


Для запуску програми потрібно:

файл KURSOV2.PAS з програмою копіювати в папку Мои документы

відкрити середовище програмування TURBO PASCAL або School Pak. далі потрібно відкрити файл KURSOV2.PAS з програмою.

після того, коли програма вже відкрита, потрібно запустити її на виконання за допомогою клавіш Ctrl+F9 після цього ми спостерігаємо появу на моніторі титульної сторінки через деякий час зявляється напис для переходу на іншу сторінку.

після натискання кнопки Enter ми спостерігаємо самий процес обертання планет навколо Сонця.

для виходу с програми знову натискаємо кнопку Enter.

Таким чином, програму можна запускати необмежену кількість разів.

космічний екліптика алгоритм програма

3. Результати роботи програми та контрольні приклади


На даному рисунку 3.1 зображена титульна сторінка до програми:


Рисунок 3.1 - Титульна сторінка


Виконання програми, яка демонструє рух планет навколо Сонця подано на рисунку 3.2


Рисунок 3.2 - Програма руху планет навколо Сонця

Висновки


Виконавши дану курсову роботу я отримав програму, що будує динамічне зображення: рух планет навколо Сонця. Оскільки програма виконана на мові програмування TURBO PASCAL це забезпечує їй широке коло використання. Програма не є вимогливою до ресурсів ПК, як технічних так і до програмного забезпечення. Програма служить для демонстрації руху планет Сонячної системи. Може бути використана в повсякденному житті, у навчанні, чи просто з пізнавальною метою.

Під час створення програми я вивчив багато нових процедур та обробників для створення анімації, графічних обєктів.

На цій курсовій роботі я удосконалив свої вміння у роботі з TURBO PASCAL, а саме:

·удосконалив свої навички зі створення графічних обєктів в TURBO PASCAL;

·удосконалив навички в роботі з текстом в TURBO PASCAL, його довільне розміщення на сторінці;

·працював з різними стилями написання, розміру та кольору тексту;

·удосконалив навички побудови блок-схем;

·закріпив навички в розробці алгоритмів і роботи з анімацією.

космічний екліптика алгоритм програма

Перелік посилань


Немнюгин С.А. Turbo Pascal <#"justify">#"justify">Епанешников А.М., Епанешников В.А. Программирование в среде Turbo Pascal 7.0.- М.: Диалог-МИФИ, 1995.- 288с.

  • Турбо Паскаль 7.0.- К.: Торгово-издательское бюро BHV, 1996.- 448с.
  • Марченко А.П. Программирование в среде Borland Pascal 7.0.- К.: ВЕК, К.: ЮНИОР, 1996.- 480с.
  • Фаронов В.В. Турбо Паскаль 7.0. Начальный курс. Учеб. пособие.- М.: Нолидж, 200.- 576с. #"justify">Процедуры и функции модуля System библиотеки языка Turbo Pascal: Метод. рекомендации / Сост. О.А.Жульковский.- Днепродзержинск: ДГТУ, 1995.- 24с.
  • Turbo Pascal. Работа с модулем CRT: Метод. рекомендации / Сост. О.А. Жульковский.- Днепродзержинск: ДГТУ, 1996.- 12с.
  • Работа в среде программирования Borland Pascal 7.0: Метод. рекомендации / Сост. О.А. Жульковский, И.А. Жульковский.- Днепродзержинск: ДГТУ, 1996.- 22с.
  • Turbo Pascal. Процедуры и функции модуля Graph: Метод. рекомендации / Сост. О.А. Жульковский.- Днепродзержинск: ДГТУ, 1996.- 23с.
  • Turbo Pascal. Работа с модулем DOS: Метод. рекомендации / Сост. О.А. Жульковский.- Днепродзержинск: ДГТУ, 1996.- 17с.
  • Додатки


    Код програми


    Program Space;Crt, Graph;= 250; RadSun = 70;= 100; RadZem = 18;= 0.2;= 0.65;= 0.8;, ZemY, UgMer, PixelY, DUgZem , UpDown,, Grad, UgZem, PixelX, StAngle, Ua, Ub,, Color, ZemPix, EndAngle,, GrMode, GrError, GrDriver, i : Integer;, CompressZem, Expansion,, Projection, PolUgol : Real;:= EGA; GrMode := EGAHi;(GrDriver, GrMode, 'C:\TP\BGI');:= GraphResult; If GrError<>GrOk then Halt;(Black);(1, Yellow);

    Ugol := 0; DUgol := 2*Pi/180;

    UgZem := 0; DUgZem := 14;

    VisualPage := 1;

    SetVisualPage(1- (VisualPage mod 2));:= VisualPage+1;(1 - (VisualPage mod 2));;:=1;:=VisualPage/100;

    For i:= 1 to VisualPage doXRad := Trunc(Expansion*RadGal*Random);:= 2*Pi*Random-VisualPage/30;:= 370+Trunc(XRad*cos(PolUgol+1.8));

    PixelY := 250+Trunc(XRad*0.5*sin(PolUgol));

    PutPixel(PixelX, PixelY, White)

    end;;

    For i:=1 to 70 do(Random(640),Random (350),White);

    For i := 1 to 100 do

    PutPixel(320+Round(RadOrb * cos((i+VisualPage/5)*Pi/50+0.3)),

    +Round(RadOrb*Naklon*sin((i+VisualPage/5)*Pi/50-Pi/2)),15);(310, 160, 0, 360, RadSun);

    Ugol := Ugol+DUgol;

    Grad := Round(180*Ugol/Pi) mod 360;

    ZemX := 320+Round(RadOrb*cos((Ugol+Pi/2+0.3)));

    ZemY:=160+Round(RadOrb*Naklon*sin(Ugol));

    CompressZem := 2.5-cos(Ugol+0.3);:= Round(RadZem*CompressZem);

    UgZem := UgZem+DUgZem;

    For i := 0 to 11 do

    begin:= (UgZem+i*30) mod 360;(90<UgMer) and (UgMer<270)

    then begin StAngle := 90; EndAngle := 270 end

    else begin StAngle := 270; EndAngle := 90 end;

    Ua := (Grad+220) mod 360; Ub := (Grad+400) mod 360;:= LightBlue;Ua<=Ub then if (Ua<UgMer) and (UgMer<Ub) then Color := White;Ua >Ub then if (Ua<UgMer) or (UgMer<Ub) then Color := White;(Color);:= round((ZemPix*cos(UgMer*Pi/180)));

    Ellipse(ZemX,ZemY,StAngle,EndAngle,abs(XRad),round(PressZem*ZemPix));;i := 2 to 7 do

    begin:= abs(Round(ZemPix*sin(i*Pi/9)));:= Round(ZemPix*PressZem*cos(i*Pi/9));:= ZemY+UpDown;

    SetColor(LightBlue);(ZemX, ParallelY, 0, 360, XRad, Round(Naklon*XRad));(White);(ZemX,ParallelY,Grad+220,Grad+400,XRad,Round(Naklon*XRad));;CompressZem<2 then PieSlice(310, 160, 0, 360, RadSun);:= VisualPage mod 12;i := 1 to 250 do

    begin:= (1-sqr(Random))*Pi/2;:= RadSun+Round((20)*sin(Projection))-15;:= 2 * Pi * Random+VisualPage/20;:= 310 + Round( XRad * cos(PolUgol));:= 160 + Round( Compress * XRad * sin(PolUgol));(PixelX, PixelY, LightRed);KeyPressed.


    ВСТУП Інколи виникає необхідність створити просте динамічне зображення, чи то для наведення прикладу можливості створення такого зображення у програмуван

    Больше работ по теме:

    КОНТАКТНЫЙ EMAIL: [email protected]

    Скачать реферат © 2017 | Пользовательское соглашение

    Скачать      Реферат

    ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ