- •Программирование на языке vba Учебное пособие
- •Глава 1. Программы и их реализация. Введение в vba
- •Подготовка задач к решению на эвм
- •А а Блок ввода – вывода
- •1.3. Языки программирования и их реализация
- •1.4. Основы возникновения и использования языка vba
- •Глава 2. Основные принципы работы с vba
- •2.1. Алфавит vba
- •Разработка пользовательской формы и элементов управления
- •Процедуры Sub
- •2.1.1. Данные
- •Константы
- •2.1.2. Знаки операций
- •2.2. Основные операторы языка
- •2.2.1. Оператор описания переменных
- •2.2.2. Оператор присваивания
- •2.2.3. Операторы ввода данных
- •InputBox(“Сообщение”).
- •2.2.4. Операторы вывода данных
- •MsgBox (Список аргументов)
- •2.3. Линейные процессы
- •Программный код
- •2.4.1. Оператор условного перехода
- •If Условие Then Оператор 1 Else Оператор 2
- •2.4.2. Оператор выбора Select Case
- •2.5. Циклические процессы
- •2.5.1. Оператор цикла с параметром For – Next
- •2.5.2. Оператор цикла While – Wend
- •2.5.3. Оператор цикла Do – Loop
- •2.6. Работа с массивами
- •2.6.1. Вычисления в одномерных массивах
- •Пример: a(I), b(j).
- •Объявление массива
- •Ввод массива
- •Вывод массива
- •Вычисление суммы, произведения и количества элементов в одномерном массиве
- •Вычисление минимального и максимального элементов в одномерных массивах
- •Сортировка элементов одномерного массива методом “пузырька”
- •Удаление одного элемента из одномерного массива
- •Удаление из массива группы элементов
- •Вставка одного элемента в массив
- •Вставка группы элементов в массив
- •2.6.2. Вычисления в двумерных массивах
- •Ввод двумерного массива
- •Вывод двумерного массива
- •Формирование матрицы
- •Вычисление суммы, произведения, количества, минимума и максимума в двумерных массивах
- •Построчное вычисление в матрице
- •2.7. Пользовательский тип данных и формы пользователя
- •2.7.1. Пользовательский тип данных
- •Значение Оператор присоединения
- •2.7.2. Формы пользователя
- •Список использованной литературы
- •Оглавление
- •Глава 1. Программы и их реализация. Введение в vba. ………...3
- •Глава 2. Основные принципы работы с vba…………………...…16
2.5.2. Оператор цикла While – Wend
Оператор цикла While – Wend используется для организации цикла с неизвестным заранее числом повторений тела цикла. Общий вид цикла While – Wend выглядит следующим образом:
While Условие
Блок операторов
Wend
Цикл While – Wend обеспечивает многократное выполнение блока операторов, пока условие принимает значение True (истина).
Пример 11.
Вывести результат табулирования функции Y при X, изменяющемся от –10 до 10 с шагом 2, если
.
Программный код
Option Explicit
Sub PR11 ( )
Dim X As Integer
Dim Y As Double
X = –10 ‘ начальное значение аргумента
While X <= 10 ‘цикл выполняется до конечного значения х
If X <> 2 Then
Y = 1 / (X – 2) + X
MsgBox ("Y=" & Y & “ при x =” & x)
Else
MsgBox ("функция не определена")
End If
X = X + 2
Wend
End Sub
Пример 12.
Вкладчик положил на счет 1000 рублей. Через сколько дней вклад достигнет 20000 рублей, если начисляемый процент 0,6 % в день.
Ответ: 500 дней.
Программный код
Option Explicit
Sub PR12 ( )
Dim V As Double ‘первоначальный взнос
Dim Pr As Double ‘начисляемый процент
Dim Kol As Integer ‘количество дней
V = Val(InputBox("Введите начальный взнос"))
Kol = 0
While V <= 20000
Pr = V * 0.6 / 100
V = V + Pr
Kol = Kol + 1
Wend
MsgBox ("20000 руб. вклад достигнет за " & Kol & " дней")
End Sub
2.5.3. Оператор цикла Do – Loop
В VBA для организации циклов с неизвестным заранее числом повторений используется оператор цикла Do. Оператор имеет так много опций и является настолько гибким, что, в действительности, он представляет четыре различных конструкции цикла в двух базовых категориях: циклы, которые тестируют условие детерминанта до выполнения тела цикла, и циклы, которые тестируют условие детерминанта после выполнения тела цикла.
Do While Условие
Блок операторов
Loop
Do Until Условие
Блок операторов
Loop
Do
Блок операторов
Loop While Условие
4.
Do
Блок операторов
Loop Until Условие
Оператор Do While – Loop обеспечивает многократное выполнение блока операторов до тех пор, пока условие истинно, а оператор Do Until – Loop – пока условие ложно.
Операторы Do – Loop While и Do – Loop Until отличаются от первых двух операторов тем, что сначала выполняется блок операторов, а затем проверяется условие. Таким образом, в этих циклах блок операторов, составляющих тело цикла, выполнится, по крайней мере, один раз.
Примером использования цикла Do – Loop Until может служить программа нахождения корня уравнения f(x) = 0 методом деления отрезка пополам.
Пример 13.
Вычислим корень уравнения x2 = 2 с точностью до e = 0,00001. За отрезок начальной локализации корня берется отрезок [0; 2].
Ответ: х = 1,414207.
Программный код
Option Explicit
Sub PR13 ( )
Dim c, f As Double
Dim fa As Double, fb As Double, fc As Double
Dim a, b As Double, eps As Double, bh As Double
a = 0: b = 2: eps = 0.00001
fa = a ^ 2 - 2
fb = b ^ 2 - 2
If fa * fb >= 0 Then
MsgBox ("Функция не меняет знак на концах отрезка")
Exit Sub ‘ выход из процедуры
End If
Do
c = (a + b) / 2
fc = c ^ 2 - 2
fa = a ^ 2 - 2
f = fc * fa
If f < 0 Then b = c Else a = c
Loop Until b - a < eps
bh = c
MsgBox ("значение корня=" & bh)
End Sub