- •Введение
- •Основные элементы программирования
- •1. Переменные, оператор присваивания
- •Определение переменной
- •Имена переменных
- •Типы данных
- •Объявление переменных
- •Оператор присваивания
- •Область видимости переменных
- •Область видимости переменных и их объявление
- •2. Константы
- •3. Массивы
- •4. Математические операторы
- •5. Обработка числовых данных
- •6. Обработка строк
- •7. Процедуры
- •ПроцедурыSub
- •Процедуры Function
- •[Private|Public] [Static] Function ИмяПроцедуры(Аргументы) [As type]
- •Создание процедур
- •8. Операторы управления
- •Операторы передачи управления
- •Условные выражения
- •Операторы выбора
- •Переключатели
- •9. Операторы цикла
- •Оператор цикла For…Next
- •Операторы цикла Do…Loop
- •ОператорExit
- •10. Элементы программирования и алгоритмы
- •Содержание
Процедуры Function
Процедуры Function отличаются от процедурSubтем, что само имя процедурыFunctionвозвращает значение, которое рассчитывается этой процедурой. Поэтому применение стандартных процедур типаSin(),Tan() и т. п. и пользовательскихFunctionодинаково. Просто в выражениях пишется имя процедуры и параметры в скобках, если таковые есть. При отсутствии параметров имяFunctionпишется без скобок. Синтаксис процедурыFunction следующий:
[Private|Public] [Static] Function ИмяПроцедуры(Аргументы) [As type]
Коды тела функции
ИмяПроцедуры = Выражение
End Function
Если проект состоит из нескольких форм, и в нем будут использоваться процедуры Function, к которым будут обращения из разных форм, то пользовательские функцииFunctionлучше создавать в стандартных модулях, а не в модулях формы. В этом случае не надо будет при обращении к пользовательской функции писать имя модуля формы, где она расположена.
Пример пользовательской функции для вычисления объема параллелепипеда по сторонам a,b,c:
Public Function ОбъемПар (a As Single, b As Single, c As Single)
ОбъемПар = a*b*c
End Function
Обратиться к этой процедуре можно тремя способами:
1) по ссылке:
а1 = 3.4: b1 = 10: h = 6.8
sumo = ОбъемПар(a1, b1, h)*10 + 100.5
2) по значению:
sumo = ОбъемПар (3.4, 10, 6.8)*10 + 100.5
3) с помощью ключевых параметров
sumo = ОбъемПар (a:= 3.4, b:= 10, h:=6.8)*10 + 100.5
С помощью ключевых параметров можно обращаться также к процедурам Sub.
Досрочный выход из процедурпроизводится с помощью оператораExit Sub иExit Function.
Создание процедур
Чтобы начать создание процедуры, переходим в окно написания кода. Затем выполняем команду Инструменты Добавить Процедуру…В появившемся диалоговом окне задается имя процедуры, выбирается её тип и район (район видимости):
После нажатия кнопки ОК в окне написания кода увидим первую и последнюю строчку кода новой процедуры.
Public Function ОбъемПар()
End Function
Остается ввести аргументы – формальные параметры и коды самой процедуры.
Из диалогового окна видно, что, кроме процедур SubиFunction, так можно начать и создание процедурPropertyиEvent. Но создание этих процедур здесь не рассматривается, т. к. они используются при разработке нового класса, а создание классов не разбирается.
8. Операторы управления
Операторы в программе выполняются в той последовательности, в которой они записаны в ней: слева направо и сверху вниз. ВVisualBasic, как и во всех языкахпрограммирования, существуют управляющие операторы, предназначенные для изменения порядка выполнения команд. Различают три основныхтипа управляющих операторов:
операторы передачи управления;
операторы выбора;
операторы циклов.
Операторы передачи управления
Операторы безусловного переходаGoTo применяются для перехода с одного участка программы на любой другой без проверки какого-либо условия. Общий вид оператора перехода:
GoToИмяМетки
где:
GoTo – ключевое слово;
ИмяМетки– одна из меток программы.
Метка – это идентификатор, помещаемый слева от программного оператора и отделенный от него двоеточием.
Но строку можно пометить и числом без двоеточия.
Рассмотрим фрагмент программы, где используются два оператора GoTo:
m1: kol = kol + 1
GoTo pov ' далее программа продолжается с метки pov
m2: sngA = 100
GoTo 2 ' далее программа продолжается со строки, помеченной 2
pov: sngA = Exp(x) + log(x^2)
2 sngM = Sin(x^2) + Log(5*y^2 +abs(x))
Из предыдущей части программы управление может быть передано на метку m1 илиm2.
Во всех руководствах по программированию рекомендуется избегать применения оператора GoТо,так как в это случае программа плохо читается и ухудшается ее понимание. Почти все учебные типовые задачи, которые предлагаются при изучении курса программирования, можно запрограммировать без использования оператораGoTo.
Ниже оператор GoToиспользуется для объяснения работы операторов цикла.