Dim v0, h0, D, a, L As Double



Моделирование физических процессов.

Рассмотрим процесс решения задачи на конкретном примере:

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

На первом этапе обычно строится описательная информационная модель объекта или процесса. В нашем случае с использованием физических понятий создается идеализированная модель движения объекта. Из условия задачи можно сформулировать следующие основные предположения:

1) тело мало по сравнению с Землей, поэтому его можно считать материальной точкой;

2) скорость бросания тела мала, поэтому:

— ускорение свободного падения считать постоянной величиной;

— сопротивлением воздуха можно пренебречь.

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

Из курса физики известно, что описанное выше движение является равноускоренным. При заданных начальной скорости (v0), начальной высоте (h0), угле бросания зависимость дальности полета (L) можно описать следующими математическими формулами:

Зависимость координат от времени:

отсюда:

Получаем квадратное уравнение:

Решаем это уравнение:

Дальность полета найдем по формуле:

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

· создание алгоритма решения задачи и его кодирование на одном из языков программирования;

· формирование компьютерной модели с использованием одного из приложений (электронных таблиц, СУБД и т. д.).

Для реализации первого пути надо построить алгоритм и закодировать его на одном из языков программирования, например, на языке Visual Basic.

В программе используются две константы:

Const PI = 3.14159265

Const g = 9.8

Дальность полета, если известны начальные данные, можно определить так:

D = (2 * v0 * Sin(a * (PI / 180))) ^ 2 + 4 * g * 2 * h0

t1 = (2 * v0 * Sin(a * (PI / 180)) + Sqr(D)) / (2 * g)

t2 = (2 * v0 * Sin(a * (PI / 180)) - Sqr(D)) / (2 * g)

Корень t2 не удовлетворяет нашей задаче. Значит время полета - это t1.

L = v0 * Cos(a * (PI / 180)) * t1

Определить искомый угол можно используя следующий алгоритм:

aa = 0 'искомый угол

maxL = 0 'максимальная дальность полета

For a = 0 To 90

D = (2 * v0 * Sin(a * (PI / 180))) ^ 2 + 4 * g * 2 * h0

t1 = (2 * v0 * Sin(a * (PI / 180)) + Sqr(D)) / (2 * g)

L = v0 * Cos(a * (PI / 180)) * t1

If L >= maxL Then

maxL = L

aa = a

End If

Next

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

Создайте новый стандартный проект и разместите на форме все необходимые компоненты, установите их свойства.

 

Объект Свойство Значение

Форма

имя frmFlight
Caption Движение тела
Frame Caption Начальные данные:
Frame Caption Масштаб:
Label (надпись) Caption Высота (м):
Label (надпись) Caption Скорость (м/с):
Label (надпись) Caption Угол (град):
Label (надпись) Caption Макс. дальность достигается при угле:
Label (надпись) Caption Максимальная дальность:
Label (надпись) Caption Минимальное значение X:
Label (надпись) Caption Минимальное значение Y:
Label (надпись) Caption Максимальное значение X:
Label (надпись) Caption Максимальное значение Y:

Текстовое поле

имя txtH0
Text 0

Текстовое поле

имя txtV0
Text 0

Текстовое поле

имя txtA0
Text 0

Текстовое поле

имя txtMinX
Text ( пустая строка)

Текстовое поле

имя txtMaxX
Text ( пустая строка)

Текстовое поле

имя txtMinY
Text ( пустая строка)

Текстовое поле

имя txtMaxY
Text ( пустая строка)

Кнопка

имя cmdCalculate
Caption Вычислить угол

Кнопка

имя cmdPaint
Caption Построить график

Кнопка

имя cmdClear
Caption Очистить

Кнопка

имя cmdNewScale
Caption Задать масштаб

Графическом поле (PictureBox)

имя picGrafic
Appearance 0-плоская
AutoRedraw true

Напишем код проекта.

В разделе "General" опишем некоторые переменные и константы:

Dim v0, h0, D, a, L As Double


Дата добавления: 2022-06-11; просмотров: 16; Мы поможем в написании вашей работы!

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






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