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

Пример:

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

Randomize Timer

Dim Ver As Single: Ver = Rnd

Текст1 = IIf(Ver < 0.75, "Яблоки", "Грибы")

Текст2 = IIf(Ver < 0.75, "Яблочный пирог", "Пирог с грибами")

End Sub

30.Понятие массива. Описание массивов в VB. Динамические масивы.

Переопределение массивов.

В VBA различают два вида переменных — простые переменные и переменные структурного типа.

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

Массив представляет собой структуру, все элементы которой имеют одинаковый тип. Например, это могут быть данные, определяющие вектор или матрицу. Массивы могут быть одномерными и многомерными. Так, для отображения вектора может быть использован одномерный массив, а для отображения матрицы — многомерный.

Объявление массива имеет следующий вид:

Dim / Public / Private Имя_Массива (индексы)_Аs Тип_Данных

где:

Dim / Public / Private — ключевые слова, декларирующие массив в области его видимости;

Имя_Массива —идентификатор, определяющий имя массива;

Индексы — значение индекса (номера) последнего элемента в массиве, считая с нулевого;

As — ключевое слово, определяющее указание типа элементов массива;

Тип_Данных - любой, действительный для Visual Basic тип данных базовый или созданный пользователем.

Примеры описания статических массивов:

Dim B (5) As Single ' описан одномерный массив из 6 чисел вещественного типа

Dim C (1 To 12) As Integer ' описан одномерный массив из 12 целых чисел.

Объявление одномерного массива из восьми элементов выглядит следующим образом:

Dim МуАrrау (7) As integer 'одномерный целочисленный массив из 8 элементов.

При объявлении многомерного массива в поле индекса указывают несколько индексов в соответствии с размерностью массива. Двумерный массив из шести столбцов и пяти строк объявляется следующим образом:

Dim StrArray (4,5) As String ' двумерный массив из 5строк и 6 столбцов.

Пример заполнения массива:

Dim B ( ) As Single, N As Integer, i As Integer

N = Val(InputBox("Ввод количества элементов массива В"))

ReDim B (1 To N)

For i = 1 To N

B(i) =Val (InputBox("Ввод " & i & " элемента массива","Ввод с клавиатуры"))

Next i

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

В этом случае первоначально массив объявляется как динамический. Для этого в объявлении не указывается размерность. Например:

Dim strMyArray () As String

Количество элементов в объявленном массиве и его размерность в процессе выполнения программы можно переопределить с помощью ключевого слова ReDim. Синтаксическая конструкция переопределения массива имеет вид:

ReDim [Preserve] ИмяМассива (индексы) [As ТипДанных]

где:

ReDim — ключевое слово, указывающее что переопределяется размеры массива;

Preserve — необязательное ключевое слово, с помощью которого дается указание, чтобы все элементы переопределенного массива сохранили свое значение;

Индексы — размерность массива (до 60).

Пример:

Dim strMyArray () As String 'объявление динамического масива

Dim intValarray As integer 'объявление переменной для хранения размерности

intValArray = 9 'инициализация значения

ReDim strMyArray (intValArray) 'одномерный массив из 10 элементов (базовый индекс равен 0)

Или другой пример:

Dim array ( ) As Long ' объявление динамического массива

……..

n = Val(InputBox("Ввод количества элементов массива array"))

ReDim array (1 To n) ' одномерный массив из n элементов

31. Ввод элемента массива с помощью датчика случайных чисел, функции InputBox, предварительно созданного диска, с помощью функции Array. Примеры.

32. Оператор цикла For Next. Программа вычисления факториала.

Для того чтобы организовать повторение операций используют оператор цикла For Next. Оператор используется тогда, когда заранее известно число повторений цикла. Это многострочный оператор, его синтаксис таков:

For Имя=Значение1 To Значение2 [Step Значение3]

исполняемые операторы

Next [Имя]

Имя – это имя переменной, которую называют счётчиком.

Значение1 – начальное значение счётчика.

Значение2 – конечное значение счётчика.

Значение3 – величина шага.

Задача:

Вычислить факториал от числа. Число заносится в текстовое поле 1, а результат в текстовое поле 2. Вычисления производятся при нажатие командной кнопки.

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

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

Dim n, I As Integer, Nf As Long

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

Nf = 1

For I=1 To n

Nf = Nf *I

Next I

Текст2.Text = Str(Nf)

End Sub

33. Алгоритм и программа Сумма.

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

Dim MyArray As Single

Dim intValarray As Integer

intValarray = Текст1.Text

S = 0

For i = 0 To intValarray

MyArray = InputBox("Введите элемент массива :", " a(i)=")

S = S + MyArray

Next

Текст2.Text = S

End Sub

34. Алгоритм и программа Счётчик.

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

Dim MyArray As Single

Dim intValarray As Integer

intValarray = Текст1.Text

k=0

For i=1 To n

If a(i)>= s And a(i) <= y then k=k+1

Next i

Текст2.Text = k

End Sub

35. Алгоритм и программа Максимум.

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

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

Dim MyArray As Single

Dim intValarray As Integer

intValarray = Val(Текст1)

ReDim a(intValarray) As Single

Max = -1000: k = 0

For i = 0 To intValarray

MyArray = InputBox("Введите э-т массива :", "Ввод a(i)=")

Список1.AddItem MyArray ‘метод AddItem используется

Список2.AddItem i ‘для добавления элементов в список

a(i) = MyArray

If a(i) > Max Then Max = a(i): k = i

Next

Текст2.Text = Max

Текст3.Text = k

End Sub

36. Алгоритм и программа Сортировка методом «пузырька».

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

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

Dim a(1 To 10) As Integer

Randomize Timer

For k = 1 To 10

a(k) = Int(10 * Rnd)

Список1.AddItem a(k)

Next k

For i = 1 To 9

For j = i + 1 To 10

If a(i) > a(j) Then

b = a(i): a(i) = a(j): a(j) = b

End If

Next j

Next i

For k = 1 To 10

Список2.AddItem a(k)

Next k

End Sub

37. Алгоритм и программа табулирования функции.

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