- •Содержание
- •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
- •События
- •Свойства
- •Окна общего диалога
- •Создание меню
- •Свойства
- •Работа с несколькими формами
-
Элемент управления Slider
Иногда для ввода данных удобно использовать элемент управления Slider (ползунок, движок), который позволяет вводить числовые данные путем перемещения указателя ползунка.
Свойства элемента управления Slider
Свойство |
Назначение |
Value |
Хранится введенное посредством бегунка значение |
Min Max |
Свойства задают диапазон значений ползунка (по умолчанию min=0, max =10) |
Пример 3. Вычислить произведение
Private Sub Command1_Click() 'Ввод n и m с помощью движка n = Slider1.Value m = Slider2.Value p = 1 For i = 1 To n For j = 1 To m p = p * i / (1 + j ^ 2) Next j Next i Text1.Text = Str(p) End Sub
Private Sub Command2_Click() End 'Выход из приложения End Sub |
Пример 3. Протабулировать функцию sin(x) на отрезке [–π, π] с шагом 0,1.
Private Sub Command1_Click() Const pi = 3.1415926 Dim n As Integer Dim h As Single Dim x As Single,y As Single Dim sa As Str,sf As String 'Переменная 'sa используется для формирования строки значений x, 'а переменная sf - для формирования строки значений y h = Val(Text1.Text) 'Ввод шага n = Int(2 * pi / h) + 1 'Количество точек x = -pi ‘Начальное значение x sa = "": sf = "" 'Инициализация sa и sf For i = 1 To n y = Sin(x) |
|
'Формирование строки вывода значений x по формату sa = sa + Format(x, "0.000") + Chr(13)+Chr(10). 'Формирование строки вывода значений y по формату sf = sf + Format(y, "0.000")+ Chr(13) + Chr(10) x = x + h 'Новое значение x Next i Text2.Text = sa 'Вывод значений x Text3.Text = sf 'Вывод значений y End Sub Private Sub Command2_Click() End End Sub |
При проектировании данного проекта необходимо для элементов управления TextBox, предназначенных для вывода, установить следующие свойства:
Multiline = True, Scrollbars=Vertical.
-
Циклы с условием
Циклы с условием используются в тех случаях, когда число повторений тела цикла заранее неизвестно. Такой цикл продолжает работу пока выполняется (или не выполняется) условие окончания цикла. Причем, если условие окончания цикла проверяется перед выполнением тела цикла, то такие циклические структуры называют циклами с предусловием («Выполнять пока»), а если проверка условия происходит после выполнения тела цикла – циклами с постусловием («Выполнять до тех пор, пока »).
Цикл с предусловием |
Цикл с постусловием |
|
|
В VB такие циклы образуются с помощью конструкций Do … Loop. Существует 4 вида таких циклических конструкций, их синтаксис определяется типом проверяемого условия и местом его расположения.
Синтаксис |
Описание |
Do While Условие Операторы Loop |
Цикл с предусловием типа «Пока». Условие проверяется до того, как выполняется группа операторов, образующих тело цикла. Цикл продолжает свою работу, пока это условие остается истинным. |
Do Операторы Loop While Условие |
Цикл с постусловием типа «Пока». Условие проверяется после того, как операторы, составляющие тело цикла, будут выполнены хотя бы 1 раз. Цикл работает, пока это условие остается истинным. |
Do Until Условие Операторы Loop |
Цикл с предусловием типа «До тех пор пока». Условие проверяется до того, как выполняется группа операторов, образующих тело цикла. Цикл продолжает свою работу до тех пор, пока это условие не выполнится (то есть до тех пор, пока условие является ложным) |
Do Операторы Loop Until Условие |
Цикл с постусловием типа «До тех пор пока». Условие проверяется после того, как операторы, составляющие тело цикла, будут выполнены хотя бы один раз. Цикл работает до тех пор, пока это условие не выполнится (то есть до тех пор, пока условие является ложным). |
Замечание 1. Чтобы цикл с предусловием или с постусловием успешно завершился необходимо, чтобы в теле цикла был хотя бы один оператор, изменяющий значения, входящих в логическое выражение переменных.
Замечание 2. Циклы могут быть вложенными, когда внутри одного циклического процесса должен выполняться другой. В этом случае необходимо придерживаться правила: каждый цикл должен иметь свое начало – For или Do (заголовок цикла) и свой конец – слово Loop или Next (окончание цикла). Причем, каждый раз сначала должен быть закончен внутренний цикл, а затем уже внешний.
Для безусловного выхода из цикла с условием используется оператор Exit Do.
Пример 1. Определить количество цифр в целом числе N. Алгоритм решения состоит в том, что нужно делить число N на 10 до тех пор, пока в целой части числа не окажется 0. Количество таких делений будет равно числу цифр в числе.
Private Sub Command1_Click() n = Val(Text1.Text) 'Ввод числа k = 0 'Обнуление счетчика k – количество цифр Do 'Начало цикла n = Int(n / 10) 'Выделение цифры k = k + 1 'Подсчет количества цифр Loop While n > 0 'Окончание цикла 'Цикл работает, пока это условие остается истинным |
|
Text2.Text = Str(k) 'Вывод k Text2.Visible = True Label2.Visible = True 'Содержимое поля становится видимым End Sub
Private Sub Command2_Click() End End Sub
Private Sub Form_Load() Text1.Text = "" 'Очистка поля Label2.Visible = False 'При загрузке формы фраза '«Количество цифр» не видна Text2.Text = "" Text2.Visible = False End Sub |
Использование операторов цикла с условием оправдано в том случае, когда количество повторений тела цикла определяется в ходе самих вычислений и заранее неизвестно. Например, для вычисления сумм бесконечного ряда обычно задают точность вычислений ε и вычисления ведут до тех пор, пока очередное слагаемое по модулю не станет меньше заданного ε: .
Пример 2. Вычислить с точностью ε = 10-4.
Private Sub Command1_Click() Dim x,y,a As Single Eps = Val(Text1.Text) 'Ввод точности вычислений s = 0 'Инициализация переменной s n = 1 Do 'Начало цикла a = n/(n^2+1) 'Вычисление очередного члена последовательности s=s+a 'Вычисление суммы последовательности n=n+1 Loop While a>=0.0001 Text2.Text = Str(s) 'Вывод полученной суммы End Sub
Private Sub Command2_Click() End End Sub |