Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курылин.docx
Скачиваний:
11
Добавлен:
09.12.2018
Размер:
574 Кб
Скачать
☆

Программирование на Visual Basic for application

Visual Basic for Applications (VBA, Visual Basic для приложений) — немного упрощённая реализация языка программирования Visual Basic, встроенная в линейку продуктов Microsoft Office (включая версии для Mac OS), а также во многие другие программные пакеты, такие как AutoCAD, SolidWorks, CorelDRAW, WordPerfect и ESRI ArcGIS. VBA покрывает и расширяет функциональность ранее использовавшихся специализированных макро-языков, таких как WordBasic.

VBA является интерпретируемым языком. Как и следует из его названия, VBA близок к Visual Basic. VBA, будучи языком, построенным на COM, позволяет использовать все доступные в операционной системе COM объекты и компоненты ActiveX. По сути, возможно создание приложения на основе Microsoft Word VBA, использующего только средства Corel Draw.

В будущем Microsoft планирует заменить VBA на Visual Studio Tools for Applications (VSTA) — инструментарий расширения функциональности приложений, основанный на Microsoft .NET.

VBA — транслируемый язык. Это означает, что его команды сначала преобразуются к исполняемой форме. Контейнеры VBA (Access, Excel, Word) могут сохранять странслированную программу в скрытой форме в исходном документе (чтобы избежать перекомпиляции при каждом выполнении программы). Исполнение кода происходит в виртуальной машине (как в Java), что зачастую ошибочно называют интерпретацией. Несмотря на его схожесть со многими старыми диалектами BASIC (особенно Microsoft BASIC), VBA не совместим с ними, кроме Microsoft Visual Basic до версии 6, и не совместим с VB.NET. Использование VBA с приложениями (Access, Excel, Word) предполагает соответствующую терминологию и языковые конструкции — так называемую «объектную модель приложения».

Широкое распространение Visual Basic for Applications в сочетании с изначально недостаточным вниманием к вопросам безопасности привело к широкому распространению макровирусов. Как и программы на любом языке программирования, макросы VBA могут быть созданы с злым умыслом. Для защиты были введены опции приложения — пользователь по своему усмотрению может исполнять макросы VBA или отказаться от их использования.

Примеры:

Цикл For Each..Next всегда выполняется столько раз, сколько имеется элементов в определенной группе.

В нижеприведенном листинге показана функция SheetExists, использующая цикл For Each..Next для определения того, существует ли определенный лист в рабочей книге Excel:

При выполнении цикла Do Loop While сначала выполняются операторы тела цикла, затем по достижении ключевого слова Loop тестируется логическое выражение (Condition); если оно равно True - управление передается в начало тела цикла и цикл повторяется снова. Так происходит до тех пор, пока логическое выражение не станет False. Когда логическое выражение становится False - управление передается оператору, следующему за строкой Loop While...

Листинг, использующий цикл Do Loop While для подсчета цифр от 1 до 10, будет выглядеть так:

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

При вложении циклов надо соблюдать определенные правила:

  • При вложении циклов For..Next каждый цикл должен иметь свою уникальную переменную счетчика;

  • При вложении циклов For Each..Next каждый цикл должен иметь свою уникальную element-переменную;

  • Если используется оператор Exit For или Exit Do во вложенном цикле, этим оператором заканчивается только выполняемый в данный момент цикл. VBA продолжает выполнение следующего цикла более высокого уровня.

В нижеприведенном листинге показан простейший пример использования вложенных циклов For..Next:

Программирование на С++

Язык программирования С++ задумывался как язык, который будет:

  • лучше языка С;

  • поддерживать абстракцию данных;

  • поддерживать объектно-ориентированное программирование.

С++ - язык общего назначения и задуман для того, чтобы настоящие программисты получили удовольствие от самого процесса программирования. За исключением второстепенных деталей он содержит язык С как подмножество. Язык С расширяется введением гибких и эффективных средств, предназначенных для построения новых типов. Программист структурирует свою задачу, определив новые типы, которые точно соответствуют понятиям предметной области задачи. Такой метод построения программы обычно называют абстракцией данных. Информация о типах содержится в некоторых объектах типов, определенных пользователем. С такими объектами можно работать надежно и просто даже в тех случаях, когда их тип нельзя установить на стадии трансляции. Программирование с использованием таких объектов обычно называют объектно-ориентированным. Если этот метод применяется правильно, то программы становятся короче и понятнее, а сопровождение их упрощается.

Ключевым понятием С++ является класс. Класс - это определяемый пользователем тип. Классы обеспечивают упрятывание данных, их инициализацию, неявное преобразование пользовательских типов, динамическое задание типов, контролируемое пользователем управление памятью и средства для перегрузки операций. В языке С++ концепции контроля типов и модульного построения программ реализованы более полно, чем в С. Кроме того, С++ содержит усовершенствования, прямо с классами не связанные: символические константы, функции-подстановки, стандартные значения параметров функций, перегрузка имен функций, операции управления свободной памятью и ссылочный тип. В С++ сохранены все возможности С эффективной работы с основными объектами, отражающими аппаратную "реальность" (разряды, байты, слова, адреса и т.д.). Это позволяет достаточно эффективно реализовывать пользовательские типы.

Объектно-ориентированное программирование - это метод программирования, способ написания "хороших" программ для множества задач. Если этот термин имеет какой-то смысл, то он должен подразумевать: такой язык программирования, который предоставляет хорошие возможности для объектно-ориентированного стиля программирования.

Нельзя сказать, что один язык лучше другого только потому, что в нем есть возможности, которые в другом отсутствуют. Часто бывает как раз наоборот. Здесь более важно не то, какими возможностями обладает язык, а то, насколько имеющиеся в нем возможности поддерживают избранный стиль программирования для определенного круга задач.

Язык С++ проектировался для поддержки абстракции данных и объектно-ориентированного программирования в добавление к традиционному стилю С. Впрочем, это не значит, что язык требует какого-то одного стиля программирования от всех пользователей.

Задача

Описать структуру TRAIN с полями:

  • название пункта направления;

  • номер поезда;

  • время отправления.

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

  • ввод с клавиатуры данных в массив, состоящий из элементов типа TRAIN;

  • затем разместить их в алфавитном порядке по названиям пунктов назначения;

  • вывод информации о поездах, отходящих после введенного времени;

  • если таких поездов нет, выдать на дисплей соответствующее сообщение.

Решение