Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб 3 создание презентаций-тестов.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.09 Mб
Скачать

Использование встроенных функций Visual Basic.

Рассмотренные выше операции дают возможность осуществлять основные математические действия, более сложные вычисления производятся с помощью встроенных функций. Visual Basic оперирует этими функциями подобно Excel, с тем отличием , что они всегда возвращают единичное значение. Функции Excel могут применяться к целым массивам чисел и возвращать массивы в качестве результатов. Чтобы обработать массив значений с помощью функции Visual Basic, нужно применить эту функцию к каждому элементу массива в отдельности.

Математические функции

Функция

Описание

Atn

Возвращает арктангенс числа

Sin

Возвращает синус угла в радианах

Cos

Возвращает косинус угла в радианах

Tan

Возвращает тангенс угла в радианах

Exp

Возвращает е^х

Log

Возвращает натуральный логарифм числа (основание е=2.71828…)

Sqr

Возвращает квадратный корень числа

Randomize

Инициирует генератор случайных чисел

Rnd

Возвращает случайное число

Abs

Возвращает абсолютную величину числа

Sgn

Возвращает знак числа

Fix

Округляет число отсечением дробной части

Int

Округляет число до ближайшего меньшего целого

Математические функции, приведенные в таблице, обычно требуют в качестве аргумента единичное значение, некоторым образом его трансформируют и возвращают также одно число. Тригонометрические функции Sin ( ), Cos ( ), Tan ( ) применяются к углам в радианах и преобразовывают их в соответствующую тригонометрическую величину.

Строковые функции:

Функция

Описание

StrComp

Сравнивает две строки

LCase

Преобразовывает строку в нижний регистр

UCase

Преобразовывает строку в верхний регистр

Space

Создает строку пробелов

String

Создает строку символов

Len

Определяет длину строки

Instr

Ищет подстроку

Lset

Выравнивает строку по левому краю

Rset

Выравнивает строку по правому краю

Str

Преобразовывает число в строку

Val

Преобразовывает строку в число

Пример:

В= «ЯнвФевМарАпрМайИюнИюлАвгСенОктНояДек»

Lсase, после преобразований:

B = «янвфевмарапрмайиюниюлавгсеноктноядек»

Uсase, после преобразований:

B = «янвфевмарапрмайиюниюлавгсеноктноядек»

Len (B), после вычислений B = 36

instr (B,"Июл"), после выполнения функции: B = 19

Оператор присваивания - это основа всех вычислений в VBA, так как любая рассчитанная величина должна стать переменной, чтобы ее можно было хранить. Знак «=» является оператором присваивания, который предписывает выполнить выражение, заданное в его правой части, и присвоить результат переменной, идентификатор которой расположен в левой части.

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

Примеры операторов присваивания:

Filename = " c:\vba\exampl.xls"

Sales = Units * Prise

Profit = Sales - Cost

Coords (3,2) = 19.37

Selection.Values = 25

ActiveWindow . ScrollRow = 1

Первые три оператора присваивают значениям переменным, четвертый присваивает значение элементу массива, а все остальные присваивают значения свойствам.

Таким способом нельзя присвоить значения только объектам - они требуют специального оператора присваивания Set.

Исключением является оператор присваивания « : = ». В отличие от ранее описанного оператора присваивания «=», он применяется только по отношению к параметрам процедуры.

Sub Assistant (a, b)

c = a + b

Msgbox Cstr (c)

End Sub

Sub Main( )

Assistant a:= 1, b:= 3

End Sub

В данном примере при вызове процедуры Assistant передача параметров осуществляется присвоением значений именам параметров с помощью оператора присваивания «:=». При выполнении данной процедуры переменной С присваивается значение суммы переданных параметров с использованием оператора присваивания «=».

Условный оператор If-Then-else обеспечивает передачу управления в программе в зависимости от выполнения условия.

Синтаксис:

If <условие> Then <блок_операторов_1>

Else <блок_операторов_2>

End If

В условном операторе допустимо использование как блока операторов, так и любого из операторов. В операторе условия Оператор_1 или Блок_операторов_1 выполняется если <условие> истинно, в противном случае выполняется Оператор_2 или Блок_операторов_2.

Условие - это выражение логического типа. Результат выражения всегда имеет булевский тип. Выражение может быть простым и сложным. При записи простых условий могут использоваться все возможные операции отношения, указанные в таблице 2.

Таблица 1. Логическое отношение.

Операция

Название

Выражение

Результат

=

равно

А = В

True, если А равно В

<>

не равно

A<>B

True, если А не равно В

>

больше

A>B

True, если А больше В

<

меньше

A<B

True, если А меньше В

>=

больше или равно

A>=B

True, если А больше или равно В

<=

меньше или равно

A<=B

True, если А меньше или равно В

Сложные условия образуются из простых путем применения логических операций и круглых скобок. Список логических операций приведен в таблице 2.

Ветвь Else в условном операторе является необязательной. Таким образом, возможен следующий синтаксис оператора условия:

If <условие> Then <оператор или блок_операторов>

End If

Заметим, что в операторе условия после Then можно разместить блок операторов, для того, чтобы все они выполнялись, если условие истинно. В этом случае они должны располагаться в одну строчку и быть разделены двоеточием. Например,

If A>10 Then A=A+1 : B =B+A : C=C+B

End If

Рассмотрим пример функции пользователя с использованием оператора условного перехода If-Then-Else.

Function G(y)

If y<=0 Then G = (1+y^2)/(1+y^4)^(1/2)_

Else G = 2*y +sin (y)^2/(2+y)

End If

End Function

Заметим, что знак подчеркивания «_» в конце строки обозначает, что следующая строка является продолжением предыдущей.

В условном операторе может проверяться несколько условий. В этом случае условный оператор имеет вид:

If <условие_1> Then <Блок_операторов_1>

Else If <условие_2> Then <блок_операторов_2>

Else If <условие_3> Then ...

else <блок_операторов>

End If

В данном условном операторе выполняется блок_операторов_i, если истинно условие_i, в противном случае выполняется блок_операторов.

Оператор выбора Select Case удобно использовать, когда одна величина участвует во многих сравнениях для выбора одного из блоков кода.

Синтаксис:

Select Case <тестируемое _выражение>

Case <условие_выбора_1>

<блок_операторов_1>

... ... ...

Case <условие_выбора_n>

<блок_операторов_n>

Case Else

<блок_операторов_n>

End Select

После каждого оператора Case может находиться произвольное количество других операторов, и все они будут выполняться, если условие оператора Case истинно. При использовании одного оператора его можно поместить а одну строку с операторами Case.

Так же как и в блочной структуре IF, можно использовать специальный оператор Case, определяющий любые величины, которые не совпадают ни с одним из других операторов Case. Для этого условие Case Else включается последним блоком перед оператором End Select. Все величины, не совпавшие ни с одним оператором Case, совпадут с оператором Case Else.

Is является ключевым словом VBA, обозначающим тестируемое выражение в операторе Case. В операторе Case допустимы составные условия, например

Case 4,7 to 8, Is >=16

Проверяет, принадлежит ли тестируемое выражение отрезку от 7 до 8 или равняется значению 4, или оно не меньше, чем 16.

Для сокращения размера кода, который необходимо написать для решения задачи используют повторяемые структуры известные под общим названием как циклы. Циклы бывают трёх типов:

1.Вычисляемые