23)Операторы цикла
Цикл — представляет собой многократно повторяющуюся последовательность операторов. Операторы повторяются конечное число раз до выполнения условия
Циклы со =циклы For, или циклами For … Next. Синтаксис цикла For … Next таков:
For Счетчик = Начало To Конец [Step Шаг]
Операторы
[Exit For]
[Операторы]
Next [Счетчик],
где For – зарезервированное слово VBA, обозначающее начало цикла; Счетчик – переменная, определенная в качестве счетчика цикла, при первом выполнении циклв принимает значение Начало и каждый раз при выполнении оператора Next увеличивается на величину, заданную параметром Шаг; To – зарезервированное слово VBA, разделяющее значения Начало и Конец; Step – зарезервированное слово VBA, используемое для задания шага цикла, необязательный аргумент; Шаг – число, задающее значение, на которое увеличивается
Exit For – оператор экстренного выхода из цикла; Next – зарезервированное слово VBA, обозначающее конец цикла.
Step отсутствует, то значение шага равен единице.
пример
Составить программу вычисления суммы и произведения числовой
последовательности. ,
Дано: начало a и конец n суммирования и произведения.
Найти: Sum, Pr.
Private Sub CommandButton1_Click()
Dim a, n, h, i As Integer
Dim Sum, Pr, b As Single
'Ввод данных
a = Range("A1").Value
n = Range("B1").Value
h = Range("C1").Value
'Вычисления
Sum = 0
Pr = 1
For i = a To n Step h
b = Sin(2 * i + 0.4)
Sum = Sum + b
Pr = Pr * b
Next i
’Вывод результатов в ячейки B4 и B5
Range("B4").Value = "Сумма = " & Sum
Range("B5").Value = "Произведение = " & Pr
End Sub
Программирование цикла с условием
Циклы с условием применяются , когда число повторений неизвестно, а некоторые действия в программе должны повторяться до тех пор, пока выполняется определенное условие или до тех пор, пока не будет выполнено определенное условие. Условием может быть любым выражением, принимающим значение True (Истина) или False (Ложь). В VBA есть два основных цикла с условием — цикл Do While ... Loop и цикл Do Until ... Loop. Оба они могут быть с предусловием или с постусловием.
Циклы Do While | Until имеют следующий синтаксис:
Цикл с предусловием:
Do While | Until <Условие>Операторы [Exit Do]Loop
Цикл с постусловием:Do
Операторы[Exit Do]Loop While | Until <Условие>,
где Do — зарезервированное слово VBA, указывающее на начало цикла; While|Until — зарезервированные слова VBA, если используется While -> цикл выполняется, если <Условие> принимает значение True и заканчивает свою работу, если <Условие> принимает значение False. Если используется Until -> цикл выполняется, если <Условие>=False и заканчивает свою работу, если <Условие>=True; <Условие> — логическое выражение, принимающее значение True или False; Loop — зарезервированное слово VBA, указывающее на окончание цикла.
Цикл с предусловием и Цикл с постусловием отличаются тем, что Цикл с постусловием выполняется хотя бы один раз до проверки <Условие>, а Цикл с предусловием может не выполняться ни разу, если не выполняется <Условие>.
Для заданного найти наименьшее n такое, что 2n/n!< . Вывести все члены последовательности от 1-го до n-го.
u = 1 'первый множитель
n = 0 'количество шагов
Range("C1:E20").Clear
Do Until (u < Eps) Or (n >= Limit)
n = n + 1
q = 1
For i = 1 To n
q = q * i
Next i
u = 2 ^ n / q 'очередной множитель
Cells(n, 4).Value = n
Cells(n, 5).Value = u
Loop
но при таких вычислениях может быстро накапливаться ошибка и мы можем получить не верный результат.
Обратим внимание, что
u1=2\1/1!,
u2=2\2/2!=2*2/(1*2)= u1*21/2,
u3=2\3/3!=22*2/(1*2*3)= и2*2/3 и т.д,
т.е. у нас возникает множитель 2/n, умноженный на значение предыдущего шага.
Нам необходимо учесть, что число шагов может быть невообразимо много, поэтому мы введет константу для ограничения шагов Limit = 100.
Public Sub Степень_двух()
'Описание констант
Const Limit As Integer = 100
'Описание переменных
Dim Eps As Single
Dim u As Single
Dim u1 As Single
Dim n As Integer
'Ввод переменных
Eps = Range("b1").Value
'Задание начальных значений
u = 1 'первый множитель
n = 0 'количество шагов
Range("C1:E20").Clear
'Вычисление значений
Do Until (u < Eps) Or (n >= Limit)
Cells(n, 4).Value = n
u1 = u
u = u1 * 2 / n 'очередной множитель
n = n + 1
Cells(n - 1, 5).Value = u
Loop
'Вывод результатов
Range("A6:A7").Clear
If n >= Limit Then
Range("A7").Value = n & " шагов не хватило для достижния точночти."
End If
End Sub
Yandex.RTB R-A-252273-3
- 3)Система счисления. Представление чисел в различных системах. Перевод целых чисел из одной в другую.
- 4)Высказывания и предикаты. Алгебра, высказывание, предикат, булевское, высказывание, логические функции.
- 5)Аксиомы алгебры предикат.
- 6)Информационно-логическая задача(опр)
- 7)Кол-венное измерение инфы. Кол-во инфы. Мера инфы. Мера р. Хартли. Мера к. Шенона
- 8)Объект и предмет информатики
- 9)Структура современной информатики
- 10)Структура программного обеспечения
- 11)Системы програмирования
- 12)Операционные системы
- 13)Понятие алгоритма. Св-ва. Типы. Виды представления алгоритмов. Этапы разработки программы
- 14) Объектно-ориентированное программирование на примере vba.
- 15)Основные понятия объектно-ориентированное программирование
- 16)Объекты. Методы. Свойства. События
- 17)Основы программирования на языке vba
- 2.3. Выражения
- 2.3.1. Виды операций
- 2.3.2. Приоритет выполнения операций
- 18)Алфавит. Комментарии. Имена переменных. Операция присвоения. Математические операции. Операции присвоения. Логические операции.
- 19)Процедуры ,процедуры-функции. Общие процедуры .Процедуры обработки событий .Объявление переменных
- 20) Встроенные функции (математические)
- 21)Условный оператор if…then
- 22)Операторы передачи безусловного перехода по метке goto
- 21)Условный оператор if…then
- 23)Операторы цикла
- 24)Создание процедуры(функции) вызов процедуры
- 25)Работа со строковыми переменными
- 26)Ввод-вывод в vba : inputbox, msgbox,объекты range, cells
- 27)Некоторые приемы оптимизации программ
- 28)Опред одномерного и двумерного массива. Декларация одномерного и двумерного масива в vba
- 29)Алгоритмы ввода вывода одномерного массива. Алгоритм ввода и вывода двумерного массива
- 30)Основные сведения о динамичном массиве.
- 31)Сортировка массива методом пузырька массива
- 32)Сортировка масива методом нахождения минимального элемента массива
- 33)Экранная форма
- 34)Экранная форма( св-ва, методы, события)
- 36)Эл. Кнопка(св-ва, события)
- 37)Элемент Текстовое поле (свойства)
- 38)Эл надпись(св-ва)
- 39)Элемент рамка
- 40)Элемент флажок
- 41)Эл переключатель(св-ва)
- 42)Элемент рисунок
- 43) Размещение элементов управления в форме или на рабочем листе
- 43)Размещение эл упр в форме или на раб листе
- 48)Задачи на измерение единицы измерения информации
- 49)Задачи бутлеровской алгебры и размеры пениса мух
- 52,3) Построение графиков 2 порядка на плоскости гиперболоид (однополосный, двухполюсный)
- 52,4) Построение графиков 2 порядка на плоскости конус 2 порядка
- 59) Транспонирование матрицы