Выполнение программы по шагам 4 Кнопка Точка останова (Toggle Breakpoint) 5

Вид материалаЛекция

Содержание


Сравнительные характеристики современных языков программирования (ЯП)
1. По принципу трансляции
2. По способу программирования –
3. По уровню абстракции конструкций –
4. По принципу выполнения программы
Простота написания и отладки программы
Максимальная доступность
Легкая совместимость с Excel
Совмещение процедурного и объектно-ориентированного программирования.
Встроенный в приложения Windows язык программирования VBA
Как начать работу в VBA?
Command Button
Окно проекта
Окно свойств
Окно программы
Окно UserForm (не показано)
Окно для просмотра объектов (не показано)
Окна отладки, контрольного значения и локальных переменных (не показаны)
Область видимости подпрограмм и функций
Public используется в основном для того, чтобы яснее отделить их от программ уровня модуля. Если Вы опустите слово Public
...
Полное содержание
Подобный материал:

А.А.Хамухин. Информатика для направления «Нефтегазовое дело». Лекция 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:
  1. Простота написания и отладки программы. Свойство, характерное для ЯП-интерпретаторов, к которым относится VBA. Например, не требуется предварительное описание типов переменных, в операциях типы преобразуются автоматически, не вызывая остановки программы из-за неправильно примененных типов данных. Это очень важно для того, чтобы инженер прикладник как можно меньше отвлекался на побочные проблемы (программирование), и как можно больше оставлял свое время на свои профессиональные проблемы.
  2. Максимальная доступность. VBA встроен в приложения MS Office, который имеется практически на всех ПК и не требует какого-либо дополнительного программного обеспечения, кроме операционной системыWindows.
  3. Легкая совместимость с Excel. Большинство инженерных расчетов, оперирующих с таблицами данных, выполняется в среде Excel, особенно в нефтегазовой отрасли. Поэтому, встроенный в Excel VBA позволяет легко расширить расчетные возможности Excel, например, организовать циклические вычисления, которые напрямую в excel невозможны. VBA встроен и в MS Word, который используется для составления отчетов и в СУБД Access.
  4. Совмещение процедурного и объектно-ориентированного программирования. VBA, как наследник классического бейсика, сохранил все возможности написания простых программ, использующих только процедуры и функции



Встроенный в приложения Windows язык программирования VBA


Visual Basic for Applications (VBA) - развитая система визуального объектно-ориентированного программирования для создания прикладных программ в среде Microsoft Office.

С помощью VBA можно создавать объекты управления графического интерфейса пользователя, задавать и изменять свойства объектов, подключать к ним соответствующий программный код. Методика программирования с использованием средств VBA сводится к следующему:
  • создание объектов управления и контроля (диалоговые окна, пиктограммы, меню);
  • разработка процедур, используемых при вызове объектов.

Как начать работу в VBA?


(показать)
  1. Создаются макросы в меню Сервис - Макрос - Макросы (Alt-F8). Появится табличка "макросы". В поле имя введите "MY", а место нахождения в поле "Находится" выберите - "Это книга". Кнопка "Создать" станет активной нажмите её. Появится редактор VBA введите код программы:

Sub My()

MsgBox “Hello!”

End Sub
  1. Вызывается редактор VBA в меню Сервис - Макрос – Редактор Visual Basic. Чтобы появилось окно для набора программы выбрать меню Вставка- Модуль
  2. Найти командную кнопку ( 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), в котором ото-бражается имя программы, выделенное выражение и его текущее значение. Значение переменной в режиме пошаговой отладки ( одна из строк программы подсвечена желтым цветом) можно посмотреть просто наведя на ее имя курсор мышки – оно появится во всплывающем окне.

(показать на реальной программе)