Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Моделирование в системе программирования Visual Basic.




На первоначальное усвоение знаний:Найти графическим методом корень уравнения х3 = sin(x), которое не имеет точного алгебраического решения.

Алгоритм:

1) Разместить на форме графическое поле picGraph, в котором будет производиться построение графика.

2) Разместить на форме кнопку cmd 1 и создать событийную процедуру построения графика, в которой будет:

• установлен масштаб;

• в цикле осуществлено построение графика функции;

•     нарисованы оси координат и в циклах напечатаны на них числовые шкалы;

• в цикле выведены вертикальные линиикоординатной сетки.

3) Поместить на форму кнопку cmd 2 и создать для нее событийную процедуру построения графика функции у = х3:

Private Sub cmd2_Click()

For sngX = -10 To 10 Step 0.01. PSet (sngX, sngX ^ 3), vbRed

Next sngX

End Sub

4) Для более точного решения уравнения добавить в существующую процедуру построения графика первой функции у = sinx координатную сетку:

Координатная сетка For bytl = -10 То 10

picGraph. Line (bytI, 2)-(bytI, -2), vbCyan

Next bytI

For bytl = -2 To 2 Step 0.2 picGraph. Line (-10, bytI)-(10, bytI)

Next bytI

5)
Запустить проект и щелкнуть по кнопкам График 1 и График 2.

На закрепление знаний: Разработать на языке Visual Basic компьютерную модель, позволяющую доказать методом Монте-Карло, что выпадение монеты «орлом» или «решкой» равновероятно. О - количество точек («орел»), попавших в левую часть квадрата, координаты которых удовлетворяют условию: -1 <= X And X < О And -1 <= Y And Y <= 1.

R - количество точек («решка»), попавших в правую часть квадрата, координаты которых удовлетворяют условию: О < X And X <= 1 And -1 <= Y And Y <= 1.

Алгоритм:

1) Поместить на форму графическое поле, в котором будет отображаться процесс случайной генерации точек, в нем нарисовать квадрат со стороной, равной 1, и оси координат.

2) Поместить на форму текстовое поле txtN для ввода числа генерируемых точек, поле txtO для вывода числа точек, попавших в левую половину квадрата («орел»), и поле txtR для вывода числа точек, попавших в правую половину квадрата («решка»).

)   Поместить на форму кнопку и создать для нее событийную процедуру, которая обеспечивает ввод количества генерируемых точек в переменную IngN, генерацию случайных точек, подсчет в переменной IngO количества точек попавших в левую половину квадрата и подсчет в переменной IngR количества точек попавших в правую половину квадрата:

Dim dblX, dblY As Double, I, IngN, IngO, IngR As Long

Private Sub cmdl_Click()= 0= 0= txtN.Text.Cls. Scale (-1, 1)-(1, -1) picl. Line (-1, 1)-(1, -1),, В

Генерация точек For I = 1 To IngN dblX = 2 * Rnd - 1 dblY = 2 * Rnd - 1 picl .PSet (dblX, dblY)

If -1 <= dblX And dblX < 0 And -1 <= dblY And dblY <= 1 Then IngO = IngO + 1

Else

IngR = IngR + 1 End If Next I. Text = IngO txtR.Text = IngR 'Ось X. Line (-1, 0)-(l, 0) For I = -1 To 1 picl .PSet (I, 0) picl. Print I Next I 'Ось Y. Line (0, -l)-(0, 1)

For I = -1 To 1 .PSet (0, I). Print I

Next I

End Sub

 

4) Ввести количество генерируемых точек. После щелчка по кнопке Пуск в графическом поле будет отображен процесс генерации случайных точек, а в текстовые поля выведены количества выпадений «орла» и «решки».

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

1) Разместить на форме шесть текстовых полей:

· txtVO для ввода значений начальной скорости;

·   txtA для ввода угла бросания;

·   txtS для ввода расстояния до площадки;

·   txtL для ввода длины площадки;

· txtX для вывода координаты х падения мячика;

·   txtM для вывода текстового сообщения о результатах броска.

2) Поместить на форму метки для обозначения полей и единиц измерения.

3) Поместить на форму кнопку и создать для нее событийную процедуру, которая обеспечивает присвоение переменным значений, введенных в текстовые поля, вычисление координаты х падения мячика и вывод результатов на форму с использованием конструкции выбора Select Case:

Const G As Single = 9.81 Const Pi As Single = 3.14 Dim VO, A, S, L As Double Private Sub CmdCalc_Click () r Ввод начальных значений VO = Val(txtVO.Text) A = Val(txtA.Text) S = Val(txtS.Text) L = Val(txtL.Text) ' Попадание в площадку = VO Л 2 * Sin (2 * A * Pi / 180) / G.Text = X

Select Case XIs < S

txtM.Text = "Недолет"

Case Is > S+L

txtM.Text = "Перелет"

Case Else

txtM.Text = "Попадание" End Select End Sub

 

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

4) Поместить на форму графическое поле, в котором будет осуществляться построение графика, и дополнить программный код событийной процедурой:

Построение графика

For Т = 0 То 10 Step 0.1

Y = V0 * Sin (А * Pi / 180) * Т - G / 2

X = V0 * Cos (А * Pi / 180) * T picl. Scale (0, 15) - (S + 5, -5) picl .PSet (X, Y) Next T f Ось X. Line (0, 0)- (50, 0) For I = 0 To 50 Step 5 .PSet (I, 0) picl. Print I Next I

'Ось Y

picl. Line (0, -5)-(0, 15) For I = -5 To 20 Step 5 picl .PSet (0, I) picl. Print I Next I ' Площадка. Line (S, 0.2)-(S + L, 0.2)

 

5) Запустить проект и ввести значения начальной скорости, угла, расстояния до площадки и ее длины. Щелкнуть по кнопке Бросок. В текстовых полях будут выведены результаты, а в графическом поле появится траектория движения тела. Подобрать значения начальной скорости и угла бросания, обеспечивающие попадание в мишень.

6) Удалить с формы текстовые поля txtA для ввода значения угла и txtM для вывода результатов и графическое поле picl. Поместить на форму текстовые поля txtP для ввода точности определения диапазона углов и txtAl для вывода значений этого диапазона.

7) Внести изменения в программный код событийной процедуры:

 

Private Sub CmdCalc_Click() г Вв од начальных значений VO = Val(txtVO.Text) S = Val(txtS.Text) L = Val(txtL.Text) P = Val(txtP.Text) txtAl.Text = "" For A = 0 To 90 Step P 'Попадание в площадку X = VO A 2 * Sin (2 * A * Pi / 180) / G

If S <= X And X <= S + L Then.Text = txtAl.Text + Str(A)IfASub

 

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

Занимательные и развивающие задачи:Логическая задача. Учитель математики просит поставить ему первый или второй урок, учитель информатики - первый или третий, а учитель физики - второй или третий уроки. Какие и сколько вариантов расписания можно составить, учитывая пожелания учителей?

Алгоритм:

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

Private Sub cmdl_Click()

For M1 = -1 To 0

For M2 = -1 To 0

For I1 = -1 To 0

For I3 = -1 To 0

For F2 = -1 То 0

For F3 = -1 То 0

If (M1 Or М2) And (I1 Or 13) And (F2 Or F3) And (Not M1 Or Not M2 ) And (Not I1 Or Not I3) And (Not F2 Or Not F3) And (Not M1 Or Not I1) And (Not M2 Or Not F2) And (Not I3 Or Not F3) = -1

Then frml. Print -M1; -M2; -I1; -I3; -F2; -F3

Next F3

Next F2

Next I3

Next I1

Next M2

Next M1

End Sub

 

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

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...