Лекция 3: 2 Для создания возможности использования объектов файловой системы нужно подключить библиотеку DLL, содержащую эти объекты: меню Разработать > Ccылки > Microsoft Scriptlet Component (сделать щелчок на соответствующем элементе управления CheckBox). Не могу найти меню Разработать (Develop)>Links и т.д. |
Управление ходом выполнения программ. Примеры типовых алгоритмов
Для управления ходом выполнения программ предоставляется ряд возможностей, ниже рассматриваются некоторые из них.
Условная инструкция If : Then : Else
Необходимость использования инструкции If : Then : Else возникает, если имеются альтернативные пути выполнения программы; при еe использовании проводится проверка условий и в зависимости от их истинности выполняются определeнные действия. Используется простой и полный синтаксис. Простой синтаксис:
If условие Then инструкция [Else инструкция]
- если условие, стоящее после If истинно ( True ), то выполняется инструкция, следующая за Then, если условие ложно ( False ), то выполняется инструкция, следующае за Else.
Полный синтаксис:
If условие 1 Then инструкция 1 . [инструкция m] [ElseIf условие 2 Then инструкция k] [Else инструкция n] End If
Во втором случае синтаксиса инструкция 1 : инструкция m,: записываются на новых строчках, присутствует инструкция End If. Наличие ElseIf позволяет анализировать дополнительные условия. Добавлением нескольких инструкций ElseIf можно анализировать дополнительное количество условий. Else используется для обработки противоположных ситуаций. Если нужно проверить некоторое условие при наличии другого условия, то используются вложенные инструкции, пример:
If условие 1 Then If условие 2 Then инструкция 1 . Else инструкция m End If Else инструкция n End If
Для демонстрации различия синтаксиса рассмотрим пример нахождения максимального из 2-х чисел.
Dim max As Integer If Val(txt1.Text) > Val(txt2.Text) Then max = Val(txt1.Text) Else max = Val(txt2.Text) lblMax.Caption = max или: If Val(txt1.Text) > Val(txt2.Text) Then max = Val(txt1.Text) Else: max = Val(txt2.Text) End If lblMax.Caption = max
Цикл For : Next
Цикл For : Next предназначен для выполнения определeнного количества действий, когда количество действий известно заранее; синтаксис:
For начальное_значение переменной-счeтчик To конечное_значение переменной-счeтчик [Step величина шага] инструкции Next [переменная-cчeтчик]
Сначала инициализируется начальное значение переменной-счeтчик, при каждом выполнении цикла еe значение увеличивается на величину шага, или на 1, если шаг не указан.
Практическая работа 9. Цикл For : Next
9а. Цикл For : Next, формирование массива, вычисление суммы элементов массива, вывод текстовые поля, поля списка и Label1.
Создать требуемые объекты, см. код процедуры Command1_Click(), данный ниже, очистить свойство Text текстового поля, а его свойству Multiline присвоить значение Тrue, тогда в процессе выполнения будет проводиться перенос строк в текстовое поле. Ввести код:
Private Sub Command1_Click() Dim mass(15) As Integer, i As Integer Rem переменная для хранения суммы элемeнтов массива Dim summ As Integer For i = 0 To 14 mass(i) = i ' вывод элементов массива в поле списка lst1.List(i) = mass(i) ' вывод значений i в поле TextBox txt1.Text = txt1.Text & " " & i Next i summ = 0 For i = 0 To 14 ' суммирование элементов маcсива summ = summ + mass(i) Next i lbl1.Caption = summ ' вывод суммы элементов End Sub
стартовать проект, сделать щелчок на командной кнопке.
9b. Цикл For : Next, формирование массива случайных чисел в заданном диапазоне, вычисление суммы элементов массива, вывод в поле списка и Label1.
Используется функция RND, возвращающая псевдослучайное число в диапазоне 0 - 1. Выражение вида: Int(КонецДиапазона - НачалоДиапазона + 1) * RND() + НачалоДиапазона) позволяет получить случайное целое число в заданном диапазоне. Функция Int возвращает целую часть числа.
Создать требуемые объекты, см. код, данный ниже и ввести код:
Private Sub Command1_Click() Dim mass(15) As Integer, I As Integer, A As Integer, В As Integer Dim Summ As Integer A = -5: B = 5: Summ = 0 For I = 0 To 14 mass(I) = Int(Rnd * (B - A + 1) + A) lst1.List(I) = mass(I) Summ = Summ + mass(I) Next I lbl1.Caption = Summ End Sub
стартовать проект, сделать щелчок на командной кнопке.
9c. Создание массива объектов, использование вложенного цикла For : Next для формирования двумерного массива, вывод элементов двумерного массива в массив поля списка и суммы элементов массива в элемент управления Label1.
Создать на форме элемент управления CommandButton, создать массив полей списка, для этого:
- щелчком маркировать поле списка,
- использовать команду Копировать контекстного меню поля списка,
- использовать команду Вставить того же контекстного меню; на вопрос :"Хотите, чтобы объект стал элементом массива?" ответить : "Да", копия выводится в верхний левый угол формы,
- повторить копирование, т.к. нужен массив объектов из 3-х элементов; проверить на форме идентификаторы поля списка: List1(0), List1(1), List1(2),рис. 2.1
ввести код:
Private Sub Command1_Click() Dim mass(15, 3) As Single, i As Integer, j As Integer Dim A As Integer Dim B As Integer, Summ As Single A = -5: B = 5: Summ = 0 For j = 0 To 14 For i = 0 To 2 mass(j, i) = Rnd * (B - A) + A ' вывод элементов в поля массива списка List1(i).List(j) = mass(j, i) ' суммирование элементов двумерного массива Summ = Summ + mass(j, i) Next i, j Label1.Caption = Summ ' вывод суммы элементов массива End Sub
стартовать проект, сделать щелчок на командной кнопке.