Программирование в среде Visual Basic for Applications (1082430), страница 7
Текст из файла (страница 7)
01 ~ ) ) ) ) или формулы =ЕСЛИ(А1>=3;В1*о.оозя ЕСЛИ(В1>=10000;В1"0.02;В1*0.01) 7.2. Функции пользователя с оператором выбора Яе1ес1 Саяе Оператор выбора Яе1ест Саяе удобно использовать, когда в зависимости от значения некоторого выражения, имеющего конечное множество допус(имых значений, необходимо выполнить разные действия. Оператор имеет следующий синтаксис: Бе1есс Саяе ВЫРАЖЕНИЕ Саяе УСЛОВИЕ ВЫБОРА 1 БЛОК ОПЕРАТОРОВ 1 Саяе ~СЛОВИЕ ВЫБОРА и БЛОК ОПЕРАТОРОВ и Саяе Е1яе БЛОК ОПЕРАТОРОВ ПО УМОЛЧАНИЮ Епс( Бе1есд После каждого оператора Саяе может находиться произвольное количество других операторов, и все они будут выполняться, если условие оператора Саяе истинно.
При использовании одного оператора его можно поместить в одну строку с оператором Саяе. 7. Функции пользователя, используемые при расчете комиссионных 51 Саяе-условие может быгь записано в одной из следующих форм: ° Саке КОНСТАНТА 1, КОНСТАНТА 2, ..., КОНСТАНТА и; ° Саке 1к ЗНАК ОТНОШЕНИЯ КОНСТАНТА; ° Саке КОНСТАНТА 1 То КОНСТАНТА 2. Сначала вычисляется значение выражения, стоящего после ключевых слов Яе1ес1 Саяе. Затем выполняется проверка того, удовлетворяет ли ВЫРАЖЕНИЕ одному из Саяе-условий. Если Саяе-условие записано в первой форме, то достаточно, чтобы значение ВЫРАЖЕНИЯ было равно одной из КОНСТАНТ. Если Саяе-условие записано во второй форме, то необходимо, чтобы выполнялось условие отношения между значением ВЫРАЖЕНИЯ и КОНСТАНТОЙ. Если Саяе-условие записано в третьей форме, то должно выполняться соотношение КОНСТАНТА 1 < ВЫРАЖЕНИЕ < КОНСТАНТА 2. Если такое условие найдено, то выполняется БЛОК ОПЕРАТОРОВ 1, который стоит после этого условия.
Затем управление передается оператору, который находится после ключевых слов Епд Ве!ест. Если такое условие не найдено, то выполняется БЛОК ОПЕРАТОРОВ ПО УМОЛЧАНИЮ, который находится после ключевых слов Саке Е!яе. Если значение ВЫРАЖЕНИЯ удовлетворяет сразу нескольким Саве-условиям, то будет выполнено то из них, которое стоит ближе к началу оператора Ве1ес1 Саяе.
В операторе Саяе допустимы составные условия, например: Программирование в среде (г(виа(Вазк~огАрр(каПолв Рассмотрим пример начисления комиссионных на основе оператора выбора Яе1ес1 Саяе 112~). В этом примере размер комиссионных зависит только от объема проданной продукции по правилу, приведенному в табл. 7.1. Таблица 7.1. Правило начисления комиссионных Задачу начисления комиссионных решает следующая функция: Гопссьоп премия (продажа) Бе1есС Саве продажа Сазе 0 То 9999 Премия = 0.1 * продажа Саве 20000 То 39999 Премия = 0.12 * продажа Сазе тз >= 50000 Премия = 0.1б * продажа Епс) Яе1есе Епс( Еппсеьоп Пусть в ячейку А1 введен объем продаж, равный 150 000.
Для того чтобы вычислить комиссионные в ячейке В1, достаточно в эту ячейку ввести формулу =премия (А1) . Тот же результат получается при вводе в ячейку В1 следующей формулы: =ЕСЛИ(И(А1>=0;А1<20000); А1*0.1; ЕСЛИ(и(А1>=20000;А1<50000); А1*0.12; ЕСЛИ(А1>=50000 ;А1*0.16))) 8. Стандартные функции языка Функция Описание Пример АЬз Возвращает модуль аргумента АЬз( — 5) возвращает число 5 81п Возвращает синус аргумента Соз Возвращает косинус аргумента Возвращает экспоненту аргумента Ехр Азс Возвращает код первого символа строки, которая была передана в качестве аргумента Азс(«0123») воз- вращает код нуля, равный 48 СЬгЗ СЬгЗ(9) возвращает символ табуляции, СЬгэ(32) возвращает символ пробела Возвращает символ АЗСП для чис- ла, которое задано в качестве аргу- мента.
Является обратной функ- цией к функции Азс 1пг Возвращает целую часть своего аргумента 1ш133, 33) возвра- щает число 33 Определяет длину строки в симво- лах Ьеп 8ггэ' Представляет числовой аргумент как символьную строку, которую можно использовать в операциях конкатенации (сцепления) строк и других операциях со строками Пример см. ниже Встроенные и внешние функции находятся в шаблонах (для МБ 'тЧогг)) и в дополнительных макросах (для МБ Ехсе1, МБ Ассезз).
Эти функции предназначены для выполнения финансовых, бухгалтерских н других расчетов и обеспечения интерфейса с %1пг)овз. Описание стандартных функций можно найти в библиотеке функций ЧВА. Приведем список наиболее часто используемых функций. Программирование в среде Угвиа! Вав!с уог Арр!!сононз 54 Пример Олисание Функция М145(<Лебеда», 4, 3) возвращает под- строку «браки М143 Возвращает часть строки, заданной первым аргументом. Имеет синтаксис: М!д5(строка, начало, длина),где строка- символьная строка, начало — первая позиция в выделяемой подстроке, длина— длина результирующей подстроки Рассмотрим пример, в котором используется функция огг3.
ртьсе=199 Н1="Учебное пособие поЧВА стоит" Н2="рублей" Нем Яеттпд=Н1+рт1се+Н2 "Учебное пособие поЧВА стоит 199 рУблей" Если применить к данному предложению функцию Ьеп, то будет возвращена длина этой строки, равная 37 (символам). 8.1. Стандартные функции для работы с массивами Используются следующие функции рабочего листа для работы с массивами: Количество чисел в массиве (в русскоязычной версии Ехсе! имеется аналогичная функция СЧЕТ) соцпе Количество элементов массива (СЧЕТЗ) Соцпед Сумма элементов массива (СУММ) Сумма квадратов элементов массива (СУММКВ) Сумма квадратов разностей элементов двух массивов (СУММКВРАЗН) Я цазХгау 2 Сумма разностей квадратов элементов двух массивов (СУММРАЗНКВ) ЯцазХ2ыу2 В результате операции конкатенации будет получено предложение: 8 Стандартные функиии языка 55 Приведем пример функции пользователя ЧВА, вычисляющей коэффициент корреляции ([2]).
Рппстьоп В(х Ая Уаттапт, У Ая Чат1аит) Ая ОопЬ1е П1п и А5 тптедет Оьа ях; яу; яху; ях2: яу2 Ая РопЬ15 и = Арр11сатьоп.Сопит(х) ях = Арр11сатьоп.зшп(х) яу = Арр11сатьоп.Япш(у) яху = Арр11сатьоп.зпиртос(пот(х, у) ях2 = Арр11сатьоп.зшпЯЧ(х) яу2 = Арр11сатьоп.вшпЯЧ(у) К = (П * 5ХУ вЂ” 5Х * яу)/((П * 5Х2 — 5Х 2) * (и * яу2 — яу " 2)) (1/2) Епд Рппстьоп Отметим, что коэффициент корреляции можно вычислить и непосредственно функцией КОРРЕЛ. Коэффициент корреляции двух последовательностей х, и у„ Ы 11, л], вычисляется по формуле п~~) к у~ — 2 М 2 у; Пусть, например, необходимо вычислить коэффициент корреляции двух последовательностей: 1, 2, 3, 4, 5, б и 5, 8, 11, 12, 18, 21, записанных в диапазоны ячеек АЗ:А8 и ВЗ:В8 соответственно. Результат необходимо поместить в ячейку С1.
Для этого достаточно в ячейку С1 ввести формулу =й(АЗ:А8;ВЗ:В8) . Тот же результат можно получить, если ввести в ячейку С1 следующую формулу: = (СЧЕТ (АЗ: АВ) *СУММПРОИЗВ (АЗ: АВ; ВЗ: ВВ)— — СУММ (АЗ: АВ) *СУММ (ВЗ: В В ) ) / / ( (СЧЕТ (АЗ: АВ) *СУММКВ (АЗ: АВ) -СУММ (АЗ: АВ) 2) а * (СЧЕТ (АЗ ° АВ) *СУММКВ (ВЗ: ВВ) -СУММ (ВЗ: ВВ) "2) )" (1/2) Программирование в среде Мина! Воя(с1от А ррйсаноня 8.2. Стандартные функции для работы с матрицами Используются следующие функции рабочего листа для работы сматрицами: При этом в ячейках рабочего листа приложения Мя Ехсе) и в коде программы ЧВА можно использовать как русский, так и английский вариант названия функции.
Приведем пример функции пользователя УВА, решающей систему линейных уравнений АХ = В, где А — матрица коэффициентов,  — столбец свободных членов, Х вЂ” столбец неизвестных. Решение системы может быть найдено как Х=А В где А ' — обратная матрица. Тогда функция пользователя имеет вид ((2Д: Гппстьоп Бо1пттоп(А Ая Чаттапт, В Ая Чатьапт) Ая Чатьапт Яо1пттоп=Арр11саттоп.ММп1т(Арр1тсатьоп.Мьпчетяе(А), В) Епс) Рппст1оп Рассмотрим пример функции пользователя ЧВА, вычисляющей квадратичную форму х = Х'АХ, где А — матрица коэффициентов, Х вЂ” столбец неизвестных. Гппст1оп Бниате Готт(А Ая Чаттапт, З Ая Чаттапт) Ая Чаттапт Яс(пате Рота = Арр11сатьоп.)апи1т (Арр11сат1оп.инп1т(Арр11сатьоп.
ттапярояе(Б), А), З) Епс) Рипстьоп Отметим, что функция Во!пйоп возращает вектор Х, а функция В((паге Ропп — число. 9. Работа с объектами в МЯ Ехсе1 9.1. Свойства и методы объектов Как уже было отмечено ранее одним из основных понятий ЧВА является объеюл. В ЧВА имеется более 100 встроенных объектов (рабочие книги, рабочие листы, рабочие ячейки, формы, элементы управления, диалоги и т. д.). Объектом можно управлять с помощью программы на языке ЧВА.
Каждый объект обладает некоторыми характеристиками, или свойствами. Например, диалог может быть видимым или невидимым в данный момент на экране. Можно узнать текущее состояние диалога с помощью свойства Ч1яЫе. Шрифт и его тип, размер, цвет и т. д. также определяют различные свойства объекта, например содержимого ячейки. Изменяя свойства, можно менять характеристики объекта. Таким образом, свойство представляет собой атрибут объекта, определяющий его характеристики, такие, как размер, цвет, положение на экране и состояние объекта, например доступность или видимость. Синтаксис применения метода: Объект.
Свойство Объект содержит также список методов, которые к нему могут быть применены. Например, показать диалог (форму) на экране или убрать его можно с помощью методов Боои и НЫе соответственно. Таким образом,меиюд представляет собой действие, выполняемое над объектом.
Синтаксис применения метода: Объект. Метод Таким образом, объекти†это программный элемент, который имеет свое отображение на экране, содержит некоторые переменные, определяющие его свойства, и некоторые методы для управления объектом. Наиболее часто в ЧВА используются следующие встроенные объекты: 58 Програл|мировое ие в среде г|)виа! Вав|с тес Аррйсаповв Большинство объектов принадлежит к группе подобных объектов. Эти группы называются классами. Например, все рабочие листы рабочей книги образуют класс, называемый %огиз!)ее!я. Классы используются одним из двух способов: либо какое-либо действие совершается над всеми объектами класса, !например, удалить — Ре)е!е), либо со ссылкой на класс выбирается конкретный объект для работы с ним.