Программирование в среде Visual Basic for Applications, страница 6
Описание файла
DJVU-файл из архива "Программирование в среде Visual Basic for Applications", который расположен в категории "". Всё это находится в предмете "теория вероятностей и математическая статистика" из 4 семестр, которые можно найти в файловом архиве РТУ МИРЭА. Не смотря на прямую связь этого архива с РТУ МИРЭА, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "теория вероятности" в общих файлах.
Просмотр DJVU-файла онлайн
Распознанный текст из DJVU-файла, 6 - страница
Функция 1прп1Вох осуществляет ввод значений с помощью окна ввода. Синтаксис: 1прпГВох (текстовая строка, заголовок), где ° текстовая строка — это обязательный аргумент; он задает в окне информационное сообщение, обычно поясняющее смысл вводимой величины; ° заголовок — задает заголовок окна; по умолчанию используется заголовок Ввод. Более подробная форма записи функции МяиВох имеет вид: Мяд(ргомрг, [Впссопя Лв ЧЬМвдВохягу1е=ЧЬОКОп1у], ['Т1Г1е], [Не1рк11е], [Сопсехс]) Ав ЧЬМядвохиевп1Г Более подробная форма записи функции 1прп1Вох имеет вид: Кнопки ОК и Отмена Кнопки Да и Нет Кнопки Да, Нет и Отмена ЧЬОКСапе1 ЧЬуеяно ЧЬУеяноСапсе1 40 Программирование в среде Уииа1 Вае(с1ог Арр!1саионз 1прпеиох(Рсоп~ре, [тхе1е], (Ретап1С], [кроя], [Уров], (Не1рг11е], (Сопеехо]) Ав Яесхпд При этом ° Ргопзр1 — сообщение, которое выводится из диалогового окна; ° ТИе — заголовок диалогового окна; ° Вп11опя — кнопки, которые выводятся в диалоговом окне; ° Хроя, Уров — координаты верхнего левого угла диалогового окна; ° Ренхап]1 — символ, который выводится в поле ввода (для функции 1прп1Вох), например «пробел»; ° Не! рИ]е — файл-справка; ° Соп1ех1 — описание.
В табл. 4.3 приведены значения, возвращаемые функцией МвнВох. Таблица 4.3. Значения, возвращаемые функцией МВОВОХ Рассмотрим простейшую процедуру, в которой используются функции МянВох и 1прп1Вох. ьпЬ Ма1п() сопвс и=5 Р]зя 1 Ав 1пееоес Р1т С Ав 1поедес Р)ля Р Ав 1поедес 4. Простейшие функции и процедуры. Типы переменнык С=тпрпввох("Введите С", "Ввод данных", " ") Р=О Рот 1=1 то И Р=РеС*1 Мехв 1 Мядвох("Результат равен Р="аР) Впд 5пЬ 41 Диалоговое окно, заданное функцией 1прптВох, имеет заголовок «Ввод данных», а в самом диалоговом окне содержится приглашение «Введите С».
В окне вывода, заданном функцией МяяВох„выводится сообщение «Результат равен 1>=30», если С=2. Отметим, что в приложении ЧВА многие инструкции могут восприниматься и как функции и как операторы. Например, в записи функции МяйВох можно опустить круглые скобки и тогда такая запись будет восприниматься как оператор. Сказанное выше справедливо для МВВВох, 1прп1Вох, Ореп, Ргшя, СЫе и некоторых других конструкций. Если есть необходимость вывода результата вычислений не в ячейки рабочей книги приложения МЯ Ехсе), а в активный документ приложения МБ '>Чог(), то можно использовать оператор (метод) ТуреТехт.
В рассмотренной ниже процедуре результат вычисления элементов матрицы О выводится в документ приложения МБ ЪЧог(). Ввод данных осуществляется с помощью функции 1прп1Вох. 5пЬ Макро() 01а> О(2,2) Ая РопЬ1е Ртп> С(2) Ая Родите Рьв> 1 Ая 1пведет Р1а> Ю Ая тппедес Рьв> 5 Ая Ввтьпд Рос 1=0 То 2 Ввод данных 5="ВВЕднтЕ С (зязССЗ(1) а"1 " С(1) =1прпСВох (5, "Ввод массива", " ") Иехв 1 5="Массив 0" Ве1есвьоп.туретехв 5 вывод текста "Массив 6" 42 Программарованое в среде Мииа! Ваяс1ос Аррисаиолв 5е1есстоп.ТуреРагадгарЬ ' переход к следующей строке Рог 1=0 то 2 вычисление значений массива Рог 5=С То 2 11 (1<=Ю) ТЬеп 0(1,о)=С(1)*С(1) Е1ве О(1, У) =С (1) вывод нового элемента в активный документ зе1есс1оп.ТуреТехо 0(1,о)аСЬг(9) нехс з 5е1есс1оп.ТурерагачгарЬ ' переход к следующей строке Иехп 1 Епд зиЬ Отметим, что функция Снг$(9) возвращает символ табуляции.
В активный документ выводится заголовок «Массив О», затем осуществляется переход на следующую строку. В каждой строке выводятся три числа, разделенные символом табуляции. 5. Функции пользователя с операторами условного перехода 1Г-Т11еп и И-Т11еп-Е1яе Рассмотрим пример функции пользователя ([2)) йппсс1оп о(у) 11 у <= О тлеп 6 =(1 + у " 2)/(1 1 у " 4) " (1/2) Е1ее О = 2 * у + Я1п(у) " 2/(2 + У) Еп<) Еппспьоп вычисляющей следующую функцию с двумя условиями: ) + 2 2+у ' Напомним, что комбинация символов «пробел — знак подчеркивания» (« ») в конце строки обозначает, что следующая строка является продолжением предыдущей.
Пусть в ячейку А1 записано число 0.2 и вам нужно вычислить в ячейке В1 значение функции С при у = 0,2. Для этого достаточно в ячейку В1 ввести формулу =0(А1). Тот же результат можно получить, если ввести в ячейку В1 следующую формулу: =ЕСЛИ (А1<=0; (1+А1 "2) / (1+А1 "4) " (1/2); 2* *А1+Э1Н (А1) "2/ (2~.А1) ) В функции С использовался условный оператор 1Г-ТпепЕЬе, обеспечивающий передачу управления в программе в зависимости от выполнения условия. Этот оператор имеет следующий синтаксис: 11 УСЛОВИЕ тьеп ОПЕГАтОГ 1 Е1ее ОПЕЕАтОГ 2 Программирование в среде Ч!зиа! Вал!суог Арр!гсайопз 44 Таблица 5.1. Логические отношения Операция Выражение Результат Название Тгце, если А равно В Равно А=В Тгце, если А не равно В А<>В Не равно Тгце, если А больше В Тгие, если А меньше В Больше Меньше А>В А<В Тгце, если А больше или равно В Больше или равно А>=В Тгце, если А меньше или равно В А<=В Меньше или равно Сложные условия образуются из простых путем применения логических операций и круглых скобок.
Список логических операций приведен в табл. 5.2. Таблица 5.2. Логические операции В операторе условия ОПЕРАТОР 1 выполняется, если УСЛОВИЕ истинно, в противном случае выполняется ОПЕРАТОР 2. УСЛОВИŠ— это выражение логического типа. Результат выражения всегда имеет булев тип. Выражение может быть простым и сложным. При записи простых условий могут использоваться все возможные операции отношения, указанные в табл. 5.1. 5. Функции пользователя с операторами условного перехода 45 В условном операторе допустимо использование блока операторов вместо любого из операторов.
В этом случае условный оператор имеет вид: 11 УСЛОВИЕ Тиеп БЛОК ОПЕРАТОРОВ 1 Е1ве БЛОК ОПЕРАТОРОВ 2 Епд 11 Ветвь Е!Ве в условном операторе является необязательной. Таким образом, возможен следующий синтаксис оператора условия: 11 УСЛОВИЕ Тпеп ОПЕРАТОР или 11 УСЛОВИК тиеп БЛОК ОПЕРАТОРОВ Епд зк Отметим, что в операторе условия после Тпеп можно разместить несколько операторов для того, чтобы все они выполнялись, если условие истинно. В этом случае они должны располагаться в одну строчку и быть разделены двоеточием, например: 11 А > 5 Тиеп А = А е 5 : В = В е А " 2 : С = С е В В условном операторе может проверяться несколько условий. В этом случае условный оператор имеет вид: 11 УСЛОВИК 1 тиеп БЛОК ОПЕРАТОРОВ 1 К1ветх УСЛОВИК 2 тпеп БЛОК ОПЕРАТОРОВ 2 Ктвет Е УСЛОВИК З тиеп Е1ве БЛОК ОПЕРАТОРОВ Епд 11 В данном условном операторе выполняется БЛОК ОПЕРАТОРОВ 1, если истинно УСЛОВИЕ 1, в противном случае выполняется БЛОК ОПЕРАТОРОВ.
46 Программирование в среде Мииа1 Вав1е1ог Арр11еаиооз Рассмотрим использование условного оператора и оператора ЕЕИ ЕппсИоп на примере функции пользователя, вычисляющей следующую формулу: Тогда функция пользователя имеет вид: Еппссьоп 1пиехя Еппспьсп(х) 11 х = 0 тпеп Ехзв Еппсптоп Е1яе 1пиехя йппспьоп = 1/х Епд Еппспьсп 6. Функции пользователя с несколькими операторами условного перехода 1+Я ,(< — 1, 41+(+г' ' 1+ соз4(() 21п(1+(')+,(е ( — 1,0)„ 2+( 3 (1е()' ()О. Еипссьоп х(с] 1х С <= -1 ТЬеп — (1 + АЬя(с])/(1 + С + 'с " 2) 15 С >-1 Апо С < О ТЬеп х = 2 * Арр11сасьоп.Ьп(1 + С " 2] е (1 е Соя(С) " 4)/(2 + С) тт 'с >= О ТЬеп х = (1 + о) " (3/5) Епс Еппссьоп (1/3) Функция Ьп не является внутренней функцией 3/ВА, поэтому для ее вызова нужно пользоваться конструкцией АррИса11оп.Ьп.
Существует также другой способ вычисления функции ж Еппссьоп х(с) тт С <= -1 ТЬеп х = (1 + АЬя(С))/(1 + С + О " 2) " (1/3) Е1яе15 С < 0 ТЬеп х= 2 * Арр11саоьоп.Ьп(1 + С 2) (1 + соя(с) " 4)/(2 - ь) Е1яе х = (1 + С) (3/5) Епс) 15 Епс] Еипсо1оп Рассмотрим пример функции пользователя 1[21), вычисляющей значение следующей функции с тремя условиями. Функцию к можно вычислить с помощью следующей функции пользователя: 48 Программирование в среде ('(виа( Ваас/ог Арр(/саиопв Пусть в ячейку А! записано число 0.2, и требуется вычислить в ячейке В1 значение функции е при г = 0,2. Для этого достаточно в ячейку В1 ввести формулу си (А1) . Тот же результат можно получить, если ввести в ячейку В1 следующую формулу: =ЕСЛИ (А1<=-1; (1+АВБ (А1) ) / (1+А1+А1 "2) " (1/3); ЕСЛИ(А1<0) 2*ЬН (1+А1" 2) + (1+СОЯ (А1) "4) / (2+А1); (1+А1) " (3/5) ) ) 7.
Функции пользователя, применяемые при расчете комиссионных 7.1. Функции пользователя с оператором условного перехода ф-'Тйеп Рассмотрим пример функции пользователя ЧВА 1121), вычисляющей комиссионные, начисляемые по следующему правилу: ° Если продукции продано не меньше чем на 10 000 руб., то комиссионные составляют 2 'А от стоимости реализованной продукции. ° Если продукции продано меньше чем на 10 000 руб., то комиссионные составляют 1;4 от стоимости реализованной продукции. ° Если стаж работы в фирме не меньше 3 лет, то производится доплата в размере 0,5 вАв от стоимости реализованной продукции. Первый вариант функции пользователя имеет вид: Гппсвьоп Премия (стаж, продажа) 1Г стаж >= 3 Апс( продажа >=10000 Треп Премия=0.025*продажа 1Г стаж < 3 Апб продажа >=10000 Тпеп Премия=0.02*продажа 15 стаж >= 3 Апд продажа <10000 ТПеп Премия=0.015*продажа 11 стаж < 3 Апб продажа <10000 ТАеп Премия=0.01*продажа Епс) Еипссьоп Второй вариант функции пользователя имеет вид: Гппсвгоп Премия (стаж Ав 1пседев, продажа Ав 1пеедет) ав 1пседет Охи вАде, вяа1е Ав 1пведет 11 стаж >= 3 Тьеп влде = 0.005 * продажа 11 продажа >= 10000 ТАеп вза1е = 0.02 * продажа Програмлвировииие в среде ЧЬиа( Вав(е )ое Арр((еаиоав Е1яе яза1е = 0.01 * продажа Епд 1Е Премия = ялсе ж яяа1е Епд Рппсд1оп Пусть в ячейку А! введена величина стажа работы в фирме, равная 15, а в ячейку В1 — обьем реализованной продукции, равный 50 000.
Для того чтобы вычислить комиссионные в ячейке С1, достаточно в эту ячейку ввести формулу:-П)демин (А1)В1). Тот же результат получается при вводе в ячейку С1 следующей формулы: =ЕСЛИ (И (А1>=3; В1>=1 0000): В1*0. 023, ЕСЛИ (И (А1<3; В1>=10000); В1*0. 02; ЕСЛИ (И (А1>=3; В1<ТОООО); В1*О. 01Б; ЕСЛИ (И (А1<3; В1<1 0000); В1*0.