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

Текст программы:

Private Sub Комманда1 _Click() ' Кнопка Расчет

Dim x0 As Single, xk As Single, h As Single, x As Single, y As Single

Cls ' Очистка формы

x0 = Val(InputBox("Ввод x0 - начального значения аргумента"))

xk = Val(InputBox("Ввод xk - конечного значения аргумента"))

h = Val(InputBox("Ввод h - шага изменения аргумента"))

Print Tab(7); "Функция y = 1.2sin(3x)"

For x = x0 To xk + h/2 Step h

y = 1.2 * Sin(3 * x)

Next x

End Sub

38. Двумерные массивы – матрицы. Объект ListBox. Программа транспонирования матрицы

Для описания многомерных массивов используются конструкции, аналогичные конструкциям для одномерных массивов. Отличие состоит в том, что при объявлении массивов через запятую указываются несколько границ размерностей. Например, двумерный массив из 6 столбцов и 5 строк, содержащий целые числа, объявляется следующим образом:

Dim D (1 To 5, 1 To 6) As Integer

ListBox – управляющий элемент. Поле списка позволяет отображать элементы списка и выбирать их.

Текст программы:

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

Dim tr, tc As Integer : Dim s As String

Randomize Timer

Dim a(1 To 3, 1 To 3) As Integer

Dim b(1 To 3, 1 To 3) As Integer

For tr = 1 To 3

s = " "

For tc = 1 To 3

a(tr, tc) = Int(10 * Rnd)

s = s & " " & Str(a(tr, tc))

Next tc

Список1.AddItem s

Next tr

For tr = 1 To 3 ‘транспонирование

For tc = 1 To 3 ‘матрицы

b(tr, tc) = a(tc, tr)

Next tc : Next tr

For tr = 1 To 3

s = " "

For tc = 1 To 3

s = s & " " & Str(b(tr, tc))

Next tc

Список2.AddItem s

Next tr

End Sub

39. Вывод матрицы на форму

40. формированием списка.

41. Алгоритм и программа вычисления суммы элементов матрицы по столбцам.

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

Dim tr, tc, i, j As Integer : Dim s As String

Randomize Timer

Dim a(1 To 3, 1 To 3) As Integer

Dim b(1 To 3) As Integer

For tr = 1 To 3

s = " "

For tc = 1 To 3

a(tr, tc) = Int(10 * Rnd)

s = s & " " & Str(a(tr, tc))

Next tc

Список1.AddItem s

Next tr

For j = 1 To 3

b(j) = 0

For i = 1 To 3

b(j) = b(j) + a(i, j)

Next i

Next j

s = " "

For j = 1 To 3

s = s & " " & Str(b(j))

Next j

Список2.AddItem s

End Sub

42, 43. Операторы цикла Do While…Loop, Do.. Loop While, Do Until…Loop, Do.. Loop Until. Пример.

Оператор цикла Do-Loop. Логически управляемый цикл, оператор Do — начало, оператор Loop — конец цикла.

Оператор имеет четыре модификации:

1) Условие имеет значение True в начале цикла.

Структура:

Do While <условие>

<блок операторов>

Exit Do <блок операторов>

Loop

Цикл выполняется пока истинно условие. Оператор Exit Do предназначен для прекращения цикла и передачи управления оператору Loop — конец цикла.

2) Условие имеет значение True в конце цикла.

Структура:

Do

<блок операторов>

Exit Do

<блок операторов>

Loop While <условие>

Цикл выполняется хотя бы один раз, проверка условия в конце цикла.

3) Условие False в начале цикла.

Структура:

Do Until <условие>

<блок операторов>

Exit Do

<блок операторов>

Loop

Цикл выполняется до тех пор, пока условие не станет истинным.

4) Условие False в конце цикла.

Структура:

Do

<блок операторов>

Exit Do

<блок операторов>

Loop Until<условие>

Условие проверяется в конце цикла. Цикл прекращается, когда условие станет истинным.

Пример:

Do While True

A=Rnd :Debug.Print a

If a>0.99 Then Exit Do

Loop

44. Цикл While-Wend. Пример.

Цикл While-Wend аналогичен циклу Do While-Loop, проверка условия выполняется в начале цикла.

Структура:

While <условие>

<блок операторов>

Wend.

Пример программы на использование цикла с условием. Расчёт количества расфасованных пакетов.

Private Sub Command_Click()

M=100: I=0

Print “Номер “, “Остаток “

Do

I=I+1

If I>99 then Exit Do ‘Оператор Exit Do служит для

прерывания цикла, помещается

внутри цикла и приводит передаче

управления следующему за

циклом оператору

M=M-M/100

Loop Until M<5

Print I, M

End Sub

45. Цикл For Each. Пример

Цикл For Each. Оператор относится к категории объектных операторов, т.е. применяется к массивам, наборам объектов, коллекциям. Выполняется фиксированное число раз, число объектов в наборе определяется автоматически.

Структура:

For Each <элемент> In <набор>

<блок операторов>

Exit For

<блок операторов> Next <элемент>

Пример:

For each z In arrx

n=n+1

x(n)=z

Next z

Пример программы с оператором For Each:

Function intl (arrx; arry; x_new)

Dim i As Integer

Dim n As Integer

Dim j As Integer

Dim x (1 to 100) as Double

Dim y (1 to 100) as Double

Dim z

n=0

For each z in arrx

n=n+1

x(n)=z

Next z

n=0

For each z in arry

n=n+1

y(n)=z

Next z

For i=1 to n-1

If x(i) <= x_new And x(i+1)>= x_new Then j= i

Next i

If x_new > x(n) Then j = n – 1

If x_new < x(1) Then j = 1

Intl = y(j) + (y( j+1 ) – y( j ) ) * (x_new – x ( j )) / (x( j + 1) – x(j))

End Function

Цикл For Each…Next похож на цикл For …Next, но он повторяет группу операторов для каждого элемента из набора объектов (коллекции). Он особенно удобен, тогда, когда заранее не известно, сколько элементов содержится в наборе. Для наборов параметром этого цикла может быть только переменная типа Variant, Object или объектом перечисленным в Object Browser. Для массивов параметром этого цикла может быть только переменная типа Variant. Нельзя использовать этот цикл с массивом, имеющим определённый пользователем тип.

46. Процедуры в VB. Три типа процедур. Общие процедуры.

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

  • Процедуры SUB (не возвращает значения);

  • Процедуры Function (возвращает значение);

  • Процедуры Property (могут возвращать и присваивать значение, а также устанавливать ссылки на объекты).

Общая процедура указывает приложению, как выполнять конкретную задачу. Однажды определённая, она должна каждый раз специально вызываться приложением. В противоположность ей процедура обработки события после вызова остаётся в ожидания событий, вызванных пользователем или инициированных системой. Так программа обработки события Click вызывает процедуру Sub с именем CommandButton1, которая выполняет свой код и возвращает управление процедуре обработки события Click. Как только объект в VB распознаёт, что произошло событие, он активизирует процедуру обработки события с именем, соответствующем данному событию. Так как имя процедуры устанавливает связь между объектом и кодом, то говорят, что процедуры обработки событий прикреплены к формам и элементам управления.

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