Реферат по предмету "Информатика, программирование"


Использование языка программирования Visual Basic для решения математических задач

Аттестационная работа по информатике за 2005 - 2006 учебный год.Кравченко Валерии ученицы 10 Г класса Лицея № 1


2006 г.


Visual Basic


В моей предыдущей работе «Компьютерное моделирование движения тел» рассматривались возможности языка программирования QBasic для решения математических (профессиональных) задач в условиях обучения учащихся средних школ и профессиональных училищ.


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


Так что же такое Visual Basic?


Перед начинающими программистами всегда встаёт один и тот же вопрос, а именно, какой язык программирования выбрать? На чём программировать? Конечно лучше начинать с лёгкого и в то же время мощного языка - Visual Basic (VB). Изучив приёмы программирования на VB, можно без особых усилий изучить другие языки, такие как Pascal, C++ и др.


Слово "БЕЙСИК" (BASIC) - "базовый, основной" - образовано из начальных букв английского выражения "Универсальный язык символического кодирования для начинающих". Это "для начинающих" долго вызывало пренебрежение программистов, причём подобное пренебрежение не исчезло до сих пор, несмотря на наличие профессиональных изданий VB.


Первый IMB PC имел 16-разрядный бейсик - BASICA, разработанный IBM, а затем вытесненный майкрософтским GW-BASIC и QUICK-BASIC. В последнем была убрана нумерация строк и добавлен компилятор, превращающий бейсик программу в полноценный exe файл. Наконец в 1992г. фирмой Microsoft был выпущен VB 1.0 - очень простой язык программирования для Windows 3.1. Затем были выпущены VB 3.0, VB 4.0, VB 5.0 и наконец VB 6.0. Последние две версии мало чем отличаются, в шестой версии улучшено ядро и добавлены несколько новых функций. Существует ещё язык макросов для приложений Microsoft Office (Word, Excel и т.п.). Он называется VBA (Visual Basic for Application). С его помощью можно манипулировать приложениями Office.


Приложения написанные на Visual Basic отличаются от обычных приложений тем, что требуют для своей работы библиотеку msvbvmX0.dll, которая должна присутствовать в каталоге Windows\System. В роли X выступает версия компилятора VB. Для VB5 - msvbvm50.dll, для VB6 - msvbvm60.dll. Эти библиотеки идут в комплекте с WinME (обе) и Win98 (только msvbvm50.dll), и естественно с более новыми версиями этих ОС.


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


Что может Visual Basic?


В принципе, возможности Visual Basic ничем не ограничены. Вы можете расширять возможности VB посредством использования дополнительных функций. Visual Basic позволяет использовать библиотеки динамической компоновки (DLL библиотеки), которые также могут широко расширить возможности Visual Basic. Эти библиотеки могут быть написаны на любом языке программирования.


На VB можно написать любую программу, от обслуживающих рутинные операции ввода данных, до сложных информационных и коммуникационных систем. В США 60% программных продуктов написаны на VB. Есть конечно очень небольшие ограничения, например, на VB нельзя написать полноценную DLL библиотеку, драйвер устройства VXD, также в VB нельзя использовать ассемблер.


Установка и настройка VB


Установка Visual Basic не отличается особой сложностью, всё стандартно. В процессе инсталляции необходимо указать компоненты, которые будут установлены на компьютер. Если на жёстком диске есть место, то лучше выбрать все компоненты, чтобы потом их не пришлось добавлять. Здесь следует отметить то, что версия VB 5.0 поставляется с файлами помощи (примерно 15Мб), а помощь для VB 6.0 идёт в комплекте с MSDN, который поставляется на трёх дисках. Поэтому если у вас шестая версия, записанная на одном диске, то будьте уверены, помощи там не будет. Но вполне можно взять помощь от пятой версии и использовать её для VB 6.0. После установки VB перезагрузите компьютер.


Итак, компьютер перезагружен. Перед работой с VB его необходимо настроить. Для этого запустите VB (Пуск->Программы->Microsoft Visual Basic 6.0->Visual Basic 6). Необходимо зайти в меню Tools->Options, установить галочку "Require Variable Declaration". Это избавит от лишних ошибок при автоматическом определении переменных. Далее на вкладке Editor Format, в списке Font необходимо указать Courier New Cyr. Если этого не сделать, то VB не будет корректно отображать кириллицу. Также желательно установить цвет зарезервированных слов в ярко-синий. Для этого выбрать в списке Code Colors Keyword Text и в поле Foreground указать ярко-синий цвет (седьмой снизу). Вот и всё! Visual Basic готов к работе!


Структура проекта VB


В Visual Basic любой проект состоит из одной или нескольких так называемых форм, каждая из которых решает какую-то задачу и состоит из следующих файлов:


-файл формы (расширение frm) - это обычный ASCII текстовый файл, в котором записан весь код, помещённый в форму, а также свойства всех помещённых на форму элементов управления и самой формы тоже.


-файл формы (расширение frx), содержит бинарную информацию (например картинку в PictureBox) .


-файл проекта (расширение vbp), содержит информацию о проекте


-в файле (расширение vbw) содержится информация о рабочей области проекта (workspace) .


Это необходимый минимум. (Хотя, бывают и исключения, например, когда в проекте не используются формы. Тогда вместо frm файла, будет bas файл.)


Далее перечислены дополнительные файлы, которые могут быть подключены к проекту:


файл каждого модуля (расширение bas) Это текстовый файл.


файл каждого модуля классов (расширение cls). Это текстовый файл.


файл каждого дополнительного элемента управления (расширение ctl) Это тоже текстовый файл.


файл ресурсов (расширение res)


другие файлы (ocx, tlb, и т.д...)


Запоминать назначение всех этих файлов не обязательно, достаточно запомнить 2 файла: frm-файл, в котором хранятся код формы и свойства всех помещённых на данную форму элементов управления. И bas-файл - модуль. В нём могут быть объявлены глобальные переменные, константы, функции и т.д. Короче, только код. Без элементов управления.


Среда разработки VB


Для того чтобы понять, как проектировать интерфейс, необходимо разобрать среду разработки Visual Basic. Запустить VB. В появившемся окне (Рис. 1) необходимо указать тип проекта - "Standart EXE" и нажать ОК.



Рис. 1


На экране появится следующее окно (Рис 2).


В левой части расположена панель с доступными элементами управления, с которой можно перетаскивать нужные элементы на форму. В центре находится форма (окно), другими словами рабочая область активного приложения. Имя новой формы – Form1. Вверху расположена панель инструментов среды разработки. Справа расположены окна проекта (Project) и свойств текущего объекта (Properties).



Рис.2


Главное преимущество работы с объектами в том, что объекты обеспечивают программный код, который уже не требуется писать разработчику. Ему просто нужно установить свойства объекта и вызвать методы объекта, чтобы побудить объект выполнить требуемые функции. Некоторые свойства можно отредактировать только в период выполнения программы (RunTime). Многие объекты имеют одинаковые свойства. Например, свойство Caption. У формы (Form) Caption – это заголовок окна, а у элемента метки (Label) – это текст внутри метки.


Для того чтобы оценить разницу между VB и QBasic, вспомним решение задачи полета ядра (Приложение 1). Например: чтобы нарисовать линию в QBasic, которая соответствовала бы сетке координат, необходимо каждую точку, линию, черту, положение надписи, цвет описывать соответствующими операторами. В VB этот процесс значительно упрощается, достаточно в левой части рабочей формы вызвать соответствующие элементы управления. Для начала проведем пару линий и разместим на форме два скрола (вертикальный –Vscroll и горизонтальный – Hscpoll), чтобы получилась примерно картинка, как показано на рис. 3. Причем выбрав тот или иной



Рис.3.


элемент, отметив его мышкой, в правой части формы активируется окно Properties, в котором можно просмотреть параметры элементов и изменить их. Причем это может касаться как цвета, размеров, положения так и числовых величин. Если, при этом кликнуть мышкой по рабочей области формы откроется содержание формы (Рис.4), в данном случае пока не заполненное.



Рис.4.


Но не следует забывать, что все что находится на рабочей области формы содержится в файле form1.frm и по мере работы с формой содержимое файла будет меняться.


Чтобы запустить форму необходимо нажать Run\Start или просто F5. Выход – Run\End.


Решение задач в VB


Решение задачи полета ядра (Приложение 1), начнем с определения необходимых условий, которые должны быть отображены на экране:


Положение цели привязать к положению горизонтального скрола (HScroll);


Задание угла стрельбы привязать к положению вертикального скрола (VScroll);


Максимально отобразить наиболее важные числовые параметры.


Решение первого пункта начнем с установки параметров для горизонтального скрола выделив HScroll и активировав свойства текущего объекта (Properties-HScroll). Предположим, что заданная максимальная дальность цели соответствует 15000 м, тогда максимальное значение скрола также должно соответствовать 15000 м. Изменим в графе MAX величину 32767 на 15000 (Рис.5). А в графе MousePointer установить значение 7-Size NS. Посмотреть что из этого вышло можно войдя через F5.


Выведем на экран значение скрола, которое и будет определять дальность до цели. Для этого в левой части в панели управления элементов выберем элемент Label и разместим его в любой части рабочей области. Выделим теперь горизонтальный скрол и кликнем его мышкой. Активируется окно Project1 (содержимое формы). Между строк: Private Sub HScroll1_Change() и End Sub введем новые данные :


Label1 = HScroll1


Cls


X1 = Label1 * 0.55 + 500


Line (X1, 4300)-(X1 + 100, 4450), 11, BF


Общий вид записи представлен на рис. 6.




Рис. 5.


Рис. 6.


При этом надо учитывать разницу в масштабах координаты Х1 и значения HScroll. Их согласование обеспечивается выражением:


X1 = Label1 * 0.55 + 500


В принципе, для каждого конкретного случая, значения коэффициентов (0,55 и 500) могут быть различными и требуют индивидуального подбора.


Оператор CLS обеспечивает обнуление изображения цели после каждого обращения к HScroll.


Вторым шагом будет редактирование вертикального скрола (VScroll). Для этого создадим и разместим на рабочей области элемент управления Label 2. Выберем VScroll и в свойствах объекта (Properties-VScroll) изменим значение параметра MAX и Value на 80, что будет соответствовать максимальному углу стрельбы в 80 градусов и начальному положению вертикального скрола в нижней части шкалы. В графе Mouse Pointer можно установить значение 9-Size WE. А чтобы нижнее положение курсора VScroll1, отображаемое элементом Label2 соответствовало 0, необходимо, активировав окно Properties для VScroll1 и записать в содержание формы:


Private Sub VScroll1_Change()


Label2 = 80 - VScroll1


End Sub


Общий вид содержания формы представлен на Рис. 7.



Рис. 7.


Следующим шагом будет введение активной кнопки, нажатием на которую будет осуществляться старт (Пуск, Выстрел). Для этого на панели управления выберем новый элемент Command1 и устанавливаем его в любом удобном месте рабочей области формы. При этом в свойствах элемента Properties-Command1 в строке Caption пропишем новое имя «Start». Активировав содержание формы запишем для элемента Command1 следующие строки, взятые из уже решенной задачи полета ядра в QBasic (Приложение 1), правда пока без учета сопротивления воздуха:


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 отображен общий вид формы.


Для большей наглядности можно вести еще ряд элементов, изменить цвет, ввести коэффициент сопротивления воздуха. Как вариант, в приложении 2 показано содержание файла form*.frm , для данного случая, а рис. 10 и рис. 11 отображает общий вид формы.



Рис. 8.



Рис. 9



Рис. 10



Рис. 11


Использование таймера в VB


В большинстве случаев решаемые задачи в той или иной мере привязаны к реальному времени. В VB так же при решении задач можно использовать время - таймер, причем таймеров может быть несколько, они могут работать как вместе, так и поочередно, при этом один процесс решения может останавливаться, а другой - начинаться.


В предлагаемом примере (Приложение 3), решена задача наведения в ручную ракеты (ПТУРС) на цель. Для решения задачи использованы пять таймеров, причем данное решение не является самым удачным и имеет ряд погрешностей. Но для получения начальных навыков в программировании в 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)


yc = Y0 + 5600 + rn * 5 * Sin(a)


PSet (xc, yc), &HFFFF80 * Rnd + &HC0C0FF * Rnd


Next


End Sub


И если сохраняется тенденция к снижению снаряда, то таймер 1 останавливается:


If Label17.Caption < 150 Then Timer1.Interval = 0


Цель поражена (Рис.13).



Рис.13


Заключение


Таким образом, язык программирования Visual Basic, наглядно позволяет смоделировать физический процесс, получить конкретные результаты и навыки. Отличительной особенностью VB, является возможность работы его непосредственно в среде Windows, что значительно повышает наглядность, красочность программы и гибкость в ее применении.


Необходимо еще раз подчеркнуть, что создаваемые объекты сразу же обеспечены программным кодом и для них приемлем метод перетягивания, что весьма распространено Windows.


Итак, полученные навыки позволят в дальнейшем самостоятельно решать задачи различной сложности, расширить приобретенный опыт и углубить свои знания в вопросах программирования.


Список литературы


Кравченко В. Программирование. «Компьютерное моделирование движения тел». Учебно – исследовательская работа учащейся 9 класса г. Кунгур 2005 – 30 с.


Дж. Радер., К. Миллсап. Бейсик для персонального компьютера фирмы IBM: Пер. с англ. – М.: Радио и связь, 1991. – 30 л.: ил.


Р. Мкдона. Основы микрокомпьютерных вычислений: Пер. с англ./ Т.Г.Никольской; Под ред. В. Ф. Шальгина. – М.: Высш. Школа., 1989. – 272 с.: ил.


Задачи и упражнения по программированию: Практ. Пособие для ПТУ/ Под ред. А. Я. Савельева. Кн. 2. Тяжелая промышленность и транспорт/ В.Е.Алексеев, А.С. Ваулин. – 2-е изд., доп. – М.: Высш. шк., 1989-112 с.: ил.


А. В. Перышкин., Е. М. Гутник. Физика. 10 кл.: «Учеб. для общеобразоват. учеб. заведений – М.: Дрофа, 2002.


И. Д. Помбрик, Н. А. Шевченко. Аэродинамика. Изд. третье, исправленное и дополненное. М., Военное издательство, 1972 – 96 с.: СПД


Г. И. Светозарова. ОСНОВЫ ПРИКЛАДНОЙ ИНФОРМАТИКИ. Раздел: Описание языка Турбо-Бейсик. Справочное пособие.


http://www.codenet.ru/progr/vbasic/first.php


http://vb.hut.ru/vbnovice/lessons.htm


http://vbzero.narod.ru/loading.htm


http://vbzero.narod.ru/site.htm


http://vbzero.narod.ru/project.htm


http://www.tam.ru/guide/


http://www.codenet.ru/progr/vbasic/menu/vbhelp_01.php


Приложение 1


REM ЯДРО


5 INPUT « Ввести угол стрельбы от 5 до 80 град»; a


7 IF a < 5 THEN 10


IF a > 80 THEN 20


GOTO 40


10 INPUT « Угол должен быть >=5»; a


GOTO 7


20 INPUT « Угол должен быть <=80»; a


GOTO 7


40 INPUT « Ввести дальность до цели от 200 до 5000 м»; l


45 IF l < 200 THEN 50


IF l > 5000 THEN 60


GOTO 70


50 INPUT « Расстояние до цели должно быть >=200»; l


GOTO 45


60 INPUT « Расстояние до цели должно быть <=5000»; l


GOTO 45


70 INPUT « Для выстрела нажать F1»; enter


REM построение координат


SCREEN 9:


x0 = 50


y0 = 300


x1 = 600


y1 = 50


x2 = 50


y2 = 300


REM координата Y


LINE (x0, y0)-(x0, y1), 12


LOCATE 18, 4: PRINT “250”


LOCATE 14, 4: PRINT “500”


LOCATE 10, 4: PRINT “750”


LOCATE 6, 4: PRINT “1000”


LINE (48, 245)-(52, 245), 11


LINE (48, 190)-(52, 190), 11


LINE (48, 135)-(52, 135), 11


LINE (48, 80)-(52, 80), 11


REM координата X


LINE (x0, y0)-(x1, y0), 12


LOCATE 23, 19: PRINT “1000”


LOCATE 23, 31: PRINT “2000”


LOCATE 23, 44: PRINT “3000”


LOCATE 23, 56: PRINT “4000”


LOCATE 23, 69: PRINT “5000”


LINE (150, 302)-(150, 298), 11


LINE (250, 302)-(250, 298), 11


LINE (350, 302)-(350, 298), 11


LINE (450, 302)-(450, 298), 11


LINE (550, 302)-(550, 298), 11


REM ЦЕЛЬ


LINE (x0 + l / 10, 299)-(x0 + l / 10 + 5, 299), 10


LINE (x0 + l / 10, 298)-(x0 + l / 10 + 5, 298), 10


REM показания


LOCATE 1, 6: PRINT “V m/s”


LOCATE 2, 6: PRINT “H m”


LOCATE 2, 24: PRINT “S m”


LOCATE 1, 24: PRINT “T s”


80 KEY(1) ON


ON KEY(1) GOSUB 90


GOTO 80


REM полет


90 v = 200


g = 9.8


f = a * 3.14 / 180


100 q = .01


t = t + q


REM k коэффициент сопротивления воздуха


k = .016


vs = v * COS(f) – (k – k / (k + v * COS(f)))


vh = v * SIN(f) – (k – k / (k + v * SIN(f)))


s = vs * t * 2


h = (vh * t – (g * t ^ 2) / 2) * 5.5


v = SQR(vs ^ 2 + vh ^ 2)


LINE (x2, y2)-(x0 + s / 20, y0 – h / 25), 14


x2 = x0 + s / 20


y2 = y0 – h / 25


LOCATE 1, 12: PRINT v


LOCATE 2, 12: PRINT h / 5.5


LOCATE 2, 28: PRINT s / 2


LOCATE 1, 28: PRINT t


IF h < 0 THEN 200


GOTO 100


200 REM взрыв


r = 30


n = 500


REM: a угол разлета


REM: r радиус разлета, n количество осколков


REM: коэффициенты 0.5 и 1 определяют ширину и высоту разлета


DIM x(n), y(n)


RANDOMIZE (TIMER)


FOR I = 1 TO n


a = -6.28 * RND / 2


rn = r * RND


xc = x2 + rn * .5 * COS(a)


yc = y2 + rn * 1 * SIN(a)


PSET (xc, yc), 9 + 9 * RND


PRESET (x(i), y(i))


NEXT


END


Приложение
2


VERSION 5.00


Begin VB.Form Form1


BackColor = &H8000000D&


BorderStyle = 1 ‘Fixed Single


Caption = “Form1”


ClientHeight = 7770


ClientLeft = 45


ClientTop = 435


ClientWidth = 8670


FillColor = &H00C0FFFF&


LinkTopic = “Form1”


MaxButton = 0 ‘False


MinButton = 0 ‘False


ScaleHeight = 7770


ScaleWidth = 8670


StartUpPosition = 3 ‘Windows Default


Begin VB.CommandButton Command1


Caption = “Пуск”


Height = 495


Left = 720


TabIndex = 2


Top = 5280


Width = 1215


End


Begin VB.VscrollBar Vscroll1


Height = 1935


Left = 240


Max = 80


MousePointer = 9 ‘Size W E


TabIndex = 1


TabStop = 0 ‘False


Top = 2400


Value = 80


Width = 255


End


Begin VB.HscrollBar Hscroll1


Height = 255


Left = 240


Max = 15000


Min = 10


MousePointer = 7 ‘Size N S


TabIndex = 0


Top = 4800


Value = 100


Width = 8295


End


Begin VB.Label Label9


Caption = “Ошибка”


Height = 375


Left = 2160


TabIndex = 11


Top = 5400


Width = 975


End


Begin VB.Line Line1


X1 = 600


X2 = 600


Y1 = 4680


Y2 = 480


End


Begin VB.Label Label8


Caption = “0”


Height = 375


Left = 3120


TabIndex = 10


Top = 5400


Width = 1095


End


Begin VB.Label Label7


Caption = “Дальность”


Height = 375


Left = 2160


TabIndex = 9


Top = 5880


Width = 975


End


Begin VB.Label Label6


Caption = “угол(градус)”


Height = 375


Left = 4800


TabIndex = 8


Top = 5880


Width = 975


End


Begin VB.Label Label5


Caption = “дист(м)”


Height = 375


Left = 4800


TabIndex = 7


Top = 5400


Width = 975


End


Begin VB.Label Label4


Caption = “Label4”


Height = 15


Left = 5040


TabIndex = 6


Top = 6000


Width = 135


End


Begin VB.Label Label3


BackColor = &H80000018&


Caption = «0»


Height = 375


Left = 3120


TabIndex = 5


Top = 5880


Width = 1095


End


Begin VB.Label Label2


BackColor = &H80000018&


Caption = «0»


Height = 375


Left = 5760


TabIndex = 4


Top = 5880


Width = 1095


End


Begin VB.Label Label1


BackColor = &H80000018&


Caption = «0»


Height = 375


Left = 5760


TabIndex = 3


Top = 5400


Width = 1095


End


Begin VB.Line Line2


X1 = 600


X2 = 8400


Y1 = 4680


Y2 = 4680


End


End


Attribute VB_Name = “Form1”


Attribute VB_GlobalNameSpace = False


Attribute VB_Creatable = False


Attribute VB_PredeclaredId = True


Attribute VB_Exposed = False


Private Sub Hscroll1_Change()


Cls


Label1 = Hscroll1


X1 = Hscroll1 * 0.507


Line (X1 + 550, 4500)-(X1 + 600, 4650), &HC0FFFF, BF


End Sub


Private Sub Vscroll1_Change()


Label2 =80 – Vscroll1


End Sub


Private Sub Command1_Click()


X0 = 600


Y0 = 4680


X2 = X0


Y2 = Y0


v = 300


g = 9.8


a = Label2


f = a * 3.14 / 180


100 q = 0.00005


t = t + q


Rem k – коэффициент сопротивления воздуха


k = 0.0001


vs = v * Cos(f) – (k – k / (k + v * Cos(f)))


vh = v * Sin(f) – (k – k / (k + v * Sin(f)))


s = vs * t


h = (vh * t – (g * t ^ 2) / 2)


s = v * t * Cos(f)


h = v * t * Sin(f) – (g * t ^ 2) / 2


v = Sqr(vs ^ 2 + vh ^ 2)


Line (X2, Y2)-(X0 + s, Y0 – h), &HFF&


X2 = X0 + s


Y2 = Y0 – h


If h < 0 Then GoTo 200


GoTo 100


200 Label3 = s * 4.32 \ 1


v = X1 \ 2 * 2


Label8 = Hscroll1 – s * 4.32 \ 1


End Sub


Приложение
3


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()


Label1.Caption = Label1.Caption + Timer1.Interval


Label2.Caption = Label2.Caption + Timer2.Interval


Label13.Caption = Label13.Caption + Timer3.Interval


Label15.Caption = Label15.Caption + Timer4.Interval


Label17.Caption = Label17.Caption + Timer5.Interval


a = Label1.Caption


T = Timer3.Interval


k = 1.2


V = 30


Label3.Caption = (250 - VScroll1) \ 10


q = Label3.Caption


f = q * 3.14 / 180


Rem Поверхность


Line (14850, 5640)-(350, 5820), &H80000002, BF


Rem Танк


Line (12000 - a * k, 5620)-(12850 - a * k, 5520), &HFFFF&, BF


Line (11920 - a * k, 5540)-(12000 - a * k, 5530), &HFFFF&, BF


Line (11900 - a * k, 5550)-(12000 - a * k, 5540), &HFFFF&, BF


Line (11920 - a * k, 5560)-(12000 - a * k, 5550), &HFFFF&, BF


Line (11940 - a * k, 5570)-(12000 - a * k, 5560), &HFFFF&, BF


Line (11950 - a * k, 5590)-(12000 - a * k, 5570), &HFFFF&, BF


Line (11970 - a * k, 5600)-(12000 - a * k, 5590), &HFFFF&, BF


Line (12825 - a * k, 5600)-(12900 - a * k, 5580), &H8000000F, BF


Line (12800 - a * k, 5620)-(12900 - a * k, 5600), &H8000000F, BF


Line (12850 - a * k, 5620)-(13950 - a * k, 5520), &H8000000F, BF


Rem башня танка


Line (12200 - a * k, 5440)-(12650 - a * k, 5500), &HFFFF&, BF


Line (11900 - a * k, 5460)-(12200 - a * k, 5460), &HFFFF&


Line (12650 - a * k, 5440)-(12750 - a * k, 5500), &H8000000F, BF


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


Rem ПТУРС


Line (X0 + 300, 5550 + Y0)-(X0 + 400, 5500 + Y0), &H8000000F, BF


Line (X0 + 300, 5550 + Y0)-(X0 + 500, 5600 + Y0), &H8000000F, BF


Line (X0 + 300, 5450 + Y0)-(X0 + 550, 5500 + Y0), &H8000000F, BF


Line (400 + X0, 5500 + Y0)-(420 + X0, 5550 + Y0), &HFF&, BF


Line (400 + X0, 5525 + Y0)-(550 + X0, 5525 + Y0), &HFF&


Rem дым


X2 = 12820 - a * k


Y2 = 5620


r = 30


n = 1


Dim x(10), y(10)


Randomize (Label1.Caption)


For i = 1 To 50


a = -6.28 * Rnd / 6


rn = r * Rnd


xc = X2 + rn * 9 * Cos(a)


yc = Y2 + rn * 3 * Sin(a)


PSet (xc, yc), &HFFFF80 * Rnd + &HC0C0FF * Rnd


Next


If X0 > 13000 Then Timer1.Interval = 0


If Y0 > 50 Then Timer2.Interval = 1


If Y0 > 100 Then Timer3.Interval = 0


If Label5.Caption > 11500 - (Label1.Caption) Then Timer4.Interval = 1


End Sub


Private Sub Command1_Click()


Rem старт ПТУРС


Timer3.Interval = 1


End Sub


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


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)


yc = Y0 + 5600 + rn * 5 * Sin(a)


PSet (xc, yc), &HFFFF80 * Rnd + &HC0C0FF * Rnd


If Label17.Caption < 150 Then Timer1.Interval = 0


Next


End Sub



Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.