Результаты моделирования программы на ЭВМ

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ Государственное образовательное учреждение высшего профессионального образования «Ижевский государственный технический университет»  

Курсовая работа

по курсу «Технология программирования»

на тему: «Объектно-ориентированное программирование»

Вариант 8

 

Разработал студент группы                                     Воскресенских М.Е.

Принял       к.т.н., доцент кафедры ВТ                   Гафаров Р.М.

 

 

Ижевск 2007

Содержание

Введение ………………………………………………………………… 3
1. Задание ………………………………………………………………... 5
2. Цель работы ………………………………………………………….. 5
3. Постановка задачи ………………………………………………….. 5
4. Анализ и разработка алгоритма …………………………………... 5
5. Алгоритм программы ………………………………………………. 9
6. Текст программы ……………………………………………………. 19
7. Результаты моделирования программы на ЭВМ ………………. 25
8. Выводы ……………………………………………………………….. 26
9. Литература …………………………………………………………… 27

 

Введение

Практически во всех областях человеческой деятельности применяются электронные вычислительные машины. Мы так привыкли к ним, что часто их просто не замечаем, а иногда даже и не догадываемся об их существовании. Покупая билет на поезд или самолет, разговаривая с друзьями в другом городе по телефону (перечень этот можно продолжать очень долго), как-то уже и не задумываешься о причастности к этому ЭВМ. Вместе с тем ЭВМ могут выполнять и гораздо более сложную работу. Это «безлюдные производства» -стыковки космических кораблей, посадки спускаемых аппаратов на далекие планеты и т. д. Здесь дело также не обходится без вычислительных машин. Но сколь бы далеко по своей сложности ни стояли друг от друга задачи, например, решение квадратного уравнения или управление сложным производством, их решение на ЭВМ имеет ряд общих этапов. При решении одних задач некоторые этапы могут быть вырожденными. В других задачах какие-то этапы могут оказаться крайне трудоемкими, а иногда и неразрешимыми. Какие-то этапы могут разбиваться на более мелкие части и т. д.

Обычно при решении отдельных задач или комплекса взаимосвязанных задач на ЭВМ выделяются следующие этапы:

- разработка математической модели решаемой задачи;

- разработка методики решения и определение ограничений на
решаемую задачу;

- разработка алгоритма и запись его на некотором языке;

- программирование решения задачи на одном из языков
программирования;

- тестирование и отладка программы или комплекса программ;

- решение задачи на ЭВМ.

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


Задание

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

Цель работы

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

Постановка задачи

Необходимо написать программу, которая обеспечила бы движение геометрической фигуры (шара) в пределах ограниченного пространства. Ограниченным пространством в данной программе являются рамка, расположенная по периметру экрана и линия, задаваемая математической функцией y=f(x) в нижней части экрана. Необходимо учесть, что функция задается случайными числами и изменяется при нажатии клавиши Space, при этом же меняются начальные координаты геометрической фигуры (шара). Движение геометрической фигуры (шара) происходит под действием сил гравитации. Окончание работы программы должно происходить при нажатии клавиши Esc.

Анализ и разработка алгоритма

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

dx = 1e6

AN = (F(x+dx)-F(x))/dx

N = (cos(AN), sin(AN))

AVI = -AV + 2*AN + 180

VI = (|V|*cos(AVI), |V|*sin(AVI)), где

 

Vector = (PX, PY) - Вектор

Px – Составляющая по оси Х

Py – Составляющая по оси Y

|Vector| – Длина вектора Vector

Cos(A) – Косинус угла A

Sin(A) – Синус угла A

А – угол в радианах

F(x) – Функция кривой поверхности от Х

Dx – Приращение, для вычисления нормали к функции

AN – Угол вектора нормали

X – точка, в которой произошло соприкосновение

 

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

V – Вектор скорости движения шара

|V| – Длина вектора скорости шара

AV – Угол наклона к горизонтальной оси

N – Вектор нормали к точке соприкосновения шара

 

 

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

VI – Полученный вектор скорости

AVI – Угол полученного вектора скорости

Примем за первоначальное местоположение мяча радиусом r координаты x и y, которые задаются случайными числами. Поскольку движение по вертикали происходит под действием постоянной силы тяжести, то оно является равноускоренным до достижения поверхности земли и равнозамедленно до достижения верхней точки на траектории; движение же по горизонтали является равномерным.

Рассмотрим эту задачу без учета сопротивления воздуха и геометрической формы и размеров предмета. Будучи брошенным под углом α  к горизонту с начальной скоростью v0, тело летит, если не учитывать сопротивление воздуха, по параболе, и через некоторое время падает на землю.

Разложим скорость на горизонтальную и вертикальную составляющие:

vx(0)=v0 cos α,

vy(0)=v0 sin α,

тогда

 

модуль вектора v3 из этого треугольника равен

 

Следовательно, v3 – вектор скорости шара.

Из законов физики нам известно, что ускорение, с которым падают на Землю тела в пустоте, называют ускорением свободного падения. У поверхности земного шара модуль ускорения свободного падения примерно равен 9,8 м/с2. Сила, под действием которой тело приобретает ускорение свободного падения, пропорционально массе тела. Это сила притяжения, действующая со стороны земли на все тела, называется силой тяжести.

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

При направлении движения мяча с изменением его местоположения относительно направления оси Y меняется знак с «+» на «-» при движении вверх и с «-» на «+» при движении вниз.

Изменение траектории движения мяча после соприкосновения его с какой-либо поверхностью происходит следующим образом: рассчитывается угол наклона вектора нормали к оси параллельной оси X по формуле
AN = (F(x+dx)-F(x))/dx. Рассчитывается вектор нормали к поверхности в точке соприкосновения. Затем рассчитывается угол наклона между вектором скорости мяча и этой же оси. Далее по формуле AVI = -AV + 2*AN + 180 рассчитывается угол полученного вектора скорости. Затем происходит вычисление полученного вектора скорости по формуле

VI = (|V|*cos(AVI), |V|*sin(AVI)).

 

 

5. Алгоритм программы

 

 

 

 

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

Program Balls;

 

Листинг программы

 

end.

Результаты моделирования программы на ЭВМ

 

 

Выводы

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

Таким образом, цель задачи достигнута.

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

Литература

 

1. Выгодский М.Я. Справочник по элементарной математике. – Изд. 27-е, испр. – М.: Наука. Главная редакция физико-математической литературы, 1986.

2. Кабардин О.Ф. Физика: Справ. материалы: Учебное пособие для учащихся. – 3-е изд. – М.: Просвещение, 1991.

3. Карасев П.Н. «Задачи по информатике» Учебное пособие для учащихся и учителей средних учебных заведений. Изд. «Учитель-АСТ»,
Волгоград, 2001 г.

4. Колмогоров А.Н., Семенович А.Ф., Черкасов Р.С. Геометрия, Учебное пособие для 6-8 классов средней школы. – М.: «Просвещение», 1980.

5. Под редакцией Т.Мартынюка. Турбо Паскаль 7.0. Самоучитель.- СПб.: Питер; К.: Издательская группа BHV, 2002 г.

6. Немнюгин С.А. Turbo Pascal. Программирование на языке высокого уровня: Учебник для вузов. 2-е изд. – СПб.: Питер, 2006.

7. Перминов О.Н. «Программирование на языке Паскаль» Изд. «Радио и связь», Москва, 1988 г.

8. Чернов А.А.. Практикум по программированию. Издательство   «Учитель», Волгоград, 2004 г.

 

 


Дата добавления: 2018-04-05; просмотров: 281; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!