Выполнение программы по шагам 4 Кнопка Точка останова (Toggle Breakpoint) 5
Вид материала | Лекция |
- Стартовое окно программы предоставляет возможность запустить программу для изучения, 39.93kb.
- Тема: «Основні особливості Visual FoxPro. Запуск Visual FoxPro», 917.75kb.
- Запуск Microsoft PowerPoint, 333.39kb.
- Структура программы на Паскале Система программирования Турбо Паскаль, 145.34kb.
- Пример работы программы: Врезультате работы программы формируется блок из выбранных, 78.36kb.
- Системы беспроводной связи для передачи голоса и данных по схеме «точка – точка» (WinLink, 273.26kb.
- Точка, точка. Запятая, 221.89kb.
- Концепция Обнорского Точка зрения Филина, 1219.81kb.
- Встране Геометрия жила-была маленькая точка. Это была очень красивая красная точка., 85.79kb.
- Сочинение на лингвистическую тему, 4.95kb.
А.А.Хамухин. Информатика для направления «Нефтегазовое дело». Лекция 5. Семестр 1
Сравнительные характеристики языков программирования. Встроенный в приложения Windows язык VBA Программы, модули, проекты. Отладка и тестирование
Содержание
Сравнительные характеристики языков программирования. Встроенный в приложения Windows язык VBA Программы, модули, проекты. Отладка и тестирование 1
Сравнительные характеристики современных языков программирования (ЯП) 1
Встроенный в приложения Windows язык программирования VBA 2
Как начать работу в VBA? 2
Область видимости подпрограмм и функций 3
Отладка и тестирование 4
Выполнение программы по шагам 4
Кнопка Точка останова (Toggle Breakpoint) 5
Кнопки Контрольное значение (Quick Watch) и Окно контрольного значения (Watch Window) 5
Сравнительные характеристики современных языков программирования (ЯП)
ЯП предназначены для кодирования задач в более понятной форме и автоматическому переводу (трансляции) из этой формы на язык машинных кодов. Классификация ЯП производится по разным признакам. Рассмотрим несколько из них в качестве обоснования выбора ЯП для инженерных расчетов в нефтегазовом деле
1. По принципу трансляции - интерпретаторы (построчная трансляция) и компиляторы (трансляция всей программы). Например, FoxPro, Basic являются интерпретаторами, С++, Delphi - компиляторами. Что из этого следует?. При помощи интерпретаторов можно быстро собрать работающее приложение и изменять его по ходу работы программы, вплоть до того, что создавать программы “на лету”. Но за это приходится расплачиваться скоростью работы конечной программы – откомпилированная программа всегда работает быстрее. Правда, при таком развитии компьютерной техники и на тех задачах, которые решатся при выполнении инженерных расчетов - это различие в скорости становится незаметным.
2. По способу программирования – процедурные и непроцедурные (объектно-ориентированные). Процедурные языки были исторически более ранними и основаны на программировании ДЕЙСТВИЙ над переменными (фортран, алгол, паскаль, бэйсик). Современные ЯП предназначены для ОП-программирования, т.е. описываются объекты, свойства и методы, а программа пишется как обработчик событий, происходящих с объектами. Во многие старые процедурные языки добавлены средства для ОП-программирования: С С++ C#, Basic Visual Basic VBA VBScript, Pascal Object Pascal Delphi. Современные ЯП интерпретирующего типа называют скриптами (Java-script,Python, PHP, Perl). Они получили особое распространение при создании Интернет-приложений.
3. По уровню абстракции конструкций – ЯП высокого уровня ( полностью независимы от системы команд процессора, на котором будут выполняться) и низкого уровня ( зависят от системы команд конкретного процессора). Среди ЯПВУ выделяют группу языков сверхвысокого уровня абстракции (например, лисп, пролог), которые предназначены для решения сложнейших задач , называемых задачами искусственного интеллекта. ЯП низкого уровня называют ассемблерами, добавляя в конце марку процессора, систему команд которого они поддерживают.
4. По принципу выполнения программы - однопоточные и многопоточные (с возможностью параллельного выполнения программ - Java)
Таким образом, можно обосновать, почему для инженерных расчетов наибольшее распространение получил язык Visual Basic for Applications:
- Простота написания и отладки программы. Свойство, характерное для ЯП-интерпретаторов, к которым относится VBA. Например, не требуется предварительное описание типов переменных, в операциях типы преобразуются автоматически, не вызывая остановки программы из-за неправильно примененных типов данных. Это очень важно для того, чтобы инженер прикладник как можно меньше отвлекался на побочные проблемы (программирование), и как можно больше оставлял свое время на свои профессиональные проблемы.
- Максимальная доступность. VBA встроен в приложения MS Office, который имеется практически на всех ПК и не требует какого-либо дополнительного программного обеспечения, кроме операционной системыWindows.
- Легкая совместимость с Excel. Большинство инженерных расчетов, оперирующих с таблицами данных, выполняется в среде Excel, особенно в нефтегазовой отрасли. Поэтому, встроенный в Excel VBA позволяет легко расширить расчетные возможности Excel, например, организовать циклические вычисления, которые напрямую в excel невозможны. VBA встроен и в MS Word, который используется для составления отчетов и в СУБД Access.
- Совмещение процедурного и объектно-ориентированного программирования. VBA, как наследник классического бейсика, сохранил все возможности написания простых программ, использующих только процедуры и функции
Встроенный в приложения Windows язык программирования VBA
Visual Basic for Applications (VBA) - развитая система визуального объектно-ориентированного программирования для создания прикладных программ в среде Microsoft Office.
С помощью VBA можно создавать объекты управления графического интерфейса пользователя, задавать и изменять свойства объектов, подключать к ним соответствующий программный код. Методика программирования с использованием средств VBA сводится к следующему:
- создание объектов управления и контроля (диалоговые окна, пиктограммы, меню);
- разработка процедур, используемых при вызове объектов.
Как начать работу в VBA?
(показать)
- Создаются макросы в меню Сервис - Макрос - Макросы (Alt-F8). Появится табличка "макросы". В поле имя введите "MY", а место нахождения в поле "Находится" выберите - "Это книга". Кнопка "Создать" станет активной нажмите её. Появится редактор VBA введите код программы:
Sub My()
MsgBox “Hello!”
End Sub
- Вызывается редактор VBA в меню Сервис - Макрос – Редактор Visual Basic. Чтобы появилось окно для набора программы выбрать меню Вставка- Модуль
- Найти командную кнопку ( Command Button) на панели управления и добавить ее на лист. В режиме конструктора (кнопка с изображением мастерка) щелкнуть по добавленной командной кнопке – можно начинать набор программы, которая будет всегда вызываться при щелчке по Вашей командной кнопке. Надпись на кнопке изменить с помощью свойства Caption
Окно редактора Visual Basic разделено на несколько частей.
Окно проекта | Содержит иерархический список элементов проекта. В их число входят объекты высокого уровня — рабочие листы, диаграммы, ThisWorkbook (ссылка на рабочую книгу, в которую помещен проект). Может также включать модули, модули классов (они позволяют определять собственные объекты) и формы (нестандартные диалоговые окна) |
Окно свойств | Позволяет просматривать и задавать свойства различных объектов проекта, например объектов Excel, перечисленных в окне проекта. Свойства можно сортировать по алфавиту или по логическим категориям |
Окно программы | Здесь вводят и редактируют программу. Перемещение по окну облегчают два раскрывающихся списка в его верхней части. В списке Объект (Object) перечислены объекты, коды которых можно просмотреть. В списке Процедура (Procedure) — программы, которые можно просмотреть |
Окно UserForm (не показано) | Позволяет создавать нестандартные диалоговые окна, размещать на них элементы управления ActiveX и проверять их действие. Подробно описано в главе 5 |
Окно для просмотра объектов (не показано) | Поможет Вам найти и использовать любой объект, необходимый в приложении.Для отображения окна используйте команду Просмотр объектов (Object Browser) из меню Вид (View). Описано далее в этой главе |
Окна отладки, контрольного значения и локальных переменных (не показаны) | Используются при отладке программы. Открываются командами меню Вид (View), которые описаны далее в этой главе |
Окна отладки, контрольного значения и локальных переменных, как и панели инструментов, можно зафиксировать в окне редактора или перетащить за его пределы. Чтобы разблокировать окно, перетащите строку его заголовка. Заблокированные окна масштабируют, перетаскивая их границы.
Остальные окна — программы, UserForm и просмотра объектов — обычные окна редактора Visual Basic; переключайтесь между ними средствами меню Окно (Window). Имейте в виду, что одновременно можно открыть несколько окон программ и UserForm (по одному для каждого модуля и формы).
В VBA программы пишутся в виде процедур: начинается со служебного слова Sub() с обязательным списком параметров, даже если он пустой и кончается служебным словом End Sub. Кроме процедур допускается использование функций (Function), которые могут объединяться в модули, которые в свою очередь объединяются в проекты.
Область видимости подпрограмм и функций
У подпрограмм и функций только два уровня видимости — модуля и проекта. По умолчанию все программы доступны на уровне проекта, то есть их можно вызывать из любого модуля проекта. При желании Вы можете объявлять такие программы с ключевым словом Public:
Public Sub Chap02fProc54_ProjectLevelProc() Dim Var1 As Integer
Var1 = 1
MsgBox AddOne(VaM)
End Sub
Public Function AddOne(ByRef Var1)
AddOne = Var1 + 1
End Function
Поскольку все программы по умолчанию доступны на уровне проекта, слово Public используется в основном для того, чтобы яснее отделить их от программ уровня модуля. Если Вы опустите слово Public, никаких изменений не произойдет.
Чтобы перевести подпрограмму или функцию на уровень модуля, объявите ее с ключевым словом Private. Помните, что такие программы не могут запускаться сами по себе. Их можно только вызывать из других программ. Это иллюстрируется следующим примером.
Sub Chap02fProc55_ModuleLevelProc()
Var1 = GetRand
Chap02fProc56 Var1 End Sub
Private Sub Chap02fProc56(ByVal Var1)
MsgBox Var1 * GetRand End Sub
Private Function GetRandO
GetRand = Int(100 * Rnd())
End Function
Сначала программа Ргос55 вызывает функцию GetRand для генерации случайного целого числа от 0 до 99, а затем передает его в подпрограмму Ргос56. Там этот аргумент умножается на результат еще одного обращения к GetRand. Их произведение выводится в информационном окне.
Любая переменная, константа, подпрограмма или функция VBA обладает областью видимости (scope), в которой возможен доступ к данной переменной, константе, подпрограмме или функции. Допустим, что мы определили переменную Var1 в процедуре Proc1, а затем написали вторую процедуру — Ргос2, где также хотим использовать эту переменную. Если Varl описана внутри Procl ключевым словом Dim, она считается переменной «уровня процедуры». Это означает, что область ее видимости ограничена подпрограммой или функцией, в которой она объявлена. Использовать Varl в Ргос2 без расширения области видимости переменной нельзя.
Отладка и тестирование
Под отладкой программы будем понимать устранение синтаксических ошибок (то есть ошибок в написании кода), под тестированием будем понимать проверку результатов работы программы на соответствие некоторым заранее известным значениям во всех возможных режимах.
Инструменты для редактирования и отладки кода, существенно облегчают разработку приложений. Доступ к большей части этих инструментов открывают панели Стандарт (Standard), Отладка (Debug) и Правка (Edit). Для их отображения раскройте подменю Панели инструментов (Toolbars) меню Вид (View) и выберите название нужной панели.
Выполнение программы по шагам
Чтобы выполнять код по одной инструкции, щелкайте кнопку Шаг с заходом (Step Into или клавиша F8) по одному разу для каждой строки программы. Если в строке вызывается другая подпрограмма или функция, щелкните кнопку Шаг с заходом (Step Into), чтобы перейти к ее пошаговому выполнению. В промежутках между щелчками код не выполняется — говорят, что он находится в режиме прерывания (break mode).
Если Вы выполняете код по одной инструкции за раз и не хотите, чтобы вызванная в нем подпрограмма или функция действовала в том же режиме, дойдя до вызова, щелкните кнопку Шаг с обходом (Step Over). Подпрограмма (функция) будет выполнена сразу и целиком.
Если Вы начали отладку подпрограммы или функции в пошаговом режиме, а затем решили сразу выполнить все оставшиеся инструкции и вернуться в вызвавшую программу, щелкните кнопку Шаг с выходом. (Step Out). Выполнение остановится в инструкции, следующей за вызовом.
Чтобы прервать пошаговый режим и завершить программу, выполнив все оставшиеся инструкции обычным способом, щелкните кнопку Продолжить (Continue): ее действие аналогично действию кнопки Запуск подпрограммы/иserForm (Run Sub/User Form). Чтобы остановить программу, щелкните кнопку Сброс (Reset).
Кнопка Точка останова (Toggle Breakpoint)
Ее средствами Вы создадите точки останова, в которых нормальное выполнение программы приостанавливается. Такие точки очень полезны, когда нужно быстро выполнить код до определенной инструкции, а затем перейти в пошаговый режим. Для создания точки останова поместите указатель ввода в нужное место строки программы и щелкните кнопку Тонка останова (Toggle Breakpoint или клавишу F9). Строка будет выделена красным цветом, а справа от нее появится большая красная точка. Когда будут выполнены все инструкции до отмеченной, программа остановится. Чтобы удалить точку останова, выделите строку и снова щелкните кнопку Точка останова (Toggle Breakpoint или клавишу F9).
Кнопки Контрольное значение (Quick Watch) и Окно контрольного значения (Watch Window)
Они отображают значения переменных во время выполнения программы. Контрольные значения, как и пошаговое выполнение программ, — мощный иная румент отладки программ. Для его создания выделите любую переменную или фраг-мент кода и щелкните кнопку Контрольное значение (Quick Watch). На экране появится диалоговое окно Контрольное значение (Quick Watch), в котором ото-бражается имя программы, выделенное выражение и его текущее значение. Значение переменной в режиме пошаговой отладки ( одна из строк программы подсвечена желтым цветом) можно посмотреть просто наведя на ее имя курсор мышки – оно появится во всплывающем окне.
(показать на реальной программе)