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

4.3.2. Создание и использование процедур
пользователей

Ранее мы познакомились со «встроенными» (т.е. готовыми к употреблению) процедурами (например, Sqrt()), которые в VB являются методами класса. Мы также познакомились с процедурами обработки событий, которые являются частью пользовательского интерфейса и которые выполняются, только если происходит некоторое событие. В отличие от «встроенных процедур», эти процедуры разрабатывает программист (разработчик проекта).

Что же собой представляют процедуры? Процедуры представляют собой отдельные блоки, из которых складывается программный код любого модуля проекта, причем каждая процедура должна выполнять какую-то законченную задачу (функцию).

Кроме процедур обработки событий, в программный код модуля можно включить процедуры, не связанные с событиями. Они выполняют отдельные действия (функции) и могут быть использованы (вызваны) неоднократно, но с различными параметрами. Как известно, они называются общими или методами класса. Процедуры (методы) общего назначения вызываются на выполнение из программного кода другой процедуры или класса. Использование процедур экономит время разработки приложения и позволяет избежать лишних ошибок.

Процедуры могут быть двух видов: процедуры-подпрограммы и процедуры-функции. Процедуры-функции отличаются от процедур-подпрограмм тем, что возвращают какое-то одно значение и поэтому могут участвовать в выражениях. Причем под подпрограммой или функцией понимается последовательность операций, которую нужно многократно выполнять в различных местах приложения. При этом требуемый блок команд описывается в программном коде только один раз, после чего к нему можно обращаться из любой части программы и неоднократно.

Процедуры, которые будут рассмотрены ниже, не относятся ни к встроенным процедурам, ни к процедурам обработки событий – это общие процедуры.

Общие процедуры, в отличие от процедур обработки событий, начинают выполняться не в ответ на какое-либо событие, а после их явного вызова в программном коде. После выполнения такой процедуры происходит автоматический возврат в то место программного кода, откуда процедура была вызвана.

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

Входные параметры процедуры – это переменные, значения которых при вызове этой процедуры должны быть определены (присвоены допустимые значения) и, которые участвуют в вычислительном процессе (реализации) процедуры. При описании процедуры перед ними ставиться ключевое слово ByVal.

В общем случае процедуры являются способом объединения набора связанных между собой элементов программного кода для выполнением конкретной задачи (алгоритма). В VBимеются два основных типа процедур:

1)Процедуры типа Function– процедура-функция илипроцедура-Function вызываются из процедур со­бытий или других процедур по имени.Процедуры-Functionчасто используются для вычислений различных выражений, могут получать входные параметры, и предназначены для возврата одного значения через свое имя.

2)Процедуры типа Sub– процедура–подпрограмма илипроцедура-Sub вызываются из процедур со­бытий или других процедур по имени. Они могут получать входные параметры и возвращать выходные параметры, значения которых получены в результате работы процедуры. Однако, в отличие отпроцедуры-Function, процедуры-Sub не возвращают значения, свя­занного с их именами.

Процедуры-Functionи процедуры-Subдолжны быть предварительно определены (описаны) в коде программы формы до их вызова.

Использование процедур общего назначения предоставляет следующие преимущества:

· позволяет связать часто используемую группу операторов программ кода со знакомым именем;

· устраняет повторы фрагментов программного кода, т.е. можно один раз определить процедуру и вызывать (обращаться) любое количество раз;

· делает программный код более простым и легко читаемым, так как, разделенный на небольшие части он, легче воспринимается, чем оформленный в виде одного большого фрагмента;

· упрощает разработку проектов, так как проект, разделенный на логические (функциональные) единицы, легче разрабатывать и отлаживать; кроме того, если программный проект разрабатывается группой разработчиков, то можно обмениваться готовыми процедурами и модулями;

· позволяет повторно использовать процедуры в других проектах и решениях (можно легко встроить процедуры из стандартного модуля в другие программные проекты);

· расширяет язык VB (процедуры часто могут выполнять задачи, которые не могут быть выполнены отдельными операторами VB).

Описаниепроцедуры-Function– это группа операторов, расположенных между ключевыми словами Functionи EndFunction. Операторы в процедуре-Function выполняют осмысленную работу – в соответствии с заданным алгоритмом. Они используются только тогда, когда результатом выполнения процедуры является значение, какой-либо одной величины числового, строкового или логического типа. Чтобы выполнить (вызвать) – функцию, необходимо поместить в любое допустимое выражение программного кода имя этой функции и все требуемые для нее фактические параметры.

Аргументы (формальные параметры) процедуры-Function– это переменные, используемые для работы функции, и они должны быть заключены в круглые скобки после имени и разделены запятыми. В целом использование процедуры-Functionв точности совпадает с использованием встроенных функций. Функции, объявленные (описанные) в модуле формы, по умолчанию являются открытыми в пределах данной формы. В результате они могут использоваться (вызываться) из лю­бой процедуры события проекта или из другой процедуры модуля формы.

Описание процедуры-функции имеет следующий синтаксис:

FunctionИмяФункции (ФормальныеПараметры)AsТипВозЗначения … ОператорыФункции … Returnзначение или ИмяФункции = значение … End Function

Здесь важными являются следующие синтаксические элементы:ИмяФункции–это уникальное имя создаваемой функции;

· ТипВозЗначения–это тип значения, возвращаемого функцией, то есть тип величины, которая является результатом работы функции;

· ФормальныеПараметры (аргументы) –это список необязательных аргументов, разделенных запятыми и используемых в данной функции. Каждый аргумент дол­жен быть объявлен с указанием конкретного типа данных и типа возвращаемого значения. По умолчанию VB добавляет к каждомуаргументу ключевое слово ByVal, которое указывает на то, что в функцию через данный аргу­мент передается копия значения фактического параметра, и все изменения значения этого ар­гумента не будут возвращены в вызывающую процедуру – передача параметров по значению;

ОператорыФункции–это блок операторов, который выполняет работу функции;

Return–это оператор, с помощью которого можно указать место, где в блоке кода функции требу­ется возвратить значение в вызывающую программу, и каково это возвращаемое значение. После выполнения этого оператора происходит выход из процедуры-функции и управление передается в то место программы, откуда эта процедура-функция была вызвана.

Процедуры-Subпохожи на процедуры-Function, за исключе­нием того, что процедура-Sub не возвращает значения, связанного с ее именем.

Базовый синтаксис описания процедуры Subимеет вид:

SubИмяПроцедуры (ФормальныеПараметры) … ОператорыПроцедуры … EndSub

Отметим следующие синтаксические элементы:

· ИмяПроцедуры– это имя создаваемой процедуры-Sub.

· Формальные параметры (аргументы)– это список необязательных аргументов, разделенных запятыми, если их больше одного. Причем каждый аргумент должен быть объявлен с указанием конкретного типа данных и типа возвращаемого значения. Формальные параметры в процедуре-Sub могут быть как входные так и выходные. По умолчанию VS добавляет к каждому ар­гументу ключевое слово ByVal, которое указывает на то, что в процедуру-подпрограмму через данный аргумент передается копия значения, и все изме­нения значения этого аргумента не будут возвращены в вызывающий код. Кроме параметров типа ByValв процедуре-Subмогут параметры типа ByRef.

· ОператорыПроцедуры– это блок операторов, который выполняет работу процедуры по заданному алгоритму.

При вызове процедуры-Sub количество и типы аргументов, переда­ваемых в процедуру (они называются фактическими параметрами), должны совпадать с количеством и типом аргумен­тов, указанных при объявлении (описании) процедуры (это формальные параметры), и вся группа аргументов должна быть заключена в круглые скобки. Таким образом, количество и типы соответствующих друг другу формальных и фактических параметров должны совпадать. Если переменные, передава­емые в процедуру-Sub, изменяют свое значение при ее выполнении, то значения этих переменных не возвращаются в вызываемую процедуру, если эти аргу­менты не объявлены с помощью ключевого слова ByRef. По умолчанию процедуры-Subв модуле объявляются как открытые, так что они могут вызываться лю­бой процедурой проекта.

4.3.3. Передача параметров по значению (ByVal)
и по ссылке (ByRef)

Итак, каждой процедуре присваивается уникальное название – имя процедуры. Кроме того, для процедуры четко устанавливается перечень входных и выходных аргументов (входных и выходных параметров). Прежде чем определять процедуру, необходимо четко представить, чтопроцедура делает, что она должна получать (что у нее на входе) и какие результаты возвращать (что на выходе). Параметры, перечисляемые в скобках при описании процедуры, называются формальнымипараметрами (перед такими параметрами обязательно ставится клю­чевое слово ByValилиByRef(тип вызова данного параметра)ипосле имени параметра указывается его тип значений данного параметра). Параметры, которые указываются при вызове процедуры, называются фактическими. Передача параметров в процедуру из вызывающей процедуры может осуществляться двумя способами: по значению (ByValue) или по ссылке (ByReference). Обычно по значению передаются входные параметры, а по ссылке – выходные.

Входной параметр процедуры – это переменная, значение которой при вызове процедуры должно быть установлено до начала работы процедуры и которая участвует в работе процедуры. Перед таким параметром ставится клю­чевое слово ByVal(передача по значению).В этом случае в процедуру передается не сама переменная, а ее копия. В момент вызова процедуры для хранения формального параметра в ней создается локальная переменная, которая получает копию значения фактического параметра, а после окончания работы процедуры эта локальная переменная уничтожается. Поэтому изменение формального параметра в процедуре не затрагивает фактический параметр, так как изменяется не сама переменная, а ее копия и таким образом все изменения, сделанные в переменной, переданной по значению, не передаются об­ратно в вызывающую процедуру.

Выходной параметр процедуры– это переменная, которая получает свое значение в результате работы процедуры. Использование ключевого слова ByRefуказывает, что переменные должны быть переданы в процедуру по ссылке. Это значит, что процедура не создает локальную переменную под формальный параметр, а получает доступ к области памяти, в которой хранится фактический параметр, т.е. получает его адрес. Поэтому все изменения, сделанные в рамках процедуры, будут производиться прямо на тех же ячейках памяти, в которых хранится фактический параметр, и следовательно переданы обратно в вызывающий код.

При выборе способа передачи параметра (по ссылке или по значению) решающий критерий – должен ли параметр изменять свое значение в процедуре.

Вот некоторые рекомендации о том, когда следует использовать ByVal, а когда - ByRef:

· используйте ByValтогда, когда требуется, чтобы процедура не изме­няла передаваемую в нее через аргумент переменную;

· используйте ByRef тогда, когда требуется позволить процедуре из­менять передаваемую в нее переменную;

· когда сомневаетесь, используйте ключевое слово ByVal, так как в этом случае фактический параметр гарантированно не будет изменен в ходе выполнения процедуры.

Однако так как при передаче по значению происходит копирование объекта, данные большого объема (например, структуры или многомерные массивы) более эффективно передавать по ссылке.

Структуру программы, оператор присваивания и выражения мы уже разобрали. Для реализации алгоритмов линейной структуры необходимо знать, как может быть реализован в VB ввод исходных данных и вывод результатов.

4.3.4. Средства программирования алгоритмов
линейной структуры и процедуры ввода
и вывода

Последовательными называются такие алгоритмические струк­туры, в которых функциональные блоки вы­полняются в том порядке, в котором они записаны или изо­бражены на схеме алгоритма.

    P1, P2, Pn – выражения, операторы, процедуры  

Рис. 4.3.4-1. Схема алгоритма линейной структуры

Такая структура может быть составлена из совокупности программных блоков «Пуск/останов», «Ввод/вывод», а также блоков «Процесс» (рис. В.3-2). Cхема алгоритма линейной структуры приведена на рис. 4.3.4-1.

Обычно для ввода информации в программном коде проекта программист может использовать объект текстового поля формы TextBoxи его свойство Text.

Поскольку технология современного программирования предполагает максимальное использование процедур при разработке программных проектов, в своих работах для ввода исходных данных, например, типа Doubleможно использовать следующую процедуру-Function:

'процедура-Function ввода данных типа Double 'изтекстовогополя TextBox Function vvodDbl1(ByVal T As TextBox) As Double Return (Val(T.Text)) End Function

Вызов(обращение) такой процедуры, например, для ввода значения переменной x1типа Double из текстового поля TextBox1формы можно осуществлять следующим образом:

Dim x1 As Double x1 = vvodDbl1(TextBox1)

Вторым способом ввода информации является использование библиотечной функции InputBox( )VBдля отображения на экране диалогового окна, и последующее использо­вание переменной для хранения текста, введенного пользователем.

Функция InputBox( )вызывает окно InputBox,которое состоит из четырех элементов (рис. 4.3.4-2):

Окно ввода – это стандартное диалоговое окно, которое появляется на экране в результате вызова функции InputBox(). Значение функции
InputBox() – строка, которую ввёл пользователь. Поэтому, если программе надо получить число, то введённая строка должна быть преобразована в число при помощи соответствующей функции преобразования. Стандартное окно InputBoxдля ввода представлено на рис. 4.3.4-2.

Обратите внимание на то, что в соответствии с технологией ООП все переменные, используемые внутри процедур, являются локальными, а число глобальных переменных должно быть минимально необходимо. - student2.ru  

Рис.4.3.4-2. Стандартное окно для ввода данных

Синтаксис функции InputBox() ввода данных выглядит так:

Переменная = InputBox("Приглашение", "Заголовок")

Где,

· Приглашение– это любой текст, который должен находиться в Окне ввода. Его назначение – служить подсказкой пользователю, какую информацию он должен ввести в специальное поле ввода, находящееся в этом окне;

· Заголовок– это надпись в строке заголовкаОкна ввода.

Например,

Name = InputBox("Введите, пожалуйста, первое число", "Ввод числа")

Вывод в окно сообщения(рис. 4.3.4-3)можно осуществить с помощью функции MsgBox(). Она позволяет поместить в окно с сообщением один из стандартных значков, например, "Внимание", задать количество и тип командных кнопок и определить, какую из кнопок нажал пользователь.

Синтаксис функции MsgBox()выглядит так:

В = MsgBox ("Сообщение", НомерКнопки, "Заголовок")

Где,

· Сообщение– представляет собой текст, который будет отображен на экране;

· НомерКнопки – указывает тип отображаемых кнопок, тип используемой пиктограммы;

· Заголовок – это надпись в строке заголовка Окна вывода.

Возможные установки дляНомерКнопки представлены в табл. 4.3.4-1.

Таблица 4.3.4-1

Константа Описание
MsgBoxStyle.Ok Отображает только кнопку Ок
MsgBoxStyle.OkCancel Отображает кнопки Ок и Отмена
MsgBoxStyle.AbortRetryIgnore Отображает кнопки Стоп,Повтор,Пропустить
MsgBoxStyle.YesNoCancel Отображает кнопкиДа, Нет, Отмена
MsgBoxStyle.YesNo Отображает кнопкиДа, Нет
MsgBoxStyle.RetryCancel Отображает кнопки Повтор и Отмена
MsgBoxStyle.Critical Отображает запрещающую пиктограмму
MsgBoxStyle.Question Отображает предупреждающую пиктограмму (знак вопроса на белом фоне)
MsgBoxStyle.Exclamation Отображает предупреждающую пиктограмму (знак вопроса в красном треугольнике)
MsgBoxStyle.Information Отображает информационную пиктограмму

Обратите внимание на то, что в соответствии с технологией ООП все переменные, используемые внутри процедур, являются локальными, а число глобальных переменных должно быть минимально необходимо. - student2.ru

Рис.4.3.4-3.Формадля ввода и вывода данных

Пример 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).

Обратите внимание на то, что в соответствии с технологией ООП все переменные, используемые внутри процедур, являются локальными, а число глобальных переменных должно быть минимально необходимо. - student2.ru

ис. 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).

Обратите внимание на то, что в соответствии с технологией ООП все переменные, используемые внутри процедур, являются локальными, а число глобальных переменных должно быть минимально необходимо. - student2.ru

Рис. 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.

Обратите внимание на то, что в соответствии с технологией ООП все переменные, используемые внутри процедур, являются локальными, а число глобальных переменных должно быть минимально необходимо. - student2.ru

Рис. 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

Обратите внимание на то, что в соответствии с технологией ООП все переменные, используемые внутри процедур, являются локальными, а число глобальных переменных должно быть минимально необходимо. - student2.ru

Выполним запись арифметических выражений на языке VB:

Обратите внимание на то, что в соответствии с технологией ООП все переменные, используемые внутри процедур, являются локальными, а число глобальных переменных должно быть минимально необходимо. - student2.ru

Программный код показан на рис. 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.

Обратите внимание на то, что в соответствии с технологией ООП все переменные, используемые внутри процедур, являются локальными, а число глобальных переменных должно быть минимально необходимо. - student2.ru

Рис. 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.

Обратите внимание на то, что в соответствии с технологией ООП все переменные, используемые внутри процедур, являются локальными, а число глобальных переменных должно быть минимально необходимо. - student2.ru Обратите внимание на то, что в соответствии с технологией ООП все переменные, используемые внутри процедур, являются локальными, а число глобальных переменных должно быть минимально необходимо. - student2.ru
     

Рис. 4.3.4-13 Вывод значения YРис. 4.3.4-14. Полученное значение Z

Пример 4.3.4-5.Найти ёмкость конденсатора с, если известны: площадь пластин s и расстояние между ними L. Следует учесть, что в конденсатор вставлена пластина толщиной d, параллельная его обкладкам.

Обратите внимание на то, что в соответствии с технологией ООП все переменные, используемые внутри процедур, являются локальными, а число глобальных переменных должно быть минимально необходимо. - student2.ru С – емкость конденсатора. 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

Обратите внимание на то, что в соответствии с технологией ООП все переменные, используемые внутри процедур, являются локальными, а число глобальных переменных должно быть минимально необходимо. - student2.ru

Рис. 4.3.4-16. Результат Примера 3.4-5

При вводе исходных данных s=5,7, L=0,5 и d=0,001, емкость конденсатора c=1,010922E-10, что показано на рис. 4.3.4-14.

Наши рекомендации