- •Содержание
- •17.2.2. Свойства 130
- •17.6.2. Свойства 133
- •17.7.2. Свойства 134
- •18. Меню 139
- •Основные понятия ооп
- •Объекты
- •Классы объектов
- •Свойства
- •События
- •Три основных принципа ооп
- •Инкапсуляция
- •Наследование
- •Полиморфизм (имеющий много форм)
- •Визуальное проектирование интерфейса
- •Событийно-управляемое программирование
- •Процесс создания приложений
- •Интегрированная среда разработки (иср) visual basic
- •Общая организация программы в vb
- •Структура проекта vb
- •Структура событийной процедуры
- •Общее описание среды vb
- •Краткая характеристика элементов управления, используемых при создании простых приложений
- •Основные свойства, методы и события объектов vb
- •Основные элементы языка Vb
- •Типы данных
- •Переменные
- •Объявление переменных
- •Explicit-объявление
- •Константы
- •Выражения и операции
- •Стандартные подпрограммы
- •Математические функции vb
- •Функции преобразования данных vb
- •Операторы
- •Простые операторы
- •Оператор присваивания
- •Операторы вызова процедур
- •Оператор безусловного перехода
- •Системные диалоговые окна
- •Диалоговое окно ввода информации InputBox
- •InputBox(Приглашение,Заголовок,НачЗначение),
- •Окно сообщения MsgBox
- •Ввод и вывод данных в vb
- •Ввод данных
- •Вывод результатов
- •Функция Format
- •Структурные операторы
- •Условные операторы
- •Оператор выбора Select … Case
- •Операторы повтора
- •Циклы с параметром
- •Элемент управления Slider
- •Циклы с условием
- •Использование рекуррентной формулы для вычисления суммы ряда
- •Использование функции Timer
- •Подпрограммы пользователя
- •Пользовательские процедуры
- •Способ передачи аргументов
- •Функции пользователя
- •Массивы
- •Оператор Option Base
- •Динамические массивы
- •Функции lBound и uBound
- •Функция Rnd
- •Оператор Erase
- •Типовые задачи на обработку одномерных массивов
- •Формирование массива с помощью функции Split
- •Линейная сортировка массива
- •Уплотнение массива
- •Вставка элемента в массив
- •Изменение положения элементов на некотором отрезке
- •Кольцевой сдвиг элементов массива
- •Двумерные массивы
- •Ввод и вывод двумерных массивов
- •Формирование двумерного массива с помощью диалогового окна InputBox и функции Split
- •Вывод двумерного массива с помощью элемента управления msFlexGrid
- •Типовые задачи на обработку двумерных массивов
- •Преобразование двумерных массивов
- •Типовые задачи с квадратными матрицами
- •Массивы в качестве формальных параметров в процедурах и функциях пользователя
- •Данные строкового типа
- •Операции над строками
- •Функции, предназначенные для работы со строками
- •Функция Split
- •Функция Join
- •Оператор Mid
- •Типовые задачи на обработку строк
- •Анализ символьных строк
- •Изменение строк (замена, удаление, вставка символов)
- •Функции и операторы для работы с файлами
- •Открытие файлов
- •Закрытие файлов
- •Работа с файлами последовательного доступа
- •Чтение данных
- •Запись данных
- •Элемент управления CommonDialog
- •Графика в vb
- •Методы графики в vb
- •Задание цвета
- •Свойства объектов, влияющих на графические методы:
- •Применение метода Scale
- •Построение графика функции
- •Некоторые дополнительные элементы управления, которые часто используются в проектах.
- •Объект управления Shape (Фигура)
- •Свойства
- •Объект управления Timer
- •События
- •Свойства
- •Окна общего диалога
- •Создание меню
- •Свойства
- •Работа с несколькими формами
-
Способ передачи аргументов
В VB аргументы могут передаваться двумя способами: либо как ссылки (ByRef), либо как значения (ByVal).
Если аргумент передается как ссылка, то вызванная процедура получает физический адрес памяти передаваемой переменной. В этом случае значение этого аргумента можно изменять, так как вызываемая и вызывающая процедуры обращаются к одной и той же области памяти и значение переменной для них идентично. По умолчанию аргументы передаются как ссылка, поэтом ключевое слово ByRef можно опустить. Обычно такие параметры являются выходными.
Чтобы запретить изменять значение переменных, их передают по значению, т.е. объявляют со словом ByVal. При передаче аргументов по значению вызванная процедура получает копию значения этого аргумента, и изменить его не может. Переменные, объявленные со словом ByVal, обычно – входные параметры. В этом случае ключевое слово ByVal указывается обязательно.
Если некоторый параметр является одновременно входным и выходным, то его нужно передать как ссылку.
-
Функции пользователя
Функции – это подпрограммы, в результате которой вычисляется только одно значение, которое присваивается имени функции. Обращение к функции можно использовать в правой части операторов или различных выражений, то есть там, где используются переменные соответствующего типа. В общем виде блок типа Function имеет следующий вид:
Function Имя функции ([Список формальных параметров]) As Тип возвращаемого функцией значения Описание локальных переменных Операторы тела процедуры End Function |
В разделе Список формальных параметров через запятую перечисляются формальные параметры функции (если они есть) желательно с указанием типа (хотя этого можно и не делать, в этом случае они рассматриваются как переменные типа Variant).
В разделе операторов тела функции должен обязательно присутствовать, по крайней мере, один оператор вида:
Имя функции=Вычисленное значение,
в котором вычисленное значение присваивается переменной, совпадающей с именем функции. В точку вызова возвращается результат последнего такого присваивания. Если такого оператора нет, то возвращенное значение функции будет не определено.
При вызове функции также как и при вызове процедуры формальные параметры заменяются фактическими в порядке их следования. Между фактическими и формальными параметрами, объявленными в заголовке функции, должно быть соответствие по их количеству, типу данных и последовательности расположения.
Обращение к функции пользователя аналогичено вызову встроенных функций VB: осуществляется в основной программе путем задания имени функции и списка фактических параметров того же типа и количества, что и формальные. Например, функцию
Function Tangens(x)as double Tangens=sin(x)/cos(x) End Function |
можно вызвать s=Tangens(1) или Print Tangens(5*x).
Пример. Вычислить число сочетаний из n по m :С=m!n!/(m+n)! (количество неупорядоченных множеств, содержащих m различных элементов, выбранных из n элементов заданного множества).
Функция для вычисления факториала |
Function F(k As integer) As Long Dim i As Integer F=1 For i=1 To k F=F*i Next i End Function |
Использование функции |
Dim c As Single Dim n As Integer Dim m As Integer m=Val(InputBox(“Введите M”)) n=Val(InputBox(“Введите N”)) c=F(m)*F(n)/F(m+n) Print “c=”;c |
Такую программу можно вложить, например, в процедуру обработки какого-либо события на форме для получения результата.
Пример. Программа вычисления площади четырехгранника, если даны длины его ребер с использованием подпрограммы-функции.
'Описание функции вычисления площади треугольника по формуле Геррона Private Function Sq(x,y,z) As Single 'Имя функции – Sq. 'Формальные параметры: входные x,y,z. Dim p As Single p=(x+y+z)/2 'Вычисление полупериметра Sq=Sqr(p*(p-x)*(p-y)*(p-z)) 'Вычисление площади End Function
Private Sub Command1_Click() Dim a,b,c,d,e,f,s As Single 'Задание длин ребер четырехгранника} a=Val(Text1.Text) b=Val(Text2.Text) c=Val(Text3.Text) d=Val(Text4.Text) e=Val(Text5.Text) f=Val(Text6.Text) 'Обращение к функции Sq для вычисления площади каждой грани 'с перечислением фактических параметров и вычисление площади поверхности 'четырехгранника s=Sq(a,b,c)+Sq(c,d,e)+Sq(b,e,f)+Sq(a,f,d) Text7.Text=Str(s) End Sub |