- •Часть 2 Основы программирования
- •Решения задач в среде Visual Basic for Applications Лабораторная работа № пр1 «Создание процедур»
- •Теоретические сведения
- •Процедуры, константы, переменные
- •Решение
- •Лабораторная работа № пр2 «Работа с условным оператором If ... Then»
- •Теоретические сведения
- •Решение
- •Найти значение функции y в точке X. .
- •Теоретические сведения
- •Решение
- •Лабораторная работа № пр4 «Программирование циклов с условием»
- •Теоретические сведения
- •Лабораторная работа № пр5 «Работа с рекуррентными формулами»
- •Решение
- •Для заданных значений n и X вычислить выражение: . Лабораторная работа № пр6 «Работа со строковыми переменными»
- •Теоретические сведения Строковые переменные
- •Функции преобразования типов
- •Решение
- •Глоссарий
- •1. Основы алгоритмизации
- •1. Основные понятия языка Visual Basic for Applications (vba)
- •1.2. Операция присваивания
- •1.3. Математические операции
- •Логические операции
- •2. Некоторые приемы оптимизации программ
- •Литература Основная
- •Дополнительная
Решение
Этап 1. Математическая часть
Дано: начало a и конец n суммирования и произведения.
Найти: Sum, Pr.
(!) Самостоятельно разработать алгоритм на естественном языке и составить блок-схему.
Этап 2. Ввод данных в таблицу Excel
В ячейку А1 вводится значение числа a, в ячейку B1 вводится значение числа n, в ячейку C1 вводится значение шага h для цикла.
Этап 3. Определение переменных
Вводятся: a, n, h (тип Single).
Промежуточные переменные: (счетчик цикла) i (тип Integer), (bi) b (тип Single).
Выводятся (результат): Sum, Pr (тип Single).
Этап 4. Написание процедуры
На рабочем листе Лист1 при помощи Элементов управления создать элемент Кнопка (СommandBatton1).
Навести курсор мыши на Кнопку в режиме конструктора (на панели Элементы управления нажата первая кнопка (линейка с треугольником)). Вызвать контекстное меню ПКМ Выбрать пункт Свойства закладку Alpabetic, в списке свойств выбрать Caption, справа в поле ввода удалить старое название и ввести новое название кнопки Сумма и Произведение.
Навести курсор на Кнопку в режиме конструктора. Вызвать контекстное меню ПКМ. Выбрать пункт Исходный текст. Автоматически попадаем в режим редактора VBA и появляется заголовок Процедуры-События:
Набирать процедуру на месте курсора:
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
Этап 5. Выполнение
Перейти на рабочий лист (ViewMicrosoft Excel или Alt+F11). Выйти из режима Конструктора, левой клавишей мыши (ЛКМ) нажать Кнопку. В ячейке В4 появится результат «Максимальное число = 10».
Этап 6. Переименование листа Навести курсор на закладку Лист1, правой клавишей мыши (ПКМ) вызвать контекстное меню, выбрать пункт Переименовать, удалить старое название листа и с клавиатуры набрать новое Сумма_Произведение, нажать Enter.
Лабораторная работа № пр4 «Программирование циклов с условием»
Цель работы: научиться использовать оператор VBA «Цикл с условием».
Теоретические сведения
Программирование цикла с условием
Циклы с условием применяются тогда, когда число повторений неизвестно, а некоторые действия в программе должны повторяться до тех пор, пока выполняется определенное условие или до тех пор, пока не будет выполнено определенное условие. Условием может быть любым выражением, принимающим значение 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, указывающее на окончание цикла.
Цикл с предусловием и Цикл с постусловием отличаются тем, что Цикл с постусловием выполняется хотя бы один раз до проверки <Условие>, а Цикл с предусловием может не выполняться ни разу, если не выполняется <Условие>.
Используя цикл с условием, можно организовать бесконечный цикл. Иногда это бывает необходимо, гораздо чаще это происходит из-за ошибки пользователя. Для создания бесконечного цикла условное выражение должно быть таким, которое никогда не выполняется или выполняется всегда. Выйти из такого бесконечного цикла и прервать работу программы можно, нажав комбинацию клавиш <Ctrl+Break>.
Вызов процедуры
Выполнить процедуру типа Sub, у которой аргументы есть, можно только вызвав её из другой процедуры.
Таким образом, при написании собственной процедуры вы можете воспользоваться процедурами (и макросами), написанными другими пользователями. В свою очередь ваша процедура может быть использована в других приложениях.
Если процедура имеет аргументы, то она будет требовать эти аргументы при выполнении своей работы. Вызывается процедура с помощью оператора Call, вслед за которым должно следовать имя процедуры и список её параметров в скобках. Вместо входных параметров могут стоять их значения. Допускается и бесскобочная запись оператора вызова (при этом ключевое слово Call – имя оператора – не используется).