Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
65
Добавлен:
10.04.2015
Размер:
2.87 Mб
Скачать

5.1. Теоретические сведения

Алгоритм циклической структуры характеризуется наличием многократно повторяемого участка вычислительного процесса.

Для организации циклов язык VBA предоставляет несколько структур, позволяющих организовывать циклическое повторение выполняемых частей кода. Рассмотрим процесс выполнения всех операторов, заключенных в структуру цикла, с фиксированным и неопределенным числом итераций. Для реализации циклических алгоритмов в VBA используем два типа структур, организующих циклы: ForNext и WhileWend.

Пр и м е р1. Составить алгоритм и прог-грамму табулирования функции дляx, изменяющегося от xn = –π до xk = π с шагом ∆x = π/6 при a = 0,62; b = 0,98.

Схема алгоритма с использованием блока модификации 3 приведена на рис. 5.1. Число проходов цикла задается значениями xn (начало) и xk (конец), которые могут быть целыми числами, переменными или сложными выражениями. Параметр цикла х изменяется при каждом повторении вычислений. Расчет значений функции y будет продолжаться до тех пор, пока очередное значение х не превысит xk. Циклический процесс данного алгоритма можно реализовать с помощью оператора ForNext, который используется при необходимости повторения действия или ряда действий заданное количество раз, известное до начала выполняемого цикла.

Программа с оператором For – Next:

Option Explicit

Sub PR1()

Dim a As single, b as single, pi as single, x As single

Dim i as integer, y as single

a = 0.62 : b = 0.98 : i = 1: pi = 3.14159

For x = –pi to pi Step pi/6

y=a*sin(b*x)^2

Cells(i,1) = x: Cells(i,2)= y : i = i + 1

Next х

End Sub

П р и м е р 2. Рассмотрим алгоритм Евклида – алгоритм нахождения наибольшего общего делителя двух натуральных чисел – а и b (рис. 5.2). Данный алгоритм относится к циклической структуре с предусловием.

После ввода исходных данных (блок 2)

1) вычисляется значение условия (блок 4);

2) проверяется истинность условия:

если условие (блок 4) является истинным, то выполняются действия, расположенные между блоками 4 и 9, после этого вновь осуществляется переход к проверке условия (блок 4);

если условие (блок 4) является ложным, то действия, расположенные между блоками 4 и 9, не выполняются ни разу и цикл завершается.

Исходный алгоритм реализуется программой с помощью оператора WhileWend, используемого в цикли-ческих структурах с неизвестным числом повторений:

Программа с оператором WhileWend:

Option Explicit

Sub PR2()

Dim a As integer, b as integer, i as integer

а = val(inputBox(“Введите а”))

b = val(inputBox(“Введите b”)): i = 0

While a >< b

if a> b then a = a – b else b = b – a

i = i +1

Wend

Cells(1,1) = a : Cells(1,3) = i

End

Пример 3. Составить алгоритм и программу вычисления значений семейства характеристик для аргументаx, изменяющегося от xn = – π до xk = π с шагом ∆x = π/6 при значениях a от an = 2,5 до ak = 3,5 с шагом ∆а = 0,5, где b = 0,68.

Схема алгоритма вычисления значенийприведена на рис. 5.3, алгоритм относится к типу «цикл в цикле».

Ввод исходных данных происходит в блоке 2. По внешнему контуру цикла в алгоритме вводятся значения а функции у, по внутреннему – значения х в соответствии с законами изменения параметра цикла а = а + ∆а внешнего контура и параметра цикла внутреннего контура цикла по х с проверкой условия окончания цикла (блоки 3 и 5 соответственно). Блоки 6 (вычисление функции у) и 7 (вывод на экран полученного результата внутреннего контура цикла) образуют тело цикла.

Процедура, использующая вложенный цикл, имеет следующий вид:

Option Explicit

Sub gh() ’Семейство характеристик

Dim a As Single, b As Single, Dim x As Single, y As Single, pi as Single

Dim n As Integer, _ ‘Номер столбца для вывода переменной а

k As Integer, _ ‘Номер строки для вывода переменных х и у

m As Integer ‘Номер столбца для вывода переменной у

Range (“А1:U100”).Clear ‘Очистка листа Excel c ячейки A1 по U100

pi = 3.14159: b = 0.98: cells (1,1)=”x”

m = 2: n = 2 ‘Начальные значения m и n

For a = 2.5 To 3.5 Step 0.5 ‘Заголовок внешнего цикла по а

k = 2: Cells (1, n) = “a=” & a: n = n + 1

For x = -pi To pi + 0.01 Step pi / 6 ‘Заголовок внутреннего цикла по х

y = a * Sin(b * x) ^ 2 ‘Расчет у

Cells (k, 1) = x: ‘Вывод х в первый столбец

Cells (k, m) = y ‘Вывод столбца по у

k = k + 1 ‘Наращивание номера строки по x и у

Next x ‘Конец внутреннего цикла по х

m = m + 1 ‘Наращивание номера столбца по у

Next a ‘Конец внешнего цикла по а

End Sub

Таблица значений и график семейства кривых функции вExcel показана на рис. 5.4.

Рис. 5.4. Таблица значений (а) и график семейства кривых (б) функции на рабочем листеExcel

а б

Соседние файлы в папке Лаб. работы по VBA