Курсовая работа по дисциплине
Высокоуровневые методы информатики и программирования
на тему:
Движение тела, брошенного под углом к горизонту: программное обеспечение
Содержание
Введение
1. Описание предметной области
1.1 Предметная область
1.1.1 Развитие направления
1.1.2 Движение тела, брошенного под углом к горизонту
2. Рабочий проект
2.1 Общие сведения о работе программе (на чем написано, какие технологии использованы)
2.2 Основные процедуры/классы системы
2.3 Инсталляция программного продукта
2.4 Руководство пользователя
2.5 Сообщения системы
2.6 Требования к техническому и программному обеспечению
2.6.1 Требования к программному обеспечению
2.6.2 Требования к техническому обеспечению
2.7 Тестирование системы
Заключение
Список литературы
Приложение 1. Блок-схема
Приложение 2. Программа на оптическом носителе
Меха́ника (греч. μηχανική — искусство построения машин) — область физики, изучающая движение материальных объектов и взаимодействие между ними. Важнейшими разделами механики являются классическая механика и квантовая механика.
Движение тела, брошенного под углом к горизонту, необходимо рассматривать, как криволинейное движение, которое в свою очередь является одним из разделов механики.
Целью данной курсовой работы является закрепление практических навыков программирования и разработка программы, реализующей модель движения тела, брошенного под углом к горизонту.
Практической значимостью данной работы является автоматизация расчетов физических величин движения тела, брошенного под углом к горизонту и, как следствие, экономия времени преподавателей или студентов при решении указанной задачи.
движение тело программный обеспечение
1. Описание предметной области
1.1 Предметная область
Меха́ника (греч. μηχανική — искусство построения машин) — область физики, изучающая движение материальных объектов и взаимодействие между ними. Важнейшими разделами механики являются классическая механика и квантовая механика.
Движение тела, брошенного под углом к горизонту, необходимо рассматривать, как криволинейное движение, которое в свою очередь является одним из разделов механики.
1.1.1 Развитие направления
Изучение особенностей такого движения началось довольно давно, еще в XVI веке и было связано с появлением и совершенствованием артиллерийских орудий.
Представления о траектории движения артиллерийских снарядов в те времена были довольно забавными. Считалось, что траектория эта состоит из трех участков: А - насильственного движения, В - смешанного движения и С - естественного движения, при котором ядро падает на солдат противника сверху (рис. 1.1).
Рис. 1.1. Траектория движения артиллерийских снарядов
Законы полета метательных снарядов не привлекали особого внимания ученых до тех пор, пока не были изобретены дальнобойные орудия, которые посылали снаряд через холмы или деревья - так, что стреляющий не видел их полета.
Сверхдальняя стрельба из таких орудий на первых порах использовалась в основном для деморализации и устрашения противника, а точность стрельбы не играла вначале особенно важной роли.
Близко к правильному решению о полете пушечных ядер подошел итальянский математик Тарталья, он сумел показать, что наибольшей дальности полета снарядов можно достичь при направлении выстрела под углом 45° к горизонту. В его книге "Новая наука" были сформулированы правила стрельбы, которыми артиллеристы руководствовались до середины ХVII века.
Однако, полное решение проблем, связанных с движением тел брошенных горизонтально или под углом к горизонту, осуществил все тот же Галилей. В своих рассуждениях он исходил из двух основных идей: тела, движущиеся горизонтально и не подвергающиеся воздействию других сил будут сохранять свою скорость; появление внешних воздействий изменит скорость движущегося тела независимо от того, покоилось или двигалось оно до начала их действия. Галилей показал, что траектории снарядов, если пренебречь сопротивлением воздуха, представляют собой параболы.Галилей указывал, что при реальном движении снарядов, вследствие сопротивления воздуха, их траектория уже не будет напоминать параболу: нисходящая ветвь траектории будет идти несколько круче, чем расчетная кривая.
Ньютон и другие ученые разрабатывали и совершенствовали новую теорию стрельбы, с учетом возросшего влияния на движение артиллерийских снарядов сил сопротивления воздуха. Появилась и новая наука – баллистика. Прошло много-много лет, и теперь снаряды движутся столь быстро, что даже простое сравнение вида траекторий их движения подтверждает возросшее влияние сопротивления воздуха.
На рисунке 1.2 идеальная траектория движения тяжелого снаряда, вылетевшего из ствола пушки с большой начальной скоростью, показана пунктиром, а сплошной линией - действительная траектория полета снаряда при тех же условиях выстрела.
Рис. 1.2.
В современной баллистике для решения подобных задач используется электронно-вычислительная техника - компьютеры, а мы пока ограничимся простым случаем - изучением такого движения, при котором сопротивлением воздуха можно пренебречь. Это позволит нам повторить рассуждения Галилея почти без всяких изменений.
1.1.2 Движение тела, брошенного под углом к горизонту
Точное описание характера движения тела, брошенного под углом к горизонту возможно только при рассмотрении некоторой идеальной ситуации. Будем считать, что влиянием воздуха на движение можно пренебречь.
На рисунке 1.3 показана траектория движения шарика, брошенного под некоторым углом к горизонту. Траекторией движения называется кривая, отображающая положение тела в любой момент движения этого тела в выбранной системе координат. Как покажет дальнейший анализ, это знакомая из алгебры кривая, называемая параболой.
Рис. 1.3. Траектория тела, брошенного под углом а к горизонту
Если пренебречь влиянием воздуха на тело, то на тело, брошенное под углом к горизонту, как и на тело, свободно падающее, или на тело, получившую начальную скорость, направленную вертикально, действует только сила тяжести. Как бы тело не двигалось, сила тяжести может сообщить ему только ускорение g, направленное вниз. Этим и определяются и траектория движения тела, и характер его движения.
Пусть из некоторой точки O брошено тело с начальной скоростью v0, направленной под углом α к горизонту. Примем за начало отсчета координат точку, из которой брошено тело. Ось X направим горизонтально, а ось Y – вертикально вверх. Из рисунка видно, что проекции вектора v0 на оси X и Y соответственно равны v0cosα и v0sinα:
Так как на тело действует только сила тяжести, то при движении тела будет изменяться только проекция скорости v0y. Проекция же v0x изменяться не будет так же, как при прямолинейном равномерном движении:
(1)Координата же y изменяется так же, как при прямолинейном равномерном движении:
(2)Чтобы найти траекторию движения тела, надо подставить в уравнения последовательно увеличивающиеся значения t и вычислить координаты x и y и для каждого значения t при известных значениях модуля начальной скорости v0 и угла α. По полученным данным значениям x и y нанести точки, изображающие последовательное положение тела. Соединив их плавной кривой, мы и получим траекторию движения тела. Она окажется подобной той, что изображена на рисунке 1.1. Уравнение траектории можно очень просто получить из выражений (1) и (2). Подставив выражение для времени, полученное из выражения (1) в выражение (2), легко получаем уравнение траектории движения шарика, которая оказывается параболической:
2. Рабочий проект
2.1 Общие сведения о работе программе (на чем написано, какие технологии использованы)
Программа написана на языке высокого уровня VisualBasic.
При разработке были использованы следующие технологии:
· работа с массивами данных;
· работа с таблицей DataGridView;
· работа с библиотекой ZedGraph.dllи компонентом ZedGrarh, используемого для вывода графиков на экран;
· работа с компонентом MenuStrip, используемого для создания меню программы.
2.2 Основные процедуры/классы системы
В программе используются следующие основные процедуры:
1. Вычисление координат Xи Yв момент времени tи заполнение списка координат list1 данными:
Dim t As New Integer
Dim Vx, Vy, x, y, g, rad, b, a1 As Double
g = 9.80665
Vx = 0, Vy = 0
x = 0, y = 0
rad = Math.PI / 180
Dim list1 As New ZedGraph.PointPairList
Dim ex As New Boolean
ex = False
t = 0
While ex = False
Vx = V * Math.Cos(a * rad)
x = Vx * t
Vy = V * Math.Sin(a * rad)
y = Vy * t - g * t * t / 2
If y < 0 Then
Dim x1, x2, y1, y2 As Double
x2 = x
y2 = y
x1 = Vx * (t - 1)
y1 = Vy * (t-1) - g * (t-1) * (t-1) / 2
a1 = (x2 - x1) / (y2 - y1)
b = y1 - a1 * x1
x = -b / a1
y = 0
ex = True
End If
list1.Add(x, y)
t = t + 1
End While
CreateGraph(zg1, list1)
zg1.Refresh()
2. Вывод графика на экран
Private Sub CreateGraph(
ByVal zg As ZedGraph.ZedGraphControl,
ByVal list1 As ZedGraph.PointPairList)