Введение.
Разработка программной имитации межзвездных полетов для операционной системы Windows
Сигнал несет в себе информацию о положении звездолета в момент подачи сигнала. Когда сигнал доходит до Земли, запускается процесс центра связи zz, который выводит местоположение звездолета в межзвездном пространстве. Возникает эффект задержки, то есть звездолет на самом деле уже находится в других координатах, а на земном центре фиксируются старые кординаты (на момент подачи сигнала звездолетом… Читать ещё >
Введение. Разработка программной имитации межзвездных полетов для операционной системы Windows (реферат, курсовая, диплом, контрольная)
Цель задания — разработка программной имитации межзвездных полетов для операционной системы Windows.
В ходе работы проанализирована теория о релятивистском движении, основы языка С.
Задание
(Вариант 69) Разработать для ОС Windows программную имитацию межзвездных полетов. Одним процессом моделируется звездолет, стартующий с околоземной орбиты и после разгона с ускорением 1000 g совершающий полет до звездной системы, лежащей на расстоянии 10 световых лет от Земли. Совершив с тем же ускорением замедление до нуля скорости полета и набрав затем скорость обратного движения, звездолет возвращается на Землю. Скорость стационарного полета составляет 0,95 световой. В конце обратного полета выполняется торможение для последующего выхода на околоземную орбиту. Каждые полгода полета звездолет посылает в электромагнитном импульсе сообщение для Земли. Программная модель должна представлять командную рубку звездолета и земной центр связи с звездолетом с произвольно выбранной композицией индикаторов наблюдения и связи в виде двух отдельных програмных процессов. Движение эл. импульсов сообщений может моделироваться отдельными процессами или нитями процесса модели звездолета. Следует учесть релятивистские эффекты относительного движения. Сообщения посылки и получения сообщения должны отображаться на экране компьютера. Моделирование должно выполняться в подобранном ускоренном масштабе.
Решение Дано:
Найти:
Найдём время, которое тратит звездолёт для ускорения и торможения, формула 1:
(1).
Теперь найдём расстояние, которое проходит звездолёт в момент ускорения и торможения, формула 2:
(2).
Найдём время стационарного полёта, формула 3:
(3).
Таким образом, время за которое совершается полёт в одну сторону равно, формула 4:
(4).
Одним процессом моделируется звездолет, который приобретает необходимую скорость (0.95) при ускорении 1000 g за 0,022 лет и так же при торможении, формула 1, при этом пролетает расстояние 0,011 св. лет, формула 2.
Значит, расстояние которое ему необходимо пройти при стационарном полете равно 9,98 св. лет на что он затратит 10,5 лет, формула 3. Общее время полета — 10.6 лет, формула 4.
При моделировании возьмем шаг 0,5 года = 5 сек. Каждые пол года, то есть каждых 6 шагов звездолет посылает сигнал на Землю со скоростью света (1 св.), то есть который будет идти с задержкой (0.95*5 сек)= 4,75 сек.
Сигнал несет в себе информацию о положении звездолета в момент подачи сигнала. Когда сигнал доходит до Земли, запускается процесс центра связи zz, который выводит местоположение звездолета в межзвездном пространстве. Возникает эффект задержки, то есть звездолет на самом деле уже находится в других координатах, а на земном центре фиксируются старые кординаты (на момент подачи сигнала звездолетом).
Сигнал сообщений моделируется отдельной нитью signalToPlane процесса модели звездолета В соответствии с релятивистские эффекты относительного движения на звездолете и на Земле разные временные интервалы и эффект изменения координат (расстояние). Сообщения посылки и получения сообщения отображаются на экране компьютера сообщениями «Signal otpravlen!» и «Signal poluchen!». Так же на экране отображаются Время полета звездолета в его системе и в системе Земли (ед. измерения 0.001 года), и пройденное им расстояние в св. годах.
Передача информации о местоположении звездолета от процесса звездолета к процессу земного центра происходит за счет создания разделяемой памяти:
hMem1 = CreateFileMapping ((HANDLE)0xFFFFFFFF, NULL, PAGE_READWRITE, 0, 16 384, «SHAREMEM1»);
Получаем адрес разделяемой памяти:
hh = MapViewOfFile (hmem1, FILE_MAP_WRITE, 0, 0, 0);
И когда сигнал пребывает на землю выводит местоположение звездолета используя разделяемую память в позицию Х:
hmem1 = OpenFileMapping (FILE_MAP_READ, FALSE, «SHAREMEM1»);
gg = MapViewOfFile (hmem1, FILE_MAP_READ, 0, 0, 1024);
Данный процесс повторяется циклически.
моделирование звездолет программный.