
- •Основы системы программирования
- •Введение
- •1 Основы системы программирования Visual Basic
- •1.1 Загрузка системы программирования
- •1.2 Среда разработки
- •1.3 Последовательность разработки проекта
- •1.4 Сохранение проекта
- •1.5 Основные элементы управления
- •1.5.1 Надпись (Label)
- •1.5.2 Текстовое поле (TextBox)
- •1.5.3 Кнопка (CommandButton)
- •1.5.4 Окно списка (ListBox)
- •1.6 Последовательность разработки информационной технологии
- •1.6.1 Формализация задачи
- •1.6.2 Составление схемы алгоритма
- •1.6.3 Разработка проекта
- •1.6.4 Сохранение проекта
- •1.6.5 Выполнение проекта
- •1.6.6 Отладка программы
- •1.7 Основы языка программирования Visual Basic
- •1.7.1 Типы данных
- •1.7.2 Объявление данных
- •Dim имя переменной As Тип данных
- •1.7.3 Оператор присваивания
- •1.7.4 Встроенные функции языка Visual Basic
- •Имя функции(аргумент)
- •1.7.5 Организация ввода данных
- •1.7.6 Организация вывода данных
- •MsgBox сообщение [,атрибут] [,заголовок]
- •Format (параметр,"прототип")
- •2 Структурное программирование
- •2.1 Структура Следование
- •2.2 Структура Развилка
- •If условие Then
- •Iif(логическое выражение, выражение1, выражение2)
- •If условие Then
- •If Условие1 Then
- •Goto имя метки
- •Номер строки
- •2.3 Структура Цикл
- •3 Производные алгоритмические структуры
- •Dim Имя массива(размерность) As Тип данных
- •Dim Имя массива(количество строк, количество столбцов) As Тип данных
- •3.1 Производная алгоритмическая структура Формирование
- •3.2 Производная алгоритмическая структура Пересчёт
- •3.3 Производная алгоритмическая структура Поиск по ключу
- •3.4 Производная алгоритмическая структура Поиск максимума
- •3.5 Производная алгоритмическая структура Поиск минимума
- •3.6 Производная алгоритмическая структура Cумма
- •3.7 Производная алгоритмическая структура Произведение
- •3.8 Производная алгоритмическая структура Счётчик
- •3.9 Производная алгоритмическая структура Выборка
- •3.10 Производная алгоритмическая структура Перестановка
- •3.11 Сортировка элементов массива
- •Библиографический список
- •Приложение извлечения из межгосударственного стандарта
- •2 Описание схем
- •2.2 Схема программы
- •3 Описание символов
- •3.1 Символы данных
- •3.2 Символы процесса
- •3.3 Символы линий
- •3.4 Специальные символы
- •4 Правила применения символов и выполнения схем
- •4.1 Правила применения символов
- •4.2 Правила выполнения соединений
- •Содержание
- •Основы системы программирования
- •190031, СПб., Московский пр., 9.
If условие Then
[операторы]
[Else
[операторы]]
End If
Пример 1.
Пусть для описания задачи используются следующие математические и логические зависимости:
y1 = tg x2; ввести значение y2, если x £ 0
y1 = cos x + sin2 x; y2 = 0, если х > 0
Входные данные: x – переменная вещественного типа.
Выходные данные: y1, y2 – переменные вещественного типа.
Схема алгоритма:
Этому алгоритму соответствует следующий код приложения на языке программирования Visual Basic:
Private Sub Command1_Click()
Dim x As Single, y1 As Single, y2 As Single
x = Text1.Text
If x <= 0 Then
y1 = Tan(x ^ 2)
y2 = InputBox("Введите значение y2")
Else
y1 = Cos(x) + Sin(x) ^ 2
y2 = 0
End If
Print " y1 =" & Format(y1, "0.00") & " y2 =" & Format(y2, "0.00")
End Sub
Ниже представлен результат выполнения программы.
Вложенная структура Развилка
Если при выполнении вычислительного процесса требуется проверить несколько условий, то используется вложенная структура Развилка. Схема алгоритма может иметь вид:
Вложенная структура Развилка также может быть модифицированной. При программировании вложенной структуры Развилка, изображенной на схеме алгоритма, наиболее удобно использовать оператор:
If Условие1 Then
[операторы первой группы]
ElseIf Условие2 Then
[операторы второй группы]
[Else
[операторы третьей группы]]
End If
При выполнении этого оператора сначала проверяется Условие 1. Если условие истинно, выполняются операторы первой группы, затем происходит переход к оператору, следующему за условным оператором. Если условие ложно, то проверяется Условие 2, и в зависимости от его значения выполняются операторы второй или третьей группы.
Примечание. При составлении алгоритма с несколькими условиями рекомендуется проверять условия в порядке от наиболее вероятных к менее вероятным, при этом обеспечивается наибольшая эффективность выполнения кода приложения.
Пример 2.
Пусть для описания задачи используются следующие математические и логические зависимости:
Входные
данные: х
переменная вещественного типа.
Выходные данные: y переменная вещественного типа.
Схема алгоритма будет иметь вид:
Код приложения может иметь вид:
Dim x As Single, y As Single
x = InputBox("x=")
If x>0 Then
y=Sin(x)
ElseIf x = 0 Then
y = 10
Else
y = Сos(x)
End If
Print " y=" & y
или так:
Dim x As Single, y As Single
x=InputBox("x=")
If x>0 Then
y = Sin(x)
Else
If x = 0 Then
y = 10
Else
y = Cos(x)
End if
End If
Print " y=" & Format(y,"0.000")
При использовании условного оператора If необходимо обратить внимание на следующие особенности: в многострочной структуре операторы, выполняемые в случае истинности условия, нельзя записывать в одной строке с ключевым словом Then. В противном случае Visual Basic не распознает многострочный синтаксис конструкции.
Рассмотрим еще несколько примеров.
Пример 3.
Пусть необходимо вычислить значение функций y1 и y2:
y1 = a +
;
y2 = a3,
если x > a
y1 = arctg x , если x <= a,
где a = b + 1
Входные данные: x, b вещественного типа.
Выходные данные: y1, y2, a вещественного типа.
Схема алгоритма:
На форме разместим два элемента управления "Текстовое поле" для ввода значений x и b, элемент управления "Рамка", командную кнопку и для вывода значений переменных x и y2 элемент управления "Надпись" (используется свойство Caption этого элемента управления). Код приложения будет иметь следующий вид:
Private Sub Command1_Click()
Dim x As Single , a As Single, b As Single
Dim y1 As Double, y2 As Double
x=Text1.Text
b=Text2.Text
a=b+1
If x>a Then
y1=a+Abs(x)
y2=a^ 3
Label1.Caption = "При x=" & Str(x) + " : y2=" & Str(y2)
Else
y1=Atn(x)
End If
CurrentX = 1550: Print "a ="; a
MsgBox Format(y1, "0.000"), , " y1 равно"
End Sub
При выполнении условия x < a (3 <10,3+1) форма и диалоговое окно, содержащее значение переменной y1, будут иметь вид:
В противном случае при x > a (5,1>2+1)) вид формы изменится, а диалоговое окно, предназначенное для вывода значения переменной y1, останется прежним:
Пример 4.
Пусть необходимо вычислить значение функции a:
Входные данные: x переменная вещественного типа.
Выходные данные: a переменная вещественного типа.
Схема алгоритма:
Оператор Select Case …. End Select
Использование оператора If становится неудобным, когда вложенность структуры Развилка превышает три. В таких случаях целесообразно применять оператор Select Case …. End Select, который позволяет сделать выбор из произвольного числа вариантов. Синтаксис этого оператора следующий:
Select Case
x
Case знач. 1
операторы 1
Case знач. 2
операторы 2
………..
Case знач. n
операторы n
[Case Else
операторы ]
End Select
Рис. 13
Схема алгоритма, реализующая данный оператор, представлена на рис. 13.
Параметр x – имя переменной или выражение.
В этом операторе вместо вычисления логического условия выполняется сравнение значения x с каждой из величин, заданных параметром <знач.>.
В блоке Case <знач.> может принимать:
одно значение;
несколько значений, разделенных запятой (например: 2, 3, 4);
значения из области сравнения (например: 4 To 6);
значения из относительной области сравнения (например: Is > = 9 или Is < = 0.5, где Is – ключевое слово).
Очередной блок Case выполняется, если ни одно из предыдущих условий не является истинным. В операторе может быть произвольное число блоков Case. Если ни одно из условий не является истинным, то выполняются инструкции Case Else.
Например, оператор Select Case может использоваться для проверки принадлежности значения случайной величины некоторым заданным значениям. Используем функцию Rnd для получения случайного числа в диапазоне [0;10]:
Randomize
Ns =Int(Rnd*10)+1
Select Case Ns
Case 1
Print "Равно 1"
Case 2, 3
Print "Равно 2 или 3"
Case 4 to 6
Print "Больше или равно 4 и меньше или равно 6"
Case Is >=9
Print "Больше или равно 9"
Case Else
Print "Ни одно из предыдущих"
End Select
Следует обратить внимание, что выражение Is >= 9 определяет все значения переменной Ns, которые больше или равны 9. Если совпадения значений не обнаружится, то на форму выведется текст "Ни одно из предыдущих" и управление передаётся команде, которая следует за оператором End Select.
Оператор безусловного перехода
Оператор безусловного перехода используется в тех случаях, когда после некоторого оператора следует выполнить не следующий по порядку оператор, а какой-либо другой, расположенный в любом месте активной процедуры. Синтаксис этого оператора следующий: