- •Содержание
- •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
- •События
- •Свойства
- •Окна общего диалога
- •Создание меню
- •Свойства
- •Работа с несколькими формами
-
Подпрограммы пользователя
Хотя набор стандартных процедур и функций достаточно широк, он вряд ли может удовлетворить потребности каждого пользователя. Поэтому ему предоставлена возможность реализовывать собственные алгоритмы в виде подпрограмм и обращаться к ним по имени из любого места программы. Таким образом, если в программе возникает необходимость частого обращения к некоторой группе операторов, то рационально сгруппировать такую группу в самостоятельный блок, к которому можно обращаться в программе. Такие программные блоки, созданные самим пользователем принято называть подпрограммами пользователя. Каждой пользовательской подпрограмме дается уникальное имя. Передача данных в подпрограмму и возврат результата выполнения осуществляется с помощью входных и выходных параметров. Входной параметр – это переменная, значение которой должно быть установлено до начала работы данной подпрограммы, а выходной параметр – это переменная, которая получает свой значение в результате работы подпрограммы.
Имя подпрограммы и ее параметры записываются в заголовке подпрограммы. Различают формальные параметры – параметры, определенные в заголовке подпрограммы, и фактические параметры – выражения, задающие конкретные значения при обращении к подпрограмме.
Имеется два типа пользовательских подпрограмм: процедуры (Sub) и функции (Function). Главное отличие функции от процедуры заключается в том, что результат работы функции – единственное значение, а результат работы процедуры – одно значение, несколько значений или ни одного. Например, можно написать процедуру, которая :
-
отображает полученные результаты в виде диаграмм в графическом окне;
-
вычисляет площадь и периметр многоугольника;
-
решает задачу по преобразованию векторов;
-
изменяет значения свойств объектов.
Кроме того, обращение к функции является разновидностью операнда, т.е. функция как бы включается в состав выражения (арифметического, логического, строкового и др.). При этом говорят, что функция возвращает свое значение. Вызов же процедуры – это разновидность оператора.
Прежде, чем писать какую либо подпрограмму необходимо четко представить, что она будет делать, что будет у нее на входе, а что на выходе. При этом о процедуре или функции говорят как о черном ящике, который известно, что делает, но неизвестно как устроен.
-
Пользовательские процедуры
Cоздать собственную процедуру, доступную в данной форме можно двумя способами:
-
В общей части кода программы (General/Declaration) ввести слово Sub, затем задать имя и нажать клавишу Enter. В полученной конструкции набрать код программы.
-
С помощью команды Tools Add Procedure…
Структура пользовательской процедуры:
|
Sub Имя процедуры ([Список формальных параметров]) Описание локальных переменных Операторы тела процедуры End Sub |
Переменные, объявленные внутри процедуры, называются локальными, они доступны только в этой процедуре. Если эти переменные объявлены с оператором Dim, то они существуют, пока выполняется процедура, после чего память освобождается. Но исчезновение значения локальной переменной при выходе из процедуры не всегда удобно. Есть возможность сохранять значение локальной переменной до следующего вызова процедуры. Для этого ее нужно объявить как статическую, с ключевым словом Static. В этом случае переменная недоступна в других процедурах, но ее значения сохраняются от вызова к вызову. Глобальные переменные (объявленные со словом Public), доступны всему приложению.
Обращение к процедуре осуществляется в основной программе путем задания имени процедуры и списка фактических параметров без круглых скобок.
Имя процедуры [Cписок фактических параметров]
При вызове процедуры формальные параметры заменяются фактическими в порядке их следования. Количество, типы и порядок следования формальных и фактических параметров должно в точности совпадать!
Пример 1. Процедура без параметров должна очистить форму и установить размер выводимых на форму символов в 30 пунктов и начертание курсив.
|
Private Sub A() Cls Font.size=30 FontItalic=true End Sub Private Sub Command1_Click() A Print “Пример процедуры” End Sub |
Пример 2. Процедура позволяет накоплять сумму.
|
Private Sub Sum(Chislo) Static S As Integer S=S+ Chislo End Sub |
Если бы в данном примере переменная S не была объявлена с помощью Static, то ее значение каждый раз бы обнулялось.
Пример 3.
|
Вычислить площадь четырехгранника, если даны длины его ребер.
Вычисление площади треугольника по формуле Герона оформить с помощью процедуры. |
|
|
|
'Описание процедуры вычисления площади треугольника по формуле Геррона Private Sub Sq(x,y,z,s) 'Имя процедуры – Sq. 'Формальные параметры: входные x,y,z, 'Выходной параметр s Dim p As Single p=(x+y+z)/2 'Вычисление полупериметра s=Sqr(p*(p-x)*(p-y)*(p-z)) 'Вычисление площади End Sub
Private Sub Command1_Click() Dim a,b,c,d,e,f,s,s1,s2,s3,s4 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 для вычисления площади каждой грани ' с перечислением фактических параметров Sq a,b,c,s1 Sq c,d,e,s2 Sq b,e,f,s3 Sq a,f,d,s4 s=s1+s2+s3+s4 'Вычисление площади поверхности четырехгранника Text7.Text=Str(s) End Sub |
|
|

