Алгоритм. Требования, предъявляемые к алгоритму, страница 2

Структура  процедуры

объявление  процедуры

 
Sub <имя процедуры>  (аргументы)

……………………

   тело  процедуры

 
Операторы VBA

……………………

завершение процедуры

 
End  Sub

ПРИМЕЧАНИЕ: Если перед Sub отсутствует ключевое слово, определяющее  область  видимости  процедуры, то по – умолчанию  она  определяется  как  Public.

Имя процедуры удовлетворяет стандартным правилам именования переменных.

Аргументы  – список параметров, значения которых передаются в процедуру или  возвращаются из процедуры при ее  вызове  (может  отсутствовать).

Средство  VBA  для  вывода  информации

Вывод (передача  пользователю) результатов работы программы и  других  сообщений  осуществляется  через  диалоговое  окно  сообщений.

Для организации вывода информации используется встроенная  функция  MsgBox.

Рассмотрим варианты ее  применения.

1.y = Sqr(16)

MsgBox  y

2. S = 99

MsgBox (“S= ”  &  S)   


это знак  конкатенации – амперсанд;

применяется  для  объединения нескольких  строк  в одну

 


3. a = 5: b = 101

MsgBox ("a=" & a & "   " & "b=" & b)


4. MsgBox ("a=" &  a  &  Chr(13)  & "b=" &  b)


с помощью этой  функции  вводится  символ  перехода

 на новую  строку  (преобразует число в  символ)

Работа с  объектами  Excel

Объект – это базовая категория в объектно-ориентированном прог-раммировании.

Объектная модель Excel представляет собой иерархию объектов, подчиненных одному объекту  Application, который соответствует самому приложению Excel. Объектами Excel являются рабочие книги, рабочие листы,  диаграммы,  диапазоны  ячеек,  ячейки  и  т. д.

VBA может программно управлять любым из этих объектов.

Каждый  объект  обладает  набором  свойств,  методов  и  событий.

Свойство – это характеристика или параметр объекта.

Метод – это действие, которое может выполнять объект.

Событие – это действие, на которое объект реагирует автоматически.

Управлять объектом  в VBAможно 3 путями:

*  изменяя  свойства  объекта;

*  активизируя  метод, связанный  с объектом;

*  определяя  процедуру, запуск  которой  произойдет  как  отклик на событие.

Вывод  информации  в  ячейку  Excel

Ячейка  как объект Excel  в VBA-программе обозначается  Cells(i, j), где  i – номер строки,  j– номер столбца электронной таблицы.

Подпись: Значение  Y  будет выведено на активный лист рабочей книги  Excel  в ячейку  B3


Y = 0.01

Cells(3, 2) = Y

Подпись: Переменной  B  будет присвоено значение,
которое хранится в ячейке  С5
(т. е. содержимое  ячейки  С5)

Считывание  информации  из  ячейки  Excel

B = Cells(5, 3)

Средство  VBA  для  ввода  информации

Ввод  информации от пользователя осуществляется через диалоговое окно  ввода. Реализуется  с помощью встроенной  функции  InputBox.

Dim x As Single


x = Val (InputBox ("Введите  x"))

Функция  InputBox  возвращает последовательность символов, введенную  в поле  ввода (15) как  данные типа  String (строковый). Встроенная функция  Val() преобразует строковое значение из поля  ввода  в  числовое.

Линейные  вычислительные  процессы

Линейный алгоритм характеризуется строгой последовательностью реализации блоков в порядке их  расположения в схеме – сверху – вниз. Условные блоки  отсутствуют. Каждый блок  выполняется  однократно.

 Пример 1        Вычислить значение функции   

        при   k = 33,5         x = 17

1. Составим  алгоритм  решения  задачи.

2. В окне  редактора  кода  введем  программный  код:

Option  Explicit

Sub  Линейный_процесс ()

Dim  k As Single, x As Single, y As Single ‘объявление переменных

k = 3.5

x = Val (InputBox ("Введите значение  x"))

y = k * Exp(Sin(x))

MsgBox "y=" &  y  ‘ вывод  результата  в диалоговое  окно

End  Sub

          Команда Option Explicit обязывает объявлять все переменные в данной  программе. Может размещаться только в разделе объявлений модуля.

Комментарии –пояснения, следуют за знаком «апостроф» . Игнорируются  компилятором.

Запуск  программы  на  выполнение

из редактора  Visual  Basic (3 способа)

1. Кнопка    на панели   инструментов стандартной

2.В меню Run

Run  Sub/UserForm

3. Клавиша  F5

Разветвляющиеся  вычислительные  процессы

Разветвляющиеся алгоритмы  предполагают наличие хотя  бы  одного  условного блока, который позволяет реализовать два варианта (пути) вычислений, в зависимости от  выполнения  заданного условия.

Для реализации разветвлений в программе в VBA есть оператор условного перехода и оператор  выбора.

Оператор  условного  перехода

имеет несколько разновидностей.

1.  Однострочный

If  [условие]  Then  [оператор]

Условие (логическое выражение) реализуется с помощью операций  отношения  и  логических  операций.

Операции  отношения

=   равно  >  больше

< > не равно  <=  меньше или равно

  меньше   >=     больше или равно

ПРИМЕЧАНИЕ:  Сравнивать  можно числовые и  строковые значения. Результатом сравнения  может  быть True (истина)  либо  False (ложь).

If   k>9  Then  MsgBox “Тест  завершен”

Если условие k>9 принимает значение True(истина), то будет выполняется  оператор  вывода сообщения  MsgBox.

Еслиусловие принимает значение False (ложь), тоуправление передается  на следующую программную строку.

2. Блочный   If  [условие]  Then 

 [операторы]

 End  If

3. If  [условие]  Then

[операторы, если  условие = True]

Передача  управления  на программную строку, следующую за  EndIf

 
Else

[операторы, если  условие = False]

End  If

……………….

 Пример 2        Вычислить  значение функции

 ,   где   a = 3,9

1. Составим  алгоритм  решения  задачи.

Блок  2 – присваивается значение переменной  а.

Блок  3 – вводится  значение  аргумента  x.

Блок  4 – анализирует  значение аргумента  x: при  истинности  условия вычислительный  процесс  идет  по  ветви 1 (выход «да»),еслиусловие ложно реализуется  ветвь 2.

2.  В окне редактора  кода  введем  программный  код:

Sub Простое_ветвление ()

       Dim  a As Single, x As Single, y As Single

       a = 3.9

       x = Val(InputBox ("Ввод  x")) ‘ввод значения аргумента x

       If   x < a  Then

             y = Exp(a * x) ‘ вычисление значения функции  y,  когда