Алгоритм. Требования, предъявляемые к алгоритму, страница 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,  когда