- •Основные понятия алгоритмизации
- •1. Понятие алгоритма
- •2. Свойства алгоритма
- •3. Основные способы записи алгоритмов
- •4. Основные элементы блок-схемы
- •5. Типы данных.
- •6. Типовые структуры алгоритмов
- •Язык и система программирования Visual Basic for Application (vba)
- •1. Общая характеристика языка и системы программирования vba
- •7. Стандартные алгоритмы
- •7.1. Алгоритм накопления суммы (произведения)
- •2. Типы данных в языке vba
- •3. Арифметические и логические выражения
- •4. Основные операторы языка vba
- •1. Оператор присваивания.
- •2. Условный оператор.
- •3. Оператор цикла с заданным числом повторений.
- •5. Разбиение строки программы, несколько операторов в одной строке, задание комментариев в тексте программы
- •6. Типы процедур
7. Стандартные алгоритмы
Стандартными называют алгоритмы, эффективные способы организации которых уже были разработаны ранее (т.е. уже известны). К стандартным алгоритмам относятся алгоритмы решения таких задач как накопление суммы и произведения элементов массива, поиск максимального и минимального элемента массива, сортировка элементов массива.
7.1. Алгоритм накопления суммы (произведения)
Суть алгоритма накопления в том, что сумма или произведение вычисляются не сразу, а постепенно накапливаются за счет добавления очередного элемента массива на каждом шаге цикла. Для правильной работы алгоритма переменной, в которой будет накапливаться сумма (произведение), должно быть присвоено определенное начальное значение, не влияющее на действие накопления. Например, при накоплении суммы в качестве начального значения берется 0 (т.к. прибавление нуля не влияет на сумму), а при накоплении произведения начальное значение равно 1 (при умножении на 1 произведение не меняется).
Рис. 8. Накопление суммы Рис. 9. Накопление произведения
Пусть Х – одномерный массив из n элементов (чисел). Требуется вычислить сумму элементов массива S. Переменную-индекс для перебора элементов в цикле обозначим как i.
Блок-схема накопления суммы элементов массива Х в переменную S изображена на рисунке 8. Накопление произведения элементов массива Х в переменную P выполняется аналогично накоплению суммы (рис. 9).
Язык и система программирования Visual Basic for Application (vba)
1. Общая характеристика языка и системы программирования vba
Название Visual Basic for Application можно перевести как «Visual Basic для приложения». В данном случае речь идет о системе программирования языка Visual Basic (Визуальный Бейсик), встроенной в прикладные программы (приложения) пакета MS Office: текстовый редактор MS Word, электронную таблицу Excel, программу презентаций Power Point, систему управления базами данных Access и др. Можно воспользоваться средствами VBA в любой из этих программ, чтобы расширить ее возможности (улучшить интерфейс, задать нестандартные действия или вычисления и т.п.).
Например, с помощью VBA в среде электронной таблицы Excel можно:
– создавать функции пользователя, если недостаточно возможностей стандартных встроенных функций;
– с помощью специального макрорекодера (MacroRecoder) задать автоматическую запись программного кода согласно действиям, выполненным пользователем в электронной таблице;
– создавать различные дополнительные визуальные элементы (окна, панели, кнопки и пр.).
Язык программирования, используемый в VBA, для записи программного кода представляет собой диалект языка Visual Basic, который в свою очередь базируется на классическом алгоритмическом языке Basic (Бейсик).
Одной из особенностей Visual Basic, а, следовательно, и VBA, является использование элементов объектно-ориентированного подхода к программированию (ООП). При этом объект – это программный элемент, у которого может быть свое отображение на экране и который содержит некоторые переменные, определяющие его свойства, а также методы управления им. Таким образом, объект позволяет инкапсулировать (объединять в нечто целое) данные вместе с кодом, предназначенным для их обработки.
Например, в VBA для Excel может использоваться более 100 встроенных объектов, находящихся на разных уровнях иерархии. Приведем названия некоторых из них: Range – блок (диапазон) ячеек, Cell – ячейка, WorkSheet – рабочий лист, DialogSheet – диалоговое окно, WorkBook – рабочая книга и т.д. Главным в иерархии объектов является объект Application, который представляет собой само приложение Excel. Он имеет более 120 свойств и 40 методов, предназначенных для установки общих параметров приложения.
Система программирования VBA представляет собой интегрированную среду разработки программ, которая включает в себя следующие компоненты: окно проекта, окно для редактирования программного кода (текста программ), окно свойств, окно просмотра объектов и др.
Система программирования VBA является средой визуального программирования и позволяет достаточно легко создавать различные визуальные (видимые на экране) объекты (окна форм, кнопки, текстовые поля, надписи, списки и пр.). Пользователь с помощью специальной панели инструментов может формировать эти элементы на экране, задавая их свойства (положение на экране, размер, цвет и т.п.). Писать программный код при этом не нужно (так, как это потребовалось бы в классических алгоритмических языках).
В системе VBA работает механизм «событие-отклик», с помощью которого осуществляется управление последовательностью выполнения процедур. Событие представляет собой некоторое действие, распознаваемое объектом. События могут возникать в результате действий пользователя или программы. В роли события может выступать нажатие клавиши на клавиатуре и т.д. Например, для визуального объекта «кнопка» событием является щелчок мышью по этой кнопке на экране.
Чтобы объект мог правильно реагировать на событие, необходимо запрограммировать для него соответствующий отклик в виде некоторой процедуры (подпрограммы). Таким образом, программирование будет сводиться к разработке процедур-откликов созданных объектов на нужные события. При этом необязательно программировать все отклики на все возможные события для данного объекта. Если отклик не создан на какое-то событие, то программа просто никак не будет реагировать в случае возникновения этого события (оно останется безответным).
