Меню среды программирования
МенюTools (Инструментарий) содержит команды, которые позволяют пользователю: создавать свои процедуры, настраивать параметры системы программирования, создавать свое меню.
· Add Procedure (Создать процедуру). Открывает окно диалога, помогающее программисту создать процедуру, функцию, свойство или событие. Командой открывается диалогAdd Procedure, позволяющий создать заготовку процедуры или функции при условии, что окно кода является текущим. Введите имя процедуры, установите переключатели в требуемое положение, щелкните на кнопке ОК, и соответствующая заготовка будет вставлена в текст.
· Procedure Attributes (Атрибуты). Позволяет установить атрибуты для свойств и методов объекта.
· Menu Editor (Редактор меню). Открывает окно редактора меню, позволяющее присоединить меню к текущей форме.
· Options (Параметры). Открывает окно диалога (шесть вкладок), позволяющее менять параметры и настройки системы программирования.
Процедуры и функции
Процедуры и функции являются важными блоками программы на любом языке процедурного типа, а в таком языке, как Visual Basic практически весь код программы состоит из процедур и функций.
В программе на языке Visual Basic можно использовать несколько видов процедур и функций:
· Процедура представляет собой самостоятельную часть программного кода, обладающую уникальным именем, благодаря которому она может быть вызвана и выполнена. Процедура не возвращает никакого значения в ту точку, откуда она была вызвана, но ей можно передать параметры.
· Функция во всем подобна процедуре, а единственное ее отличие состоит в том, что функция возвращает значение в то место, откуда она была вызвана.
· Процедура-обработчик события отличается от обычной процедуры тем, что программа вызывает ее автоматически при наступлении соответствующего события.
· Процедура-свойство. Чтобы снабдить существующий объект (например, форму) новым свойством, необходимо создать пару процедур, которые будут автоматически вызываться каждый раз, когда свойству присваивают значение или обращаются к значению свойства .
Чтобы код функции или процедуры был исполнен, она должна быть вызвана. Вызов процедуры осуществляется вставкой ее имени в текст программы. Сразу после имени должны следовать параметры процедуры, если таковые предусмотрены.
ИмяПроцедуры[Параметр1, Параметр2,]
Другой способ вызова процедуры заключается в в использовании ключевого слова Call. При этом за ним должно следовать имя процедуры и заключенный в скобки список параметров.
Call ИмяПроцедуры (Параметр1, Параметр2,)]
Visual Basic позволяет программисту объявлять собственные процедуры и функции. Для объявления процедуры используют следующий синтаксис:
[Private/Public/Priend] [Static] Sub ИмяПроцедуры [(Параметры)]
[Операторы]
[Exit Sub]
[Операторы]
End Sub
Синтаксис объявления функции:
[Private/Public/Friend] [Static] Function ИмяФункции [(Параметры)] [As Имя Типа]
[Операторы]
[ИмяФункции = Выражение]
[Exit Function]
[Операторы]
[ИмяФункции = Выражение]
End Function
В данной записи ключевые слова имеют следующие назначения:
· Public - объявляет процедуру или функцию как глобальную, т.е. она будет доступна всем процедурам и функциям всех модулей и форм.
· Private - объявляет процедуру только в пределах того модуля, где она объявлена.
· Friend - объявляет процедуру только в модулях классов.
· Static - . объявляет все переменные внутри процедуры как статические.
· ИмяПроцедуры/ИмяФункции – это идентификатор, с помощью которого можно вызвать соответствующую процедуру или функцию.
· Параметры - объявляет список параметров.
· ИмяТипа - определяет тип возвращаемого функцией значения. Допустимы все стандартные типы, а также типы, определяемые пользователем. Если тип функции не указан, то она будет возвращать значение типа Variant.
· Операторы – это операторы, составляющие тело функции или процедуры.
· Выражение - задает возвращаемое функцией значение.
· Exit Sub/Exit Function - осуществляет досрочный выход из процедуры или соответственно функции.
Синтаксис списка параметров, обозначенный ранее как Параметры, сам по себе является достаточно многовариантным:
[Optional][ВуVal/ВуRef][РагаmАггау]ИмяПараметра[()]
[As ИмяТипа][=ЗначениеПоУмолчанию]
Optional. Это зарезервированное слово (атрибут) должно предшествовать имени того параметра, который является необязательным. После необязательных параметров могут следовать только необязательные же параметры. Нельзя использовать необязательные параметры совместно с массивом параметров (ParamArray).
ByVal. Параметр, имени которого предшествует это слово, будет передаваться в процедуру или функцию по значению. Если параметром окажется внешняя относительно процедуры переменная, то никакие манипуляции с этим параметром в коде процедуры не изменят значения этой внешней переменной.
ByRef. Если имени параметра предшествует это слово, то передача параметра будет производиться по ссылке, т. е. значение внешней переменной, переданной в процедуру в качестве этого параметра, может быть изменено операторами процедуры. Режим передачи параметров по ссылке принят в языке Visual Basic по умолчанию.
ParamArray. Массив параметров. Таковым может быть объявлен только последний параметр в списке, при этом он будет представлять собой переменную типа Variant, содержащую в себе массив. Этим способом можно передавать в процедуру или функцию значительные объемы данных. При использовании массива параметров нельзя применять атрибуты Optional, ByVal и ByRef.
ИмяПараметра. Идентификатор, по которому будет происходить обращение к параметру в коде процедуры или функции.
ИмяТипа. Определяет требуемый тип параметра, допустимы определяемые пользователем, а также все стандартные типы.
ЗначениеПоУмолчанию. Допустимо только для необязательных параметров (т. е. тех, имени которых предшествует зарезервированное слово Optional). Задает значение, которое будет автоматически присвоено параметру в случае его отсутствия. Если параметр отнесен к типу Object, то единственное допустимое значение по умолчанию — Nothing.
Порядок выполнения работы
2.1 Откройте проект Satm4.
2.2 Оформите формулы расчета параметров атмосферы как отдельные процедуры
2.2.1 Объявите процедуры расчета параметров атмосферы в тропосфере и стратосфере
· перейдите в окно Project Explorer и убедитесь в том что активна форма с именем frmSa,
· откройте окно кода,
· откройте меню Tools и выполните команду Add Procedure,
· в открывшемся окне в поле Name введите имя новой процедуры Sa_Tropo - процедуры расчета параметров атмосферы в тропосфере,
· убедитесь в том, что активны переключатели Sub и Public,
· нажмите кнопку Ok – в поле кода появляется обьявление новой процедуры Sa_Tropo
Public Sub Sa_Tropo()
End Sub
· аналогичным образом обьявите процедуру Sa_Strato для расчета параметров атмосферы в стратосфере.
2.2.2 Переместите необходимые операторы в процедуры
· перейдите в код процедуры Private Sub CmdOk_Click(),
· выделите формулы расчета параметров атмосферы в тропосфере (четыре строки после строки 'Формулы расчета для тропосферы) и нажмите клавиши Ctrl+X. Выделенный блок удаляется в буфер обмена.
· установите курсор в тело процедуры Sa_Tropo() и нажмите левую клавишу мыши,
· нажмите клавиши Ctrl+V. В тело процедуры из буфера обмена копируются формулы расчета параметров атмосферы в тропосфере,
· перейдите в код процедуры Private Sub CmdOk_Click(),
выделите строки с описанием констант (sngP0, sngR0, sngT0) и переменных (sngGradTempH) и переместите их в тело процедуры Sa_Tropo().
· аналогичным образом переместите необходимые формулы, константы и переменные, используемые при расчете параметров в стратосфере, в тело процедуры Sa_Strato.
2.2.3 Организуйте передачу параметров в процедуры и их вызов
· введите в скобки после имени процедуры Sa_Tropo следующий текст
j As Integer,
· введите в скобки после имени процедуры Sa_Strato следующий текст
j As Integer,
· перейдите в код процедуры Private Sub CmdOk_Click(),
· в конец строки If gsngSa(1, j) <= 11000 Then - введите текст
Call Sa_Tropo( j )
· в конец строки If gsngSa(1, j) > 11000 Then - введите текст
Call Sa_Strato( j )
· уберите ненужные теперь ключевые слова End If
2.3 Сохраните проект в своей личной папке под новым именем – Satm5.
· перейдите в окно Project Explorer и убедитесь в том что активна форма с именем frmSa,
· откройте меню File и выполните команду Save satm4-1.frm As,
· в открывшемся окне в поле File name (Имя файла) укажите новое имя Satm5-1 и нажмите клавишу Save (Сохранить),
· перейдите в окно Project Explorer и сделайте активной форму с именем frmTabl,
· откройте меню File и выполните команду Save satm4-2.frm As,
· в открывшемся окне в поле File nameукажите новое имя Satm5-2 и нажмите клавишу Save,
· откройте меню Fileивыполните команду Save Project As,
· в открывшемся окне в поле File name укажите новое имя Satm5 и нажмите клавишу Save.
2.4 Протестируйте программу на ввод возможных ошибочных данных.
2.4.1 Ввод символов букв
· запустите программу на выполнение в среде VB5.0,
· введите в поле ввода начальной высоты 0,
· введите в поле ввода приращение высоты строку символов asdf. Обратите внимание на то, что программа позволяет вводить вместо цифровых символов символы букв,
· введите в поле ввода конечной высоты значение 100.
· нажмите клавишу Enter. Выводится информационная панель системы программирования с сообщением об ошибке – деление на ноль.
· нажмите кнопку Debug в информационной панели. Обратите внимание на то, что в поле кода оператор, в котором произошла ошибка вычислений, выделяется желтым фоном,
· завершите выполнение программы, выполнив команду End из меню Run.
2.4.2 Ввод нулевого значения конечной высоты
· запустите программу на выполнение в среде VB5.0,
· введите в поле ввода начальной высоты asdf,
· введите в поле ввода приращение высоты значение 100,
· введите в поле ввода конечной высоты значение 0.
· нажмите клавишу Enter. Программа выполняется для одного цикла. Однако этого допустить нельзя, т.к. была введена строка нецифровых символов в поле ввода начальной высоты.
2.5 Организуйте проверку ввода значений исходных данных
2.5.1 Проверка значения приращения высоты (приращение высоты не должно быть равно нулю и не может превышать значение конечной высоты)
· убедитесь в том, что форма с именем frmSa активна,
· перейдите в код процедуры Private Sub CmdOk_Click(),
· после строки gsngH_pr = Val(TxtHpr.Text) введите текст
Select Case gsngH_pr
Case Is >= gsngH_k
MsgBox "1.Значение конечной высоты должно быть больше" _
+" приращения высоты"
Case Is = 0
MsgBox "1.Значение приращения высоты должно быть больше 0" _
+ vbCrLf + "2. Повторите ввод"
TxtHn.Text = "" 'Вывод пустой строки в поле ввода
TxtHk.Text = ""
TxtHpr.Text = ""
GoTo M1 ‘ Переход к концу процедуры Private Sub CmdOk_Click()
End Select
· установите метку безусловного перехода - введите перед строкой End Sub текст M1:
2.5.2 Проверка значения конечной высоты (если конечная высота меньше начальной, то осуществляется выход из процедуры Private Sub CmdOk_Click())
· выполните самостоятельно п. 2.5.1 с соответствующими изменениями имен переменных и текстов сообщений.
2.6 Оформите вывод сообщения об ошибке ввода высоты (меньше нуля и больше 15000 м ) как отдельную процедуру-функцию.
2.6.1 Обьявите новую функцию
· перейдите в окно Project Explorer и убедитесь в том, что форма с именем frmSa активна,
· откройте окно кода,
· откройте меню Tools и выполните команду Add Procedure,
· в открывшемся окне в поле Name введите имя новой функции ErVvod_1, которая будет выводить текст сообщений при вводе значения конечной высоты меньше начальной,
· убедитесь в том, что активны переключатели Functiоn и Private,
· нажмите кнопку Ok – в поле кода появляется обьявление новой функции ErVvod_1
Private Function ErVvod_1()
End Function
2.6.2 Переместите необходимые операторы в тело функции ErVvod_1()
· перейдите в код процедуры Private Sub CmdOk_Click(),
· выделите все строки от строки Rem Вывод сообщения об ошибке ввода высоты до строки Else
· нажмите клавиши Ctrl+X.
· установите курсор в тело функции ErVvod_1() и нажмите левую клавишу мыши,
· нажмите клавиши Ctrl+V
2.6.3 Организуйте вызов функций
· перейдите в код процедуры Private Sub CmdOk_Click(),
· обьявите переменную TextErVvod как переменную произвольного типа,
· после строки Rem Вывод сообщения об ошибке ввода высоты - введите текст
TextErVvod = ErVvod_1()
2.7 Оформите как отдельную процедуру проверку ввода только цифровых символов в текстовые поля ввода.
2.7.1 Обьявите новую функцию
· перейдите в окно Project Explorer и убедитесь в том, что форма с именем frmSa активна,
· откройте окно кода,
· откройте меню Tools и выполните команду Add Procedure,
· в открывшемся окне в поле Name введите имя новой функции Prov,
· убедитесь в том, что активны переключатели Functiоn и Private,
· нажмите кнопку Ok – в поле кода появляется обьявление новой функции Prov
Private Function Prov ()
End Function
2.7.2 Введите необходимые операторы
· укажите формальные параметры функции – введите в скобки после имени функции Prov текст KeyAscii
· введите в тело функции Prov необходимые операторы
Static DecPoint As Integer
Select Case KeyAscii
Case Asc("0") To Asc("9")
Case Asc(".")
If DecPoint Then
KeyAscii = 0: Beep
Else
DecPoint = True
End If
Case Asc(",")
KeyAscii = 0
Case Else
KeyAscii = 0: Beep
End Select
Prov = KeyAscii
2.8 Организуйте вызов функции Prov при вводе символов в поле ввода начальной высоты TxtHn
· убедитесь в том, что форма с именем frmSa активна,
· в разделе общих описаний обьявите глобальную переменную – введите Public KeyAscii As Integer
· в поле кода из списка обьектов выберите TxtHn,
· из списка процедур выберите процедуру KeyPress. Появляется обьявление процедуры
Private Sub TxtHn_KeyPress(KeyAscii As Integer)
End Sub
· введите в тело процедуры необходимые операторы
Dim Simv
Simv = Prov(KeyAscii)
2.9 Протестируйте программу на ввод символов букв
· запустите программу на выполнение в среде VB5.0,
· введите в поле ввода начальной высоты asd. Обратите внимание на то, что программа не позволяет вводить вместо цифровых символов символы букв и дает предупреждение сигналом,
· завершите выполнение программы, выполнив команду End из меню Run.
2.10 Организуйте вызов функции Prov при вводе символов в поле ввода приращения высоты TxtHpr и конечной высоты TxtHk
· выполните самостоятельно п. 2.8 с соответствующими изменениями имен переменных.
2.11 Протестируйте программу на ввод символов букв в поля ввода приращения высоты и конечной высоты.
2.12 Сохраните разработанный проект.
2.13 Закройте среду программирования
Лабораторная работа № 6
Построение графиков
Задание: На основе приложения Satm5 создать приложение Satm6 в котором:
· результаты расчетов представляются в виде графиков
ü зависимости давления атмосферы от высоты - форма 3,
ü зависимости плотности атмосферы от высоты - форма 4,
ü зависимостей температуры воздуха и скорости звука от высоты - форма 5.
· вывод формы 3 происходит после нажатия на кнопку “Graph”, расположенной на форме frmSa.
Форма 3 должна обеспечивать:
· вывод графика на весь экран,
· размещение командной кнопки “Next” для вызова формы 4 и закрытия формы 3;
· размещение командной кнопки “Exit” для вызова формы 1 и закрытия формы 3;
· размещение командной кнопки “Cancel” для выхода из программы;
Форма 4 должна обеспечивать:
· вывод графика на весь экран,
· размещение командной кнопки “Next” для вызова формы 5 и закрытия формы 4;
· размещение командной кнопки “Exit” для вызова формы 3 и закрытия формы 4;
· размещение командной кнопки “Cancel” для выхода из программы;
· фиксированные размеры формы;
Форма 5 должна обеспечивать:
· вывод графика на весь экран,
· фиксированные размеры формы;
· размещение командной кнопки “Exit” для возврата к форме 4 и закрытия формы 5;
· размещение командной кнопки “Cancel” для выхода из программы;
· размещение командной кнопки “Next” для вызова формы 1;
В ходе работы необходимо
изучить:
· системы координат графических компонентов VB;
· методы и свойства графических компонентов VB, необходимые для построения простейших изображений и графиков функций;
научиться:
· включать в проект графический компонент Picture Box и настраивать его свойства для вывода в него графика функции;
· программировать построение в Picture Box графика функции одной переменной по координатам отдельных точек графика, заданных массивом.
Теоретическая часть