Структура простейших VB-программ
Тема 3
Структура VB-программ, классы и процедуры. Средства программирования алгоритмов
линейной структуры
Структура простейших VB-программ
При создании простых Приложений WindowsFormsпрограммный код проекта, написанный на VB,может состоять из программного кода, генерируемого средой разработки, и программного кода, написанного или дописанного программистом. Причем базовая структура программы создается автоматически в тот момент, когда разработчик проекта выбирает в окне Создание проекташаблон Приложение WindowsForms.
Простые Приложения WindowsForms могут содержать следующие составляющие:
· операторыOption, определяющие основные правила обработки программного кода, предупреждающие синтаксические и логические ошибки:
Option Explicit,
Option Compare,
Option Strict;
· операторы Imports…, импортирующие в программу компоненты библиотек, определяемые в импортируемом пространстве;
· модули форм:
Public Class Имя_Формы
…
End Class;
· модули классов:
Public Class Имя_класса
…
End Class;
операторы описания типов, данных с ключевыми словами Dim, Private и
Public, находящиеся внутри модулей, классов и процедур;
процедуры, генерируемые средой разработки внутри модулей формы;
процедуры, написанные программистом, которые могут находиться
как внутри модулей формы, так и внутри стандартных модулей (общие
процедуры).
Таким образом, программный код VBхранится в программных моду
лях в виде процедур (методов). Эти программные модули могут быть
двух видов:
· модуль формы;
· модуль класса.
При рассмотрении базовых средств программирования VB будут использоваться только Приложения WindowsForms, которые состоят из одной формы, и содержат, как правило, только один модуль – модуль формы.
В свою очередь модуль формы может содержать процедуры событий, процедуры пользователей и операторы описания данных (простых переменных, массивов и констант) с ключевыми словами Dim, Private и Public.
Таким образом, программный код простого приложения будет иметь структуру, приведенную на рис. 4.3.1-1.
|
PrivateSubForm1
Описание глобальных данных |
Процедура пользователя - 1 (Общая процедура - 1) |
…
Процедура пользователя - n (Общая процедура – n) |
Процедура обработки событий - 1 |
…
Процедура обработки событий - m |
EndClass
Рис. 4.3.1-1. Структура простейшего приложения
В дальнейшем, по мере усложнения приложения в нем могут создаваться модули классов, стандартные модули, а если программа достаточно большая, в ней будет несколько форм и большое число процедур событий, которые используют одни и те же переменные и процедуры. Причем некоторый программный код можно выделить в отдельный программный код, который будет являться общим для всех. Такой программный код может быть частью стандартного модуля. Кроме того, стандартные модули, так же, как и модули форм, могут содержать объявления переменных, констант и типов данных, описания общих процедур и процедур обработки событий.
По умолчанию переменные локальны для любой процедуры – они могут быть использованы и изменены только в той процедуре, в которой они созданы (объявлены). Также можно объявить переменные в верхней части программного кода формы, до описания процедур пользователей и процедур событий, и тем самым придать переменным более широкую область видимости, распространяющуюся на всю форму. Однако, при создании в проекте нескольких форм, переменные, объявленные в верхней части формы, будут доступны только в той форме, в которой они объявлены. Точно также, процедуры событий по умолчанию объявляются как частные (Private) и являются локальными для той формы, в которой они созданы. Например, нельзя из второй формы с именем Form2вызвать процедуру события Button1_Click(…), если она объявлена в Form1как частная.
Чтобы сделать переменные и процедуры доступными для всех форм и процедур событий проекта, их следует объявить в одном или нескольких стандартных (общих) модулях, включенных в проект.
Изучение общих модулей и общих процедур пока отложим, а подробно изучим структуру и содержание модуля формы, а также правила написания процедур пользователя и другие средства программирования VB.
Объявление глобальной, или открытой переменной в модуле формы достаточно просто – необходимо перед заголовками процедуры (сразу после PublicClassForm1) ввести ключевое слово PublicилиDim, за которыми следует имя_переменной и объявление ее типа. После того, как переменная будет объявлена, использовать ее содержимое, изменять его или отображать на экране можно в любой процедуре программного кода модуля формы.
Например, операторы объявления, приведенные ниже, объявляют открытую переменную с именем Totalтипа Integer:
Public Total As Integer Dim Total As Integer |
Пример 4.3.4-1.Ввод данных с помощью функции InputBox( ).
1)Создать проект c именем Пример 4.3.4-1.
2)В IDE откроется пустая форма проекта Пример 4.3.4-1.
3)Создать форму, которая содержит одну надпись (Label) и две кнопки(Button). Для получения входных данных от пользователя использовать функцию InputBox(). Затем введенное значение необходимо отобразить в надписи формы (рис. 4.3.4-4).
ис. 4.3.4-4. Окно ввода функции InputBox()
4)Дважды щелкнуть мышью на кнопке InputBox.
5)В окне Редактора кода появится процедура события
Button1_Сliск(…).
6)Чтобы объявить две переменные и использовать функцию InputBox(), необходимо ввести операторы программы, показанные на рис. 4.3.4-5.
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs)Handles Button1.Click Dim Prompt, FullName As String Prompt = "ВведитеВашеимя" FullName = InputBox(Prompt) MsgBox(FullName, , "Введеноимя") Label1.Text = FullName End Sub |
Рис. 4.3.4-5. Программный код процедуры события
Проекта Пример 4.3.4-1
С помощью оператора Dim производится объявление сразу двух переменных: Prompt и FullName. Обе переменные объявляются с использованием типа String. (Вы можете объявить в одной строке столько переменных, сколько хотите, но при условии, что они имеют один и тот же тип.)
Вторая строка процедуры события присваивает переменной Prompt текстовую строку. Это сообщение будет использовано как текстовый параметр для функции InputBox( ). Следующая строка вызывает функцию InputBox( ) и присваивает результат этого вызова (текстовую строку, введенную пользователем) переменной FullName. InputBox()– это функция VB, которая отображает на экране диалоговое окно и запрашивает пользовательский ввод.
После того как InputBox() возвратит в программу текстовую строку, четвертый оператор этой процедуры помещает имя пользователя в свойство Textобъекта Label1 и, таким образом, отображает его в форме.
7)Сохранить изменения.
8)Запустить программу на выполнения.
9)Щелкнуть на кнопке InputBox формы.
VB начнет выполнять процедуру события Button1_Click(…), и на
экране появится диалоговое окно InputBox.
10)Ввести свое полное имя, а затем щелкнуть на ОК (рис. 4.3.4-6).
Рис. 4.3.4-6. Результат выполнения проектаПример 4.3.4-1
Функция InputBox() возвращает введенное имя в программу и помещает его в переменную FullName. Затем программа использует эту переменную для отображения этого имени на форме.
Функцию InputBox() необходимо использовать в своих программах всегда, когда требуется запросить у пользователя какую-либо информацию. Вы можете использовать эту функцию совместно с другими элементами управления ввода и управлять потоком данных, поступающих в программу и исходящих из нее.
11)Чтобы завершить выполнение программы, щелкнуть на кнопке
Выход.
Выполнение проекта остановится.
12)Процедура-FunctionvvodDbl2(), которая используетInputBox(),
может быть реализована следующим образом:
'процедура-Function ввода данных типа Double Function vvodDbl2(ByVal p As String, ByVal T As TextBox) As Double T.Text = InputBox(P) Return CDbl(Val(T.Text)) EndFunction |
Вызов такой процедуры можно осуществлять, например, для ввода значения переменнойx1типа Double.
Dim x1 As Double x1 = vvodDbl2("Введитеимя", TextBox1) |
Для вывода информации, во-первых, необходимо отобразить содержимое переменной на форме, что можно сделать, присвоив значение этой переменной свойству (например, свойству Textобъекта элемента управления формы), или передав переменную как аргумент в функцию диалогового окна.
'Процедура вывода данных типа Double в TextBox Sub vivodDbl1(ByVal Z As Double, ByVal T As TextBox) T.Text = CStr(Z) End Sub |
Вызов такой процедуры можно осуществлять, например, для вывода значения переменной x1 типа Double в текстовое поле:
Dim x1 As Double vivodDbl1(x1, TextBox1) |
Пример 4.3.4-2. Вывод сообщения с помощью функции MsgBox().
1)Если окно Редактор кода из предыдущего примера не отображается в IDE, следует сделать двойной щелчок мышью на кнопке InputBox формы на рис. 4.3.4-4.
2)В окне Редактор кода появится процедура события Button1_Click(…) (это код, который был введен в предыдущем примере).
3)Выделить в процедуре события оператор (последняя строка):
4)Label1.Text = FullName.
5)Это оператор отображает в надписи содержимое переменной FullName.
6)Нажать клавишу <Delete>, чтобы удалить эту строку.
7)Оператор будет удален.
8)Вместо удаленной строки в процедуре события необходимо ввестиследующую строку:MsgBox(FullName, ,"Введено имя").
9)Этот новый оператор вызывает функцию MsgBox(), отображает в диалоговом окне содержимое переменной FullNameи помещает в его строку заголовка слова Введено имя (рис. 4.3.4-7).
Public Class Form1 Private Sub Button2_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button2.Click End End Sub Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim Prompt, FullName As String Prompt = "ВведитеВашеимя" FullName = InputBox(Prompt) MsgBox(FullName, , "Введеноимя")'Label1.Text = FullName End Sub End Class |
Рис. 4.3.4-7. Программный код проекта Пример 3.4-2
1)Щелкнуть на кнопкеНачать отладку на панели инструментов.
2)Щелкнуть на кнопке InputBoxформы, а затем ввести в поле ввода имя и щелкнуть на ОК.
3)VBсохранит введенное значение в переменной FullName, а затем отобразит его в окне сообщения. Форма будет выглядеть, как на
рис. 4.3.4-8.
Рис. 4.3.4-8. Результат работы проекта Пример 3.4-2
4)Чтобы закрыть окно сообщения, щелкнуть на ОК. Затем выполнить командуОстановить отладку элемента Отладка основного меню, чтобы закрыть проект.
5)Процедура-SubvivodDbl2(), использующая для вывода MsgBox()может быть реализована следующим образом:
'Процедура вывода данных типа Double функцией MsgBox Sub vivodDbl2(ByVal Z As Double, _ ByVal S As String, ByVal T As TextBox) T.Text = MsgBox(CStr(Z), S) End Sub |
Вызов такой процедуры можно осуществлять, например, для вывода
значения переменной x1 типа Double в текстовое поле:
Dim z As Double vivodDbl2(z, "Выводзначения z", TextBox1) |
Пример 4.3.4-3.Вычисление периметра и площади треугольника с использованием процедур дляввода исходных данных и вывода результатов.
Программный код Проекта 3.4-3 представлен на рис. 4.3.4-9.
Option Strict On Option Explicit On Imports System.Math Public Class Form1 Function vvodSng3(ByVal T As TextBox) As Single Return CSng(Val(T.Text)) End Function Sub vivodSng3(ByVal Z As Single, ByVal T As TextBox) T.Text = CStr(Z) End Sub Sub PS(ByVal A As Single, ByVal B As Single, _ ByVal C As Single, ByRef P As Single, _ ByRef S As Single) Dim Pp As Single P = (A + B + C) : Pp = P / 2 S = CSng(Sqrt(Pp * (Pp - A) * (Pp - B) * (Pp - C))) End Sub Sub PSPr(ByVal A As Single, ByVal B As Single, _ ByVal C As Single) Dim P As Single, S As Single PS(A, B, C, P, S) vivodSng3(P, TextBox4) : vivodSng3(S, TextBox5) End Sub Private Sub Button1_Click(ByVal sender As System.Object,_ ByVal e As System.EventArgs) _ Handles Button1.Click Dim A, B, C As Single A = vvodSng3(TextBox1) B = vvodSng3(TextBox2) C = vvodSng3(TextBox3) PSPr(A, B, C) End Sub Private Sub Button2_Click(ByVal sender As System.Object,_ ByVal e As System.EventArgs) _ Handles Button2.Click End End Sub End Class |
Рис. 4.3.4-9. Программный код проекта Проекта3.4-3
Пример 4.3.4-4. Вычислить значения арифметических выражений и вывести на экран результаты вычислений.
Исходные данные: x=1,4444b=0,318t=2,1a=1,3
Выполним запись арифметических выражений на языке VB:
Программный код показан на рис. 4.3.4-10.
Option Strict On Option Explicit On Imports System.Math Public Class Form1 Sub Pr348(ByVal x As Single,ByVal a As Single,ByVal b As Single,_ ByVal t As Single, ByRef y As Single, ByRef z As Single) y = CSng(9 * x ^ 2 + Sin(x) * Sin(x) * Sqrt(a + b)) z = CSng((Sqrt(x^t))^(1 / 3) * (a * x ^ 3 - (x * x) / (1/2))) End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) _ Handles Button1.Click Dim a, b, x, t, z, y As Single a = CSng(Val(TextBox1.Text)) : b = CSng(Val(TextBox2.Text)) x = CSng(Val(TextBox4.3.Text)) : t = CSng(Val(TextBox4.Text)) Pr344(x, a, b, t, y, z) TextBox5.Text = Str(y) TextBox6.Text= Str(z) End Sub End Class |
Рис. 4.3.4-10. Программный код Пример 3.4-4
Результат программы представлен на рис. 4.3.4-11.
Рис. 4.3.4-11. Результат программыПример 3.4-4
Выполнить ту же задачу с использованием функций InputBox() и
MsgBox( ) (Рис. 4.3.4-12).
OptionStrictOn OptionExplicitOn Imports System.Math Public Class Form1 Sub Pr3410(ByVal x As Single,ByVal a As Single, _ ByVal b As Single, ByVal t As Single, _ ByRef y As Single, ByRef z As Single) y = CSng(9 * x ^ 2 + Sin(x) * Sin(x) * Sqrt(a + b)) z = CSng((Sqrt(x^t))^(1 / 3) * (a * x^3 - (x * x) / (1 * 2))) End Sub PrivateSub Button1_Click(sender AsObject, e AsEventArgs) _ Handles Button1.Click Dim a, b, x, t, z, y AsSingle a = CSng(InputBox("Введите значение А", "Ввод 1 числа")) b = CSng(InputBox("Введите значение В", "Ввод 2 числа")) x = CSng(InputBox("Введите значение X", "Ввод 3 числа")) t = CSng(InputBox("Введите значение T", "Ввод 4 числа")) Pr3410(x, a, b, t, y, z) MsgBox("Значение Y = "& y, vbInformation, "Получаем ответ") MsgBox("Значение Z = "& z, vbInformation, "Получаем ответ") End Sub End Class |
Рис.4.3.4-12. Программный код Вычисления арифметических выражений использованием функций InputBox()и MsgBox( )
Результаты работы программы представлены на рис. 4.3.4-113,
4.3.4-14.
Рис. 4.3.4-13 Вывод значения YРис. 4.3.4-14. Полученное значение Z
Пример 4.3.4-5.Найти ёмкость конденсатора с, если известны: площадь пластин s и расстояние между ними L. Следует учесть, что в конденсатор вставлена пластина толщиной d, параллельная его обкладкам.
С – емкость конденсатора. E0 – электрическая постоянная =8,85.10-12 |
Код программы представлен на рис. 4.3.4-15.
Option Strict On Option Explicit On Imports System.Math Public ClassForm1 PrivateSub Pr3413(ByRef C AsSingle) Dim s, L, d, E0 AsSingle s = CSng(InputBox("Введите площади пластин", _ "Ввод площади пластин")) L = CSng(InputBox("Введите расстояние между пластинами", _ "Ввод расстояния между пластинами")) d = CSng(InputBox("Введите толщину пластины", _ "Ввод толщины пластин")) E0 = 0.00000000000885 'E0 = 8.85E-12 C = (E0 * s) / (L - d) EndSub PrivateSub Button1_Click(ByVal sender AsSystem.Object, _ ByVal e AsSystem.EventArgs) Handles Button1.Click Dim A, B, C AsSingle Pr3413(C) MsgBox("Ёмкость = "& C, vbInformation, "Ответ") End Sub End Class |
Рис. 4.3.4-15. Программный код Примера 3.4-5
Рис. 4.3.4-16. Результат Примера 3.4-5
При вводе исходных данных s=5,7, L=0,5 и d=0,001, емкость конденсатора c=1,010922E-10, что показано на рис. 4.3.4-14.
Вопросы, подлежащие изучению
1)Средства процедурного программирования в VB.
2)Средства описания процедур в VB.
3)Преимущества программ, имеющих процедуры.
4)Организация обмена данными между процедурами.
5)Роль фактических и формальных параметров.
6)Способы передачи параметров по значению и адресу.
7)Отличия в передаче значения результата выполнения функций и процедур.
8)Средства реализации алгоритмов линейной структуры.
9)Особенности разработки блок-схем алгоритмов, использующих процедуры.
4.3.7.2. Общее задание
1) Изучите структуру VB-программ, процедуры и средства программирования алгоритмов линейной структуры»
2) Первое задание:
2.1. Выберите индивидуальный вариант из табл. П.1.2-1.
2.2. Разработайте три алгоритма для решения 1-го задания, по которым будут реализованы три процедуры пользователя для вычисления заданного арифметического выражения: процедура-функция с формальными параметрами, процедура-подпрограмма с формальными параметрами и процедура без параметров (передача данных в соответствующем проекте будет осуществляться через глобальные объекты)ипредставьте их в виде схем алгоритмов.
2.3. Разработайте три процедуры пользователя по алгоритмам из п. 2.2 и создайте решение, содержащее три проекта, каждый из которых использует модуль формы, одну из разработанных в п.2.2 процедур пользователя, вычисляющую заданное арифметическое выражение, и событийную процедуру, в которой осуществляется ввод исходных данных, вызов соответствующей процедуры п.1.2 и вывод результатов.
2.4. Выполните созданные проекты и получите результаты.
2.5. Выполните созданные проекты по шагам, с помощью отладчика,
поставив точку останова после ввода данных.
2.6. Докажите, что результат правильный.
3) Второе задание:
3.1. Выберите индивидуальный вариант задания из таблицы 4.3.7-1.
3.2. Запишите заданные или полученные в процессе формализации математические формулы в виде арифметических выражений.
3.3. Разработайте алгоритм решения заданной задачи и
представьте его в виде схем алгоритмов.
3.4. Создайте проект, использующий модуль формы, процедуры пользователя, решающие предписанные задачи, процедуры ввода исходных данных и процедуру вывода результата. Обмен данными между процедурами должен осуществляться через параметры, без использования глобальных переменных. Событийная процедура должна содержать только операторы вызова пользовательских (общих) процедур.
3.5. Подготовьте тесты для контрольного решения задачи.
3.6. Выполните проект и получите результаты.
3.7. Докажите, что результат правильный.
Варианты индивидуальных заданий
Таблица 4.3.7-1
№ | Задача | ||||
1) | Определите периметры правильных n – угольников (10 – угольника, 50 – угольника, 100 – угольника), вписанных в окружность заданного радиуса R. Назначение процедуры: Вычисление стороны правильного n-угольника вычисление периметра n-угольника | ||||
2) | Определите длины всех медиан треугольника, заданного длинами сторон a,b,c. Назначение процедуры: Вычисление медианы, проведенной к стороне a: | ||||
3) | Определите углы между тремя векторами, направленными из общей начальной точки с координатами (0,0) в конечные точки: точку (2;5); точку (7;6); точку (9;3). Назначение процедуры: Вычисление угла между 2-мя векторами, проведенными из точки (0, 0) в точки (x1, y1) и (x2, y2) по формуле | ||||
4) | Вычислите площадь пятиугольника, заданного прямоугольными координатами своих вершин: A1(3;2), A2(9;6), A3(14;2), A4(10;-3), A5(7;-2) Использовать формулу площади треугольника: Назначение процедуры: Вычисление площади треугольника по заданным координатам его вершин: (x1;y1), (x2;y2), (x3;y3) | ||||
5) | Определите длины всех биссектрис треугольника, заданного длинами сторон a, b, c. Назначение процедуры: Вычисление биссектрисы угла | ||||
6) | ВычислитеR – расстояние между двумя точками A и B, заданными сферическими координатами. Соотношение между сферическими координатами и декартовыми Назначение процедуры: Вычисление декартовых координат точки по заданным сферическим координатам | ||||
7) | Вычислите значение площади полной поверхности треугольной пирамиды, если известны длины всех ребер: |AB| = 3; |AD| = 5; |DB| = 4; |DC| = ; |BC| = ; |AC| = 5. Для вычисления площади треугольника использовать формулу Герона: , где a, b, c - длины сторон треугольника. Назначение процедуры: Вычисление площади треугольника по формуле Герона | ||||
8) | Определите высоту, на которой будет мяч, подброшенный вертикально вверх с высоты y0=1м и начальной скоростью V0=20м/сек через время t=1сек, 3сек и 4сек Назначение процедуры: Вычисление высоты в момент t , где м/сек | ||||
9) | Определитеплощади правильных n - угольников (10-угольника; 50-угольника; 100-угольника), вписанных в окружность радиуса R Назначение процедуры: Вычисление стороны правильного n-угольника - радиус вписанной окружности; площадь n-угольника | ||||
10) | Определите площадь кольца, внутренний радиус которого равен R1; а внешний R2 (R2>R1). Назначение процедуры:Вычисление площади круга радиуса R: | ||||
11) | Вычислите полярные координаты 3-х точек, заданных прямоугольными координатами в правой полуплоскости. Формулы преобразования координат: . Назначение процедуры: Вычисление полярных координат по заданным прямоугольным координатам точки правой полуплоскости | ||||
12) | Определите площадь каждого из 3-х секторов с радиусами R1, R2, R3 и с центральными углами Назначение процедуры: Площадь сектора радиуса Rc центральным углом (в градусах) равна . | ||||
13) | Вычислите Назначение процедуры: Вычисление | ||||
14) | Определите стороны треугольника, заданного величинами своих углов и радиусом описанной окружности. Назначение процедуры: Применить теорему синусов | ||||
15) | Определите площадь каждого из 3-х кругов, ограниченных тремя окружностями, длины которых L1,L2,L3 известны. Назначение процедуры: Вычислить площадь круга предварительно вычислив R по формуле | ||||
16) | Определите углы треугольника, длины сторон которого a, b, c заданы. Назначение процедуры: Примените теорему половинного угла где угол, противолежащий стороне с | ||||
17) | Вычислите Назначение процедуры:Вычисление | ||||
18) | Определите общую длину дуги, образованной полуокружностями
Назначение процедуры:Вычисление длины половины окружности | ||||
19) | Вычислите стороны треугольника A и Bпри условии, что заданы сторона C и углы треугольника и . Назначение процедуры: Вычисление стороны треугольника по формуле ,где - угол, противолежащий стороне A, - угол, противолежащий стороне C | ||||
20) | Вычислите значения медиан треугольника, сторонами которого являются медианы исходного треугольника со сторонами a, b, c. Назначение процедуры:Вычисление длины медианы, проведенной к стороне a: | ||||
21) | Вычислите Назначение процедуры:Вычисление | ||||
22) | Вычислите Назначение процедуры: Вычисление | ||||
23) | Определите длину дуги каждого из трех секторов с радиусами R1, R2, R3 и с центральными углами Назначение процедуры: Длина дуги сектора радиуса R c центральным углом (в градусах) равна | ||||
24) | Вычислите координаты точки пересечения двух прямых: , вычисляемые по формулам: , где . Назначение процедуры:Вычисление определителя второго порядка. | ||||
25) | Вычислите Назначение процедуры:Вычисление | ||||
26) | Определите все углы треугольникапри заданных значениях сторон a, b, c. Назначение процедуры:Вычисление угла по теореме косинусов: | ||||
27) | Вычислите определенный интеграл для функции | ||||
28) | Вычислите площадь трех круговS1, S2 и S3с заданными диаметрами d1, d2 и d4.3. Назначение процедуры: Вычисление | ||||
29) | Вычислите Назначение процедуры:Вычисление | ||||
30) | Определите общую площадь фигуры, образованной полукругами
Назначение процедуры:Вычисление площади полукруга . |
Содержание отчёта
1)Тема и название лабораторной работы.
2)Фамилия, имя студента, номер группы, номер варианта.
3) Реализация 1-го задания:
3.1.Задание на разработку задачи.
3.2.Формализация и уточнение задания.
3.3.Элементы, разрабатываемых проектов в одном решении:
3.3.1) графический интерфейс пользователя;
3.3.2) таблица свойств объектов;
3.3.3) схемы двух алгоритмов;
3.3.4) программный код трех проектов;
3.4.Результаты выполнения трех проектов.
3.5.Доказательства правильности результатов.
4) Реализация 2-го задания:
4.1)Задание на разработку задачи.
4.2)Формализация и уточнение задания.
4.3)Элементы, разрабатываемого проекта:
4.3.1) графический интерфейс пользователя;
4.3.2) таблица свойств объектов;
4.3.3) схемы алгоритмов;
4.3.4) программный код проекта;
4.4)Результаты выполнения проекта 2-го
4.5)Доказательства правильности результатов.
Пример выполнения заданий (1-го и 2-го)
1) Тема и название лабораторной работы:
Структура VB-программ и процедуры.
Средства программирования алгоритмов линейной структуры.
2) Фамилия, имя студента, номер группы, номер варианта:
Иванов И., БИН1405, вариант 14.3.
3) Реализация 1-го задания –три проекта в одном решении:
3.1) Задание на разработку задачи:
Создайте приложение (решение), состоящее из трех проектов с именем Решение 3.1 для вычисления арифметического выражения (Тема3):
В каждом проекте для вычисления заданного арифметического выражения необходимо реализовать одну из следующих процедур: процедуру-функцию с формальными параметрами, процедуру-подпрограмму с формальными параметрами и процедуру без параметров (передача данных в соответствующем проекте будет осуществляться через глобальные объекты).
3.2) Формализация и уточнение задания:
Для формализации и уточнения задания запишите арифметическое выражение на языке программирования:
z = (0.002 - Exp(x^y)) / ((100 – y)*(x + 2))
В соответствии с требованиями задания разобьем решение задачи на несколько отдельных задач и создадим три процедуры пользователя, вычисляющие заданное арифметическое выражения: процедуру-функцию func() с двумя формальными параметрами, необходимыми для вычисления выражения и передающимися по значению как входные аргументы; процедуру-подпрограмму proc1() с тремя формальными параметрами, из которых два необходимы для вычисления выражения и передаются по значению как входные аргументы и один является результатом и передается по ссылке; процедуру-подпрограмму proc2() без параметров, в которой два необходим для вычисления выражения аргумента, а результат передаются через глобальные объекты.
3.3) Элементы, разрабатываемых проектов в одном решении:
3.3.1) Графический интерфейс пользователя:
Разработайте форму каждого проекта (форма проектов
может иметь такой же вид, как в примере Темы 2;
3.3.2) Таблица свойств объектов:
Установите и сведите в табл. 4.3.7-2свойства всех
объектов(эта таблица аналогична табл. 4.2.8-2);
3.3.3) Схемы алгоритмов процедур:
3.3.4) Разработайте схемы алгоритмов трех процедур
(рис. 4.3.7-1, . 4.3.7-2, . 4.3.7-3) и событийную процедуру
(рис. 4.3.7-4).
Рис. 4.3.7-1. Схема алгоритма процедуры функция func()
Проекта 3.1.1
Рис. 4.3.7-2. Схема алгоритма процедуры подпрограмма proc1()
Проекта 3.1.2
Рис. 4.3.7-3. Схема алгоритма процедуры proc2()
Проекта 3.1.3
Рис. 4.3.7-4Схема алгоритма событийной процедуры
Тема 3
Структура VB-программ, классы и процедуры. Средства программирования алгоритмов
линейной структуры
Структура простейших VB-программ
При создании простых Приложений WindowsFormsпрограммный код проекта, написанный на VB,может состоять из программного кода, генерируемого средой разработки, и программного кода, написанного или дописанного программистом. Причем базовая структура программы создается автоматически в тот момент, когда разработчик проекта выбирает в окне Создание проекташаблон Приложение WindowsForms.
Простые Приложения WindowsForms могут содержать следующие составляющие:
· операторыOption, определяющие основные правила обработки программного кода, предупреждающие синтаксические и логические ошибки:
Option Explicit,
Option Compare,
Option Strict;
· операторы Imports…, импортирующие в программу компоненты библиотек, определяемые в импортируемом пространстве;
· модули форм:
Public Class Имя_Формы
…
End Class;
· модули классов:
Public Class Имя_класса
…
End Class;
операторы описания типов, данных с ключевыми словами Dim, Private и
Public, находящиеся внутри модулей, классов и процедур;
процедуры, генерируемые средой разработки внутри модулей формы;
процедуры, написанные программистом, которые могут находиться
как внутри модулей формы, так и внутри стандартных модулей (общие
процедуры).
Таким образом, программный код VBхранится в программных моду
лях в виде процедур (методов). Эти программные модули могут быть
двух видов:
· модуль формы;
· модуль класса.
При рассмотрении базовых средств программирования VB будут использоваться только Приложения WindowsForms, которые состоят из одной формы, и содержат, как правило, только один модуль – модуль формы.
В свою очередь модуль формы может содержать процедуры событий, процедуры пользователей и операторы описания данных (простых переменных, массивов и констант) с ключевыми словами Dim, Private и Public.
Таким образом, программный код простого приложения будет иметь структуру, приведенную на рис. 4.3.1-1.
|
PrivateSubForm1
Описание глобальных данных |
Процедура пользователя - 1 (Общая процедура - 1) |
…
Процедура пользователя - n (Общая процедура – n) |
Процедура обработки событий - 1 |
…
Процедура обработки событий - m |
EndClass
Рис. 4.3.1-1. Структура простейшего приложения
В дальнейшем, по мере усложнения приложения в нем могут создаваться модули классов, стандартные модули, а если программа достаточно большая, в ней будет несколько форм и большое число процедур событий, которые используют одни и те же п