Автор работы: Пользователь скрыл имя, 02 Апреля 2012 в 23:40, реферат
Слово "БЕЙСИК" (BASIC) - "базовый, основной" - образовано из начальных букв английского выражения "Универсальный язык символического кодирования для начинающих". Это "для начинающих" долго вызывало пренебрежение программистов, причём подобное пренебрежение не исчезло до сих пор, несмотря на наличие профессиональных изданий VB.
Введение
1. Что может Visual Basic
2.Установка и настройка VB
3.Структкра проекта VB
4.Среда разработки VB
5.Использование таймера в VB
Заключение
Литература
При этом надо учитывать разницу в масштабах координаты Х1 и значения HScroll. Их согласование обеспечивается выражением:
X1 = Label1 * 0.55 + 500
В принципе, для каждого конкретного случая, значения коэффициентов (0,55 и 500) могут быть различными и требуют индивидуального подбора.
Оператор CLS обеспечивает обнуление изображения цели после каждого обращения к HScroll.
Вторым шагом будет
Private Sub VScroll1_Change()
Label2 = 80 - VScroll1
End Sub
Общий вид содержания формы представлен на Рис. 7.
Рис. 7.
Следующим шагом будет введение активной кнопки, нажатием на которую будет осуществляться старт (Пуск, Выстрел). Для этого на панели управления выберем новый элемент Command1 и устанавливаем его в любом удобном месте рабочей области формы. При этом в свойствах элемента Properties-Command1 в строке Caption пропишем новое имя «Start». Активировав содержание формы запишем для элемента Command1 следующие строки, взятые из уже решенной задачи полета ядра в QBasic, правда пока без учета сопротивления воздуха:
Private Sub Command1_Click()
x0 = 480
y0 = 4440
X2 = x0
Y2 = y0
v = 150
g = 9.8
a = Label2
f = a * 3.14 / 180
100 q = 0.0001
t = t + q
s = v * t * Cos(f) * 2
h = (v * t * Sin(f) - (g * t ^ 2) / 2) * 5.5
Line (X2, Y2)-(x0 + s, y0 - h), 14
X2 = x0 + s
Y2 = y0 - h
If h < 0 Then GoTo 200
GoTo 100
200 End Sub
Значение координат х0 и у0 (начальная точка старта) подбираются индивидуально.
В целом, на этом, задачу можно считать выполненной. На Рис.8 и Рис.9 отображен общий вид формы.
Для большей наглядности можно вести еще ряд элементов, изменить цвет, ввести коэффициент сопротивления воздуха. Рис. 10 и рис. 11 отображает общий вид формы.
Рис. 8.
Рис. 9
Рис. 10
Рис. 11
5 Использование таймера в VB
В большинстве случаев решаемые
задачи в той или иной мере привязаны
к реальному времени. В VB так же
при решении задач можно
В предлагаемом примере, решена задача наведения в ручную ракеты (ПТУРС) на цель. Для решения задачи использованы пять таймеров, причем данное решение не является самым удачным и имеет ряд погрешностей. Но для получения начальных навыков в программировании в VB вполне приемлем. Общий вид формы представлен на Рис. 12.
Рис.12.
Особенностью составления, в этом случае, программы является то, что в самом начале указывается перечень элементов, которые, так или иначе, зависят от таймеров:
Private Sub Form_Load()
Label1.Caption = 0
Label2.Caption = 0
Label3.Caption = 0
Label4.Caption = 0
Label5.Caption = 0
Label6.Caption = 0
Label13.Caption = 0
Label15.Caption = 0
Label17.Caption = 0
End Sub
Первый таймер (Private Sub Timer1_Timer()), запускается сразу после начала программы, так как по умолчанию в свойствах элемента Timer1 в графе interval установлена 1, что соответствует 1мл.сек. При этом положение цели (танка) начинает меняться в соответствию с записью:
Label1.Caption = Label1.Caption + Timer1.Interval
a = Label1.Caption
Timer1 работает до тех пор пока ракета не выйдет за приделы 13000 или не попадет в цель:
If X0 > 13000 Then Timer1.Interval = 0
If Label17.Caption < 150 Then Timer1.Interval = 0
Остальные таймеры в начальный момент отключены, т.е. для каждого таймера в графе interval установлен 0.
Работа таймера 3 начинается после нажатия кнопки ПУСК:
Private Sub Command1_Click()
Rem старт ПТУРС
Timer3.Interval = 1
End Sub
Полет ракеты описывается следующим блоком:
T = Timer3.Interval
Rem Полет ПТУРС
X1 = V * T * Cos(f - Rnd * 0.1)
Y1 = V * T * Sin(f + Rnd * 0.1)
Label5.Caption = (Label5.Caption + X1)
Label4.Caption = (Label4.Caption + Y1)
Label6.Caption = 12000 - a * k
X0 = Label5.Caption
Y0 = -Label4.Caption
Начальный угол стрельбы задается положением скрола и может меняться в пределах от +25 до -15. Положение скрола, по умолчанию, в свойствах установлено как: max 40; value 10.
А строка:
Label3.Caption = (25 - VScroll1)
определяет, что начальный угол стрельбы Label3.Caption =15.
Таймер 2 начинает работать, если высота полета ПТУРС становится меньше -50, т.е. снаряд врезался в землю:
If Y0 > 50 Then Timer2.Interval = 1,
при этом запускается программа взрыва:
Private Sub Timer2_Timer()
Rem: фейерверк
Rem: a угол разлета
Rem: r радиус разлета, n количество осколков
Rem: коэффициенты 1 и 4 определяют ширину и высоту разлета
X1 = Label5.Caption
Y1 = -Label4.Caption
r = 200
n = 500
Dim x(10), y(10)
Randomize (Label2.Caption)
For i = 1 To 2
a = -6.28 * Rnd / 2
rn = r * Rnd
xc = X1 + 400 + rn * 1.5 * Cos(a)
yc = Y1 + 5600 + rn * 5 * Sin(a)
PSet (xc, yc), &HFFFF80 * Rnd + &HC0C0FF * Rnd
Next
If Label1.Caption > 200 Then Timer2.Interval = 0
End Sub
При этом таймер 3 остановится при дальнейшем опускании снаряда до -100:
If Y0 > 100 Then Timer3.Interval = 0
При достижении ракеты цели по дальности:
If Label5.Caption > 11500 - (Label1.Caption) Then Timer4.Interval = 1
начинает работать таймер 4. В этом случае проверяется высота полета, и если она меньше 200 включается таймер 5:
Private Sub Timer4_Timer()
If Label4.Caption < 200 Then Timer5.Interval = 1
End Sub
Запускается программа взрыва:
Private Sub Timer5_Timer()
X0 = Label5.Caption
Y0 = -Label4.Caption
r = 100
n = 100
Dim x(100), y(100)
Randomize (Label2.Caption)
For i = 1 To 5
a = -6.28 * Rnd / 2
rn = r * Rnd
xc = X0 + 400 + rn * 3 * Cos(a)