- •Введение
- •Основные элементы программирования
- •1. Переменные, оператор присваивания
- •Определение переменной
- •Имена переменных
- •Типы данных
- •Объявление переменных
- •Оператор присваивания
- •Область видимости переменных
- •Область видимости переменных и их объявление
- •2. Константы
- •3. Массивы
- •4. Математические операторы
- •5. Обработка числовых данных
- •6. Обработка строк
- •7. Процедуры
- •ПроцедурыSub
- •Процедуры Function
- •[Private|Public] [Static] Function ИмяПроцедуры(Аргументы) [As type]
- •Создание процедур
- •8. Операторы управления
- •Операторы передачи управления
- •Условные выражения
- •Операторы выбора
- •Переключатели
- •9. Операторы цикла
- •Оператор цикла For…Next
- •Операторы цикла Do…Loop
- •ОператорExit
- •10. Элементы программирования и алгоритмы
- •Содержание
Операторы выбора
В VisualBasicимеются два типа операторов выбора:операторы условия If (Если) ипереключателиSelect Case (Выбор случая).
Используя только операторы условия, можно написать любые конструкции программы, включая и циклические алгоритмы. В разделе, посвященном операторам цикла, будут приведены такие фрагменты программы. А пока разберем, что такое условный оператор If.
Любая написанная программа выполняется слева направо и сверху вниз. Если нет никаких управляющих конструкций, строки программы выполняются последовательно одна за другой.
Операторы выбора (условные операторы), как и оператор передачи управления GoTo, могут поменять такой последовательный порядок выполнения программы.
Рассмотрим решение следующей простой задачи.
Задача 8.1. Даны два числа. Определить, равны ли они, а если не равны, то, какое из них наибольшее. Соответствующее сообщение вывести на форму.
Введем переменные: А – первое число, В – второе число.
Словесно опишем часть алгоритма решения задачи, опустив ввод данных.
Если А будет равно В, тогда выводим сообщение “Числа равны”. Если А будет больше В, тогда выводим сообщение “ А – наибольшее” ”. Если В будет больше А, тогда выводим сообщение “ В – наибольшее ”.
Запишем алгоритм кратко, опустив некоторые слова.
Если А = В, тогда выводим “Числа равны”. Если А > В, тогда выводим “А – наибольшее”. Если В > А, тогда выводим “В – наибольшее”.
Перепишем это же по-английски.
If A = B Then Print “Числа равны” If A > B Then Print “A – наибольшее” If B > A Then Print “B – наибольшее”
Приведем перевод: If– если,Then– тогда,Print– печать, вывод.
Мы получили готовый фрагмент программы на VisualBasic. Конструкция сIf…Thenназывается условным оператором. Это один из простейших вариантовоператора выбора,условного оператора–линейный, строковый безальтернативный. Записано три таких оператора. В этом случае даже если сразу будет выяснено, что А = В, то два остальных оператора все равно будут выполняться, но сами условияA>B,B>Aне будут выполнены.
Можно использовать в нашей задаче другой вариант условного оператора.
If A = B Then
Print “Числа равны”
End If
If A > B Then
Print “A – наибольшее”
End If If B > A Then
Print “B – наибольшее”
End If
Это вариант записи блочного условного оператора. Вместо трех строк мы написали 9 строк. Блочный условный оператор лучше записывать в случаях, когда после выполнения условия, который следует после словаIf, выполняютсянесколько (блок) операторов, следующие после словаThen. (End– конец).
И, наконец, запишем еще один вариант условного оператора.
If A = B Then
Print “Числа равны”
ElseIf А > B Then ‘ ElseIf – иначе если Print “A – наибольшее”
Rem “ElseIf B > A Then” теперь можно не писать, а просто Else:
Else ‘ Else – иначе. В одном If… может быть только один Else
Print “B – наибольшее”
End If
Ограничений на количество операторов ElseIfнет. При наличииоператор Else условный оператораIfназываютальтернативным.
Почему можно не проверять условие B>A? При сравнении двух чисел возможны только 3 варианта:A = B, A > B, A < B. И если первые два условия не выполняются, то остается третий вариантB>A(или А < В). ПоэтомуElse(иначе) и означает этот третий вариант.
Пятый вариант записи условного оператора – самый оптимальный, т. к. при выполнении какого-либо условия остальные уже не проверяются.
В условном операторе после слова Ifзаписывается условие, которое может быть выполнено или нет.
Условие может иметь и более сложный вид. В условии могут использоваться логические операции And(логическое И),Or(ИЛИ),Xor(исключающее ИЛИ),Not(НЕТ).
Рассмотрим еще одну задачу.
Задача 8.2. Даны три различных числа. Определить, какое из них наибольшее. Соответствующее сообщение выдать на форму.
Введем переменные: А – первое число, В – второе число, С – третье число.
Кратко суть алгоритма: каждое число сравниваем с двумя остальными и, если оно больше каждого из них, то оно и будет наибольшим. Опишем краткочасть алгоритмарешения задачи, опустив ввод данных.
Если А > В и А > C, тогда выводим “А – наибольшее ”. ЕслиB> А и В >C, тогда выводим “В – наибольшее”. Если С > А и С > В, тогда “С – наибольшее”.
Перепишем это c использованием операторов VB и получим фрагмент программы:
If A > B And A > C Then Print “A – наибольшее” If B > A And B > C Then Print “B – наибольшее” If C > A And C > B Then Print “C – наибольшее”
Или так:
If A > B And A > C Then
Print “A – наибольшее” ElseIf B > A And B > C Then
Print “B – наибольшее”
Else
Print “C – наибольшее”
End If
Когда сравниваемых чисел много (массив), то такой алгоритм нельзя использовать, а более эффективный, как в примере 9.7.
Рассмотрим третью задачу:
Задача 8.3. Вычислить функцию Y при следующих значениях X:
x
при 0 < x
< 1
1 при -1 < x
≤ 0 или 1 ≤ x
< 2
y=
Переменные: x,y. (Выдумывать названия переменных не надо.)
Опишем часть алгоритма (только вычисление у).
Если 0 < x < 1, тогда y = x
Если -1 < x ≤ 0 или 1 ≤ x < 2, тогда y = 1
Запишем эту часть алгоритма с помощью оператора If…ElseIf…Then.
If x > 0 And x <1 Then
y = x
ElseIf (x > -1 And x <= 0) Or (x >= 1 And x < 2) Then
y = 1
End If
Print “y = “; y
При словесном описании всего алгоритма рекомендуется указывать, с помощью каких операторов можно реализовать каждую алгоритмическую структуру.
Покажем это на примере последней задачи 8.3.
Используя оператор If…Then …ElseIf…End If,:
Проверяем выполнение условия 0 < x < 1.
Если условие выполняется, тогда функция Yвычисляется по формулеy=x.
Если условие 0 < x < 1 не выполняется, то проверяются условия -1 < x ≤ 0 или 1 ≤ x < 2. При выполнении одного из условий функцияyвычисляется по формулеy= 1.