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

Лабораторные по VBA / Лабораторная работа №4

.docx
Скачиваний:
193
Добавлен:
22.03.2016
Размер:
92.74 Кб
Скачать

Лабораторная работа №4.

Реализация циклических алгоритмов

Цель : Важным элементом программы является оператор цикла. Он используется для выполнения в программе повторяющихся действий, целью работы является приобретение навыков написания программ на VBA с использованием циклических алгоритмов.

Цикл с использованием счетчика.

Цикл типа For - цикл с использованием счетчика. Он выполняет указанную последовательность команд заданное счетчиком число раз.

Синтаксис оператора цикла:

For «счетчик» = «начальное значение» То «конечное значение» [Step «шаг»]

« блок оператор»

Next [«счетчик»]

Шаг может быть как положительным, так и отрицательным.

При указании цикла For определяется переменная цикла, которая служит «счетчиком», а также ее «начальное значение» и «конечное значение». В качестве дополнительного параметра цикла можно указать приращение — величину («шаг»), которая прибавляется к счетчику или вычитается из него после завершения очередного шага цикла. Перед выполнением первого шага «счетчик» устанавливается в начальное состояние. После выполнения очередного шага к переменной прибавляется величина, указанная после ключевого слова Step (если она не указана, прибавляется единица). Затем «счетчик» сравнивается с конечным значением переменной цикла. Если он больше, чем «конечное значение», выполнение цикла прекращается и программа переходит к следующему за ключевым словом Next оператору.

Пример1

Написать программу вычисления суммы конечного числа элементов ряда, если:

Представить результат выполнения программы в следующем виде:

Где в ячейку А2 вводится значение аргумента х, а в ячейке В2 выводится результат.

Изобразим блок-схему:

    1. Решение с помощью макроса

Создайте лист с названием «ЛР4». Введите текст следующего макроса, выполните его.

1.2 Решение с помощью функции:

Напишите функцию:

В ячейку А3 введите значение аргумента, выполните вставку функции в ячейку B3 «моя_сумма» из категории «определенные пользователем» .

Операторы цикла с условием.

В VBA для организации циклов с неизвестным заранее числом шагов используются операторы цикла с условием:

1. Оператор цикла While-Wend.

Синтаксис:

While «условиие»

«блок_операторов»

Wend

Цикл обеспечивает многократное выполнение «блока операторов», пока «условие» принимает значение True.

2. Операторы цикла Do-Loop

Синтаксис перечисленных операторов:

Do While «условиие»

«блок_операторов»

[Exit Do]

«блок_операторов»

Loop

Оператор do while-Loop обеспечивает многократное выполнение блока операторов до тех пор, пока «условиие» соблюдается( имеет значение True)

Do Until «условиие»

«блок_операторов»

[Exit Do]

«блок_операторов»

Loop

Оператор Do until-Loop обеспечивает многократное выполнение блока операторов до тех пор, пока «условиие» не соблюдается( имеет значение False).

Do

«блок_операторов»

[Exit Do]

«блок_операторов»

Loop While «условиие»

Do

«блок_операторов»

[Exit Do]

«блок_операторов»

Loop Until «условиие»

Операторы Do-Loop while и Do-Loop until отличаются от перечисленных выше двух операторов тем, что сначала блок операторов выполняется, по крайней мере, один раз, а потом проверяется «условиие». Оператор Exit Do обеспечивает досрочный выход из оператора цикла.

Пример 2

Написать макрос, который будет вычислять сумму вводимых пользователем с клавиатуры числа до тех пор, пока не будет введен ноль. С использованием цикла с условием, реализацию каждого цикла оформить в виде отдельного макроса.

Вывод осуществить в ячейки электронной таблицы следующим образом:

Запустить все макросы с одними и теми же исходными данными.

Решение:

Варианты задания для самостоятельной работы:

Вывод реализовать в ячейки того же листа «ЛР4», ниже результатов учебного примера

Задача 1:

Написать программу вычисления суммы (произведения) конечного числа элементов ряда с использованием цикла с параметром.

1

, х вводится пользователем с клавиатуры

6

, a вводится пользователем с клавиатуры

2

7

, а вводится пользователем с клавиатуры

3

8

, х вводится пользователем с клавиатуры

4

9

5

, х вводится пользователем с клавиатуры

10

Задача 2:

К задаче своего варианта необходимо написать пять программ, используя циклы с предусловием и постусловием.

  1. Вычислить произведение вводимых пользователем с клавиатуры чисел, если числа считываются до тех пор, пока не будет введена единица;

  2. Вычислять и выводить в ячейки рабочего листа кубы вводимых пользователем с клавиатуры чисел до тех пор, пока не будет введено 3.

  3. Вычислять и выводить в ячейки рабочего листа члены арифметической прогрессии до тех пор, пока очередной член прогрессии не окажется большим 50. Первый член арифметической прогрессии равен 2, разность равна 5;

  4. Вычислять и выводить в ячейки рабочего листа члены геометрической прогрессии до тех пор, пока очередной член прогрессии не окажется большим 250. Первый член геометрической прогрессии равен 3, знаменатель равен 4;

  5. Общий член последовательности задан формулой: . Вычислить сумму n первых членов последовательности, меньших 75.

  6. Общий член последовательности задан формулой: . Вычислить сумму n первых членов последовательности, больших 1;

  7. Общий член последовательности задан формулой: . Суммировать первые n членов последовательности, до тех пор, пока сумма не окажется большей 100. Вывести значение суммы и последнего n-го члена последовательности;

  8. Общий член последовательности задан формулой: . Вычислять произведение первых n членов последовательности до тех пор, пока произведение не окажется большим 1000. Вывести значение произведения и последнего n-го члена последовательности;

  9. Первый член арифметической прогрессии равен -50, разность равна 7. Вывести на в ячейки рабочего листа все члены данной арифметической прогрессии, меньшие нуля;

  10. Первый член арифметической прогрессии равен 90, разность равна -8. Вычислить сумму всех положительных членов данной арифметической прогрессии.

Контрольные вопросы.

  1. Какой алгоритм называется циклическим?

  2. Какие виды операторов цикла используются в языке программирования VBA?

  3. В каком случае удобно использовать цикл for?

  4. В чем сходство и различие конструкций операторов цикла с условием?

  5. Как все вида циклов изобразить с помощью блок-схемы?