Моделирование в системе программирования 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) На закрепление знаний: Разработать на языке 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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|