Моделирование Полета артиллерийского снаряда

Автор: Пользователь скрыл имя, 24 Апреля 2014 в 20:03, курсовая работа

Краткое описание

С середины XX в. в самых различных областях человеческой деятельности стали широко применять математические методы и ЭВМ. Возникли такие новые дисциплины, как «математическая экономика», «математическая химия», «математическая лингвистика» и т. д., изучающие математические модели соответствующих объектов и явлений, а также методы исследования этих моделей.

Файлы: 1 файл

Курсач(новый) Аленка.doc

— 1.14 Мб (Скачать)

vx0, vy0 - x- и y-компоненты начальной скорости движения снаряда;

g = 9,81 м/с2 -- ускорение свободного  падения.

Для поставленной задачи двидения снарядов, используем данные формулы:

    1. Нахождение вертикальной и горизонтальной скорости:

                             VB =V*sin30  (1)

Vr= V*cos30

    1. Время полета снаряда:

                                   2*VB/g                                             (2) 

    1. Максимальная высота полета снаряда:

                                 0 = vsin- gt , t =                                 (3)

4) Скорость полета снаряда:

                                    v = v = v cos                                       (4)

6) Дальность полета:

                            x                               (5)

1.1.3 Требования предъявляемые к модели

Для того чтобы создаваемая модель соответствовала своему назначению, недостаточно создать просто модель. Необходимо, чтобы она отвечала ряду требований, обеспечивающих ее функционирование. Невыполнение этих требований лишает модель ее модельных свойств.

Довольно интересный и непонятный пока аспект требования простоты модели, который заключается в том, что чем проще модель, тем она ближе к моделируемой реальности и тем она удобнее для использования.

Первым таким требованием является – ингерентность, то есть достаточная степень согласованности создаваемой модели со средой. В модели должно быть предусмотрены интерфейсы, но, и, что не менее важно, в самой среде должны быть созданы предпосылки, обеспечивающие функционирование будущей системы. То есть не только модель должна приспосабливаться к среде, но и среду необходимо приспосабливать к модели будущей системы. 

Второе требование – простота модели. С одной стороны, простота модели – ее неизбежное свойство: в модели невозможно зафиксировать все многообразие реальной ситуации.

Третье требование, предъявляемое к модели – ее адекватность. Адекватность модели означает возможность с ее помощью достичь поставленной цели проекта в соответствии со сформулированными критериями. Адекватность модели означает, что она достаточно полна, точна и истинна. Достаточно не вообще, а именно в той мере, которая позволяет достичь поставленной цели.

Таким образом существуют три основных требования, к предъявляемой модели со средой (ингерентность), с субъектом, создающим или использующим модель (простота), с моделируемым объектом, то есть с создаваемой системой (адекватность).

1.2 Выбор языка программирования

Язык программирования — машинно-независимые языки, которые согласно ГОСТ 19781-90, используют понятия и структуры удобные для восприятия человеком.

Язык программирования высокого уровня предназначены, прежде всего, для удобства и быстроты написания программ программистом. Высокоуровневые языки программирования стремятся не только облегчить решение тех или иных задач, но и упростить возможность использования программного обеспечения на различных платформах. Использование разнообразных интерпретаторов и трансляторов обеспечивает связь программ с различным оборудованием и операционными системами, при этом исходный код не подвергается изменениям.

Выбор Паскаля, как языка программирования в дальнейшем исследовании и построении данных списочных структур. Паскаль используется для обучения программированию и является базой для многих других языков программирования. Паскаль является языком структурного программирования, в основе которого лежит представление программы в виде иерархической структуры. Это дает гарантии того, что при внесении ряда изменений или исправлений ошибок в одном блоке не выйдет из строя какая-либо уже отлаженная части.

Для поставленной задачи построить модель «Движение снаряда» нужна математическая модель процесса, на основании, которой будут производится расчеты. Для построения математических моделей сложных объектов  нахождение решений занимает достаточно длительное время. Для построения модели нужно строить модель, включающую в себя интересующие входные и выходные параметры и искать решение численными методами.

Поэтому для построения модели «движение снаряда» используется язык программирования Pascal ABC. На построение модели займет достаточно не очень длительное время. Паскаль представляет удобную среду разработки, включающющую функциональный отладчик, который доступен программисту в любой момент, обладает высокой скоростью компиляции, а также с высокой скоростью выполнения откомпилированных программ, имеет встроенную возможность использовать вставки на языке ассемблера.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 СПЕЦИАЛЬНАЯ ЧАСТЬ

2.1 Описание алгоритма  программы

2.1.1 Входные данные

В программировании существует специальное понятие консоль, которое обозначает клавиатуру при вводе и монитор при выводе.

Для того чтобы получить данные, вводимые пользователем вручную (т.е. с консоли), применяются команды

Read (<список ввода>);

Readln (<список ввода>);

Первая из этих команд считывает все предложенные ей данные, оставляя курсор в конце последней строки ввода, а вторая - сразу после окончания ввода переводит курсор на начало следующей строки. В остальном же их действия полностью совпадают.

Структуры данных, которые следует использовать в программе, - простые переменные, наша простая задача, к счастью, позволяет выбрать простой вариант.

2.1.2 Выходные  данные

В языке программирования паскаль предусмотрен тот случай , когда нам нужно вывести на экран какую либо информацию , например результат работы программы или значение какой-либо переменной. Вывод в паскале можно осуществить за счет двух операторов вывода : write и writeln.

Writeln (‘введите количество дней’);

Write (‘введите наклон траектории в градусах’).

Первая из них, напечатав на экране все, о чем ее просили, оставит курсор в конце выведенной строки, а вторая переведет его в начало следующей строчки.

Список вывода может состоять из нескольких переменных или констант, записанных через запятую; все эти переменные должны иметь тип либо базовый, либо строчный. Переменные, составляющие список вывода, могут относиться к целому, вещественному, символьному или булевскому типам. В качестве элемента списка вывода кроме имен переменных могут использоваться выражения и строки.

Данные для решения поставленной задачи: начальная скорость 100 м/с, наклон траектории 45 градусов и количество точек 1000 в соответствие с рисунком 5 и 6.

Рисунок 5 - Входные данные

 

Рисунок 6 - Движение полета снаряда при траетории 45o

 

 

2.1.3 Алгоритмические зависимости

Существует большое количество алгоритмов, в которых команды должны быть выполнены последовательно одна за другой. Такие последовательности команд будем называть сериями, а алгоритмы, состоящие из таких серий, - линейными.

Алгоритм, в котором команды выполняются последовательно одна за другой, называется линейным алгоритмом.

Для того чтобы сделать алгоритм более наглядным, часто используют блок-схемы. Если исполнителем алгоритма является человек, то по блок-схеме легко проследить выполнение алгоритма. Каждый следующий шаг исполнения алгоритма указывают стрелки в соответствие с рисунком 7.

Рисунок 7 – Линейный алгоритм

В отличие от линейных алгоритмов в алгоритмическую структуру ветвление входит условие. В зависимости от выполнения или невыполнения условия реализуется одна или другая последовательность команд (серий).

В алгоритмической структуре "ветвление" в зависимости от истинности или ложности условия выполняется одна или другая серия команд.

Выделяют полную и неполную форму ветвления. Неполная форма имеет место, если по ветви "нет" не предусматривается реализация серии. Алгоритмическую структуру "ветвление" можно представить с помощью блок-схемы, изображенной на схеме в соответствие с рисунком 8.

Рисунок 8 – Алгоритмическая структура «ветвление»

В алгоритмическую структуру цикл входит серия команд, выполняемая многократно. Такая последовательность команд называется телом цикла.

Циклические алгоритмические структуры бывают двух типов:

1) Цикл со счетчиком. Алгоритмическая структура цикл со счетчиком используется, если известно заранее, какое число повторений тела цикла необходимо выполнить. Цикл со счетчиком может быть зафиксирован с помощью блок-схемы.

2) Цикл с условием используется, когда заранее неизвестно, какое количество раз должно повториться тело цикла. В таких случаях количество повторений зависит от некоторого условия.Цикл называется циклом с предусловием, если условие выхода из цикла стоит в начале, перед телом цикла. Цикл с предусловием может ни разу не выполниться, если условие окажется ложным.

Цикл называется циклом с постусловием, если условие выхода из цикла стоит в конце, после тела цикла. Цикл с постусловием выполняется обязательно, как минимум, один раз, независимо от того, истинно условие или нет.

Алгоритмическая структура цикл может быть зафиксирован с помощью блок-схем, представленных в соответствие с рисунком 9.

Рисунок 9 - Алгоритмическая структура «цикл»

 

2.2 Схема алгоритма  программы 

Схема алгоритмы программы представлена в приложение А.

2.3 Текст программы

Текст программы представлен в приложение B.

    1. Описание процедур и функций

Структура описания процедур и функций до некоторой степени похожа на структуру Паскаль – программы: имеется заголовок, раздел описаний и исполняемая часть. Раздел описаний содержит те же подразделы, что и раздел описаний программы: описания констант, типов, меток, проедур, функций, переменных. Исполняемая часть содержит собственно операторы процедур.

Формат описания процедуры имеет вид:

Procedure имя процедуры (формальные параметры);

Раздел описаний процедуры

begin - исполняемая часть процедуры, начало программы;

end – конец программы.

Формат описания функций:

Function имя функции (формальные параметры): тип результата;

Var – имя параметра и имя типа, отделяются друг от друга запятой. Ключевые слова var могут отсутствовать если:

1) Если параметры однотипны, то их имена можно перечислять  через запятую, указывая общее для них имя типа. При описании параметров можно использовать только стандартные имена типов, либо имена типов, определенные с помощью команды type, Список формальных параметров может отсутствовать.

2) Список фактических  параметров – это их перечисление  через запятую. При вызове фактические  параметры, как бы подставляются  вместо формальных, стоящих на  тех же местах в заголовке. Таким образом происходит передача входных параметров, затем выполняются операторы исполняемой части процедуры, после чего происходит возврат в вызывающий блок. Передача выходных параметров происходит непосредственно во время работы исполняемой части.

Вызов функции в Турбо Паскаль может производиться аналогичным способом, кроме того имеется возможность осуществить вызов внутри какого-либо выражения. В частности имя функции может стоять в правой части оператора присваивания, в разделе условий оператора if и т.д.

Для передачи в вызывающий блок выходного значения функции в исполняемой части функции перед возвратом в вызывающий блок необходимо поместить следующую команду:

Имя функции := результат;

При вызове процедур и функций необходимо соблюдать следующие правила:

1) количество фактических параметров должно совпадать с количеством формальных;

2) соответствующие фактические и формальные параметры должны совпадать по порядку следования и по типу.

Заметим, что имена формальных и фактических параметров могут совпадать. Это не приводит к проблемам, так как соответствующие им переменные все равно будут различны из-за того, что хранятся в разных областях памяти. Кроме того, все формальные параметры являются временными переменными - они создаются в момент вызова подпрограммы и уничтожаются в момент выхода из нее.

Одна и та же подпрограмма может вызываться неоднократно, выполняя одни и те же действия с разными наборами входных данных. Параметры, использующиеся при записи текста подпрограммы в разделе описаний, называют формальными, а те, что используются при ее вызове – фактическими.

    1. Инструкция по выполеннию программы

Для построении программы на Pascal ABC используем некоторую инструкцию:

1) Горячие клавиши

F2, Ctrl-S - сохранить файл

F3, Ctrl-O - загрузить файл

F12 - сохранить файл под новым именем

Ctrl-Shift-S - сохранить все  открытые файлы

Ctrl-Shift-0 ... Ctrl-Shift-9 - установить  закладку с номером 0...9

Ctrl-0 ... Ctrl-9 - перейти к  закладке с номером 0...9

Ctrl-Tab, Ctrl-Shift-Tab - перейти  к следующему/предыдущему окну редактора

2) Окно вывода

Под окном редактора расположено окно вывода. Оно предназначено для вывода данных процедурами write и writeln, а также для вывода сообщений об ошибках и предупреждений во время работы программы. Окно вывода может быть скрыто. Клавиша F5 и кнопка показывают/скрывают окно вывода. Для скрытия окна вывода используется также клавиша Esc. Окно вывода обязательно открывается при любом выводе в него. Для очистки окна вывода следует нажать комбинацию клавиш Ctrl-Del или кнопку .

3)Окно ввода

Окно ввода открывается при выполнении процедур read и readln в ходе работы программы: Ввод данных в окно ввода сопровождается эхо-выводом в окно вывода (см. рис). После нажатия клавиши Enter данные из окна ввода попадают в соответствующие переменные, окно ввода закрывается,  и программа продолжает работать дальше.

4)Запуск и остановка  программы

Информация о работе Моделирование Полета артиллерийского снаряда