Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на билеты по VB.docx
Скачиваний:
2
Добавлен:
21.09.2019
Размер:
840.17 Кб
Скачать

47. Процедуры Sub в vb. Формальные и фактические параметры.

Процедура SUB – это блок кода, который выполняется в ответ на событие. Синтаксис процедуры:

[Private/Public ] [Static ] Sub <имя_процедуры>(аргументы)

Операторы тела процедуры

End Sub

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

Существуют два способа вызова процедуры Sub. Например для процедуры Prog1 c параметрами а и b:

Call Prog1(a,b) или Prog1 a,b . Как видно из примера при использование оператора Call, параметры заключены в круглые скобки.

Ключевое слово ByVal служит признаком того, что параметр передаётся по значению. Например:

Sub PostAcc(ByVal AcctNum As Integer)

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

Формальные параметры – наименование переменных с указанием их типов, через которые передается информация из основной программы или другой процедуры в процедуру.

Выполнение параметра вызова процедуры состоит в следующем:

  • Все формальные параметры заменяются соответствующими фактическими

  • Создаётся динамический экземпляр процедуры, который и выполняется

  • После выполнения процедуры происходит передача управления в основную программу

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

48. Программа, использующая процедуры ввода и вывода элементов одномерного массива

Sub Input_mas (n as Integer, A() As Integer, im As String)

Dim I As Integer

n = Val(inputbox («Ввод числа элементов массива» & im))

ReDim A (1 To n)

For i=1 To n

A(i) = Val(InputBox((«Ввод ”& I &” элемента массива” & im))

Next i

End Sub

Sub Output_mas (ByVal n as Integer, A() As Integer, im As String)

Dim I As Integer

Print Tab(3); «Массив»; im

For I To n

Print A(i); ” “ ;

Next i

Print

End Sub

49. Процедура Function в VB. Пример.

В VB кроме стандартных встроенных функций можно писать собственные процедуры Function. Её синтаксис таков:

[Private/Public][Static]Function<имя_процедуры>

(аргументы) [As type]

<Операторы тела процедуры>

End Function

Вызов процедуры Function чаще всего осуществляется заданием её имени и параметров в тексте выражения.

Процедура Function имеет тип, который определяет тип возвращаемого выражения.

Возвращаемое процедурой Function значение присваивается переменной с именем процедуры.

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

Function ForLunch(WeekDay As String, Hour As integer) As String

If WeekDay=“четверг” then

ForLunch=“рыба”

Else

ForLunch= “куры”

End if

If Hour >4 then ForLunch=“ Too late”

End Function

Пример: Получить таблицу значений функции по формуле: y=(arcsin(x*x)+arcsin(x))/arctan(x).

Private Sub Комманда1_Click()

Dim M, Y As Single

Dim a, b, c, l As Single

a = Val(Текст1.Text)

b = Val(Текст2.Text)

c = Val(Текст3.Text)

n = Int((b - a) / c)

l = a - c

For k = 1 To n

s = " "

l = l + c

M = l

s = “№" & Str(k) & "=" & Str(M)

Список1.AddItem s

Y = arcsin(M ^ 2) + arcsin(M) / Atn(M)

s = " "

s = “№" & Str(k) & "=" & Str(Y)

Список2.AddItem s

Next k

End Sub

Function arcsin(x)

arcsin = Atn(x / Sqr(1 - x * x))

End Function

50. Программа табулирования функции в VB. Пример.

Разработать приложение, реализующее табулирование функции y=1,2sin(3x) при изменении аргумента х в диапазоне [x0,xk] с шагом h.