Пользовательский интерфейс VBA 4 страница
Таблица 16
№ В | Варианты индивидуальных заданий |
Разработать процедуру пользователя, вычисляющую значение функции | |
a=2.85, b=1.56, x=0.63 | |
a=12.5, b=0.03, x=5.256 | |
a=8.7, b=-5.2, x=8.1 |
Продолжение таблицы 16
x=1.204, a=0.8 | |
a=3.08, x=-0.004 | |
a=16.01, b=18.1, x=5.93 |
Продолжение таблицы 16
a=7.02, b=16.02, x=1.085 | |
x=2.4, a=2.65, b=4.24, c=1.83 | |
a=0.36, b=1.18, x=1.16 | |
x=0.12, a=0.111, b=0.348 | |
Продолжение таблицы 16
x=-0.37 | |
Таблица 17
№ В | Варианты индивидуальных заданий | ||||||||||||||||
Разработать экономическую функцию пользователя | |||||||||||||||||
Вычислить надбавку к зарплате сотрудника предприятия в зависимости от стажа его работы. Значения рассчитать по формулам: Стаж работы = (Текущая дата – Дата поступления на работу)/365. Результат округлить до целого. Значение зарплаты подобрать самостоятельно. Надбавка = | |||||||||||||||||
Вычислить годовой подоходный налог с физических лиц.
Принята следующая налоговая сетка:
| |||||||||||||||||
Менеджеру по продажам необходимо разработать функцию, позволяющую рассчитывать комиссионные. Процент комиссионных зависит от объема проданного товара и начисляется по следующему правилу, представленному в таблице
| |||||||||||||||||
Вычислить сдельную зарплату работника, а также сумму налога и сумму на руки. Значения рассчитать по формулам:
<зарплата> = <обработано деталей> * <стоимость работы> - <деталей брака>*<стоимость детали>.
Налог исчисляется в зависимости от зарплаты: если она выше 5000 р. – налог составляет 20%, если нет – 13%.
|
Продолжение таблицы 17
Вычислить эффект мультипликатора (M) по формуле M=Q/D, где Q - объем производства; D - национальный доход. В зависимости от результата вывести на экран следующие сообщения: для получения высоких результатов необходимо повысить объёмы производства (M=1); необходимо снизить объём национального дохода (M<1); вы добились успехов: эффект мультипликатора работает (M>1). | |||||||||||||
Вычислить зарплату с учетом увеличивающегося подоходного налога и числа детей.
Значения рассчитать по формулам:
<сумма обложения>=<доход>-<детей>*<миним.зарплата>
<налог>=<процент налога>*<сумма обложения>.
<сумма на руки> = <сумма обложения> – <налог>
Процентная ставка налога
| |||||||||||||
Составить программу, позволяющую произвести расчет зарплаты медсестры кардиологического отделения с окладом 1 категории по единой тарифной сетке, при условии, что если количество отработанных часов (t) равно 160, то z=1345.5*160-(s+k-75900)*12%-1%-1%-5.4%, иначе z=1345.5*t-(s+k-75900)*12%-1%, где z - зарплата; s - оклад; к - уральский коэффициент. | |||||||||||||
Банковский процент зависит от величины вклада следующим образом:
|
Продолжение таблицы 17
С помощью мультипликатора Кейнса рассчитать величину инвестиций в данный период. k=1/(1-mc), если mc=1, то k=1/ms I=K/MS, где I - инвестиции; ms - склонность к сбережениям: ms = (s2-s1)/(y2-y1), (s2-s1) - изменение величины сбережений; y2-y1 - изменение величины дохода; k - мультипликатор Кейнса: k =1/ms =1/(1-mc); mc - склонность к потреблению: mc =(c2-c1)/(y2-y1); (c2-c1) - изменение расходов на потребление. | |
Рассчитать годовой экономический эффект G, G = [(S1+E*K1)-(S2+E*K2)]*O, если цена реализации единицы продукции в новом варианте - P2 равна цене реализации единицы продукции в базисном варианте - P1, иначе G = [(S1+E*K1)-(S2+E*K2)+(P2-P1)]*O, где S1, S2 - себестоимость единицы продукции по базисному и новому варианту; K1, K2 - удельные капитальные вложения в базисном и новом варианте; E - нормативный коэффициент эффективности капитальных вложений; O - объём применений результатов научных исследований. | |
Определить цену продажи 10000 единиц продукции, если известны затраты на их производство; причем, если себестоимость 1 единицы < 600 рублей, то надбавка составит 300 рублей, если себестоимость 1 единицы продукции будет >= 600 рублей, то продавать будут на 400 рублей дороже. Формула: себестоимость 1 единицы = общая сумма затрат/кол-во единиц, где S - себестоимость 1 единицы; Z - затраты; Zp - цена продажи 1 единицы. | |
Некоторым категориям жильцов положена скидка при оплате квартплаты: инвалидам – 70%, участникам войны – 50%, многодетным – 25%. Номинальная квартплата известна. Вычислить квартплату. | |
На фирме производство характеризуется следующими показателями а = 167, р = 12, б = 1654, с1 = 165, т = 154, ц = 176 натуральных единиц. Однако произошло сокращение производства. Если к1 меньше 1, тогда прибыль рассчитать по формуле: р = ц-((а+с1+т)/(б*к1)), в противном случае правительством повышаются нормы амортизованных списаний, следовательно прибыль рассчитывается по формуле: р = ц-((а*р+с1+т*k1)/(k1*б)). |
Продолжение таблицы 17
Выполнить расчеты по страхованию дома от пожара на садовом участке. Страховой взнос равен 3% от стоимости кирпичного дома. Если дом деревянный, страховка составляет 5% при наличии в непосредственной близости (на расстоянии до 20 м) водоема. Если ближайший водоем находится на расстоянии до 400 м – страховка деревянного дома увеличивается до 7%, если до 2000 м – до 10%, если более – до 15%. | |
На фирме производство характеризуется следующими показателями: С - цена единицы продукции, С=100000; А - амортизационные отчисления, А=200; з.пост - постоянные затраты, з.пост = 50; з.пер - переменные затраты, з.пер = 100; В - выпуск продукции, В = 100. Рассчитать прибыль производства П, если при коэффициенте сокращения производства k=0.7 П = С-(А+з.пост+з.пер*k)/k*В, иначе П = С-(k*А+з.пост+0.7*з.пер)/0.7*В | |
Определить минимальную стоимость билета для пассажира, следующего на заданное расстояние, стоимость билета с учетом выбранного вида вагона и поезда. Перемещение на скором поезде увеличивает стоимость билета на 20%, размещение в плацкартном вагоне – на 25%, а в купейном – на 35%. Далее следует установить окончательную стоимость билета. Его стоимость может быть снижена, если пассажир следует на дальнее расстояние. При длине маршрута от 500 до 1500 км скидка составляет 5% от полной стоимости билета, при расстоянии до 5000 км – 7%, если расстояние больше – 10%. | |
Найти значение кредита в рублях, который может выдать банк заемщику. Для ежемесячного дохода от $100 кредит может составить 1000% от заработка, для дохода от $500 – 3000%, для дохода от $1000 – 6000% и от $3000 – 7000%. | |
Расчет с постоянными клиентами-покупателями, которым товар отпускается в кредит. Вычислить величину кредита, которая зависит от его длительности. При сроке свыше 5-и дней – это 2% от исходной стоимости, свыше 10-и – 4%, свыше 15-и и еще по 1% за каждый день после 15-го. При задержке в оплате свыше 20-го дня должно появляться слово «Звонить». | |
Расчет страхования имущества от кражи, пожара и протечки. Клиент может застраховаться на любую Страховую сумму, для чего делает Страховой взнос в размере 10% от страховой суммы, если имущество страхуется от пожара, 8% - если от протечки, 7% - от кражи. Страховка от кражи снижается на 1% при наличии стальной двери и еще на 2%, если в подъезде имеется вахтер. |
Продолжение таблицы 17
Расчет страхования жизни. Клиент может застраховаться на любую Страховую сумму, для чего делает Взнос в размере, зависящем от возраста застрахованного (до года – 10% от страховой суммы, от года до пяти – 8%, от пяти до 20 лет – 5%, от 20 до 45 лет -3%, от 45 до 50 лет – 5%, от 50 до 65 лет – 8%. Лица старше 65 лет вносят 10% и еще по одному проценту за каждый год после 65-ти лет. |
2.9 Оператор выбора (переключатель)
С помощью оператора выбора VBA можно выбрать вариант из любого количества вариантов. Параметром, по которому осуществляется выбор, служит ключ выбора.
Структура оператора выбора:
Select Case <ключ_выбора>
Case Значение_1
<Оператор1>
|
<Оператор2>
.…………………
Case Значение_n (константа)
<Оператор n>
End Select
где
Select, Case, End - зарезервированные слова VBA (выбирать, случай,
конец);
<ключ_выбора> - переключатель варианта (некоторое выражение);
<список_выбора> - одна или более конструкций вида: <константа_выбора>
<оператор>;
Значение_n - <константа_выбора>того же типа,
что и выражение <ключ_выбора>;
<операторы> - произвольные операторы VBA, выполняемые
при совпадении Значения_n и значения
ключа_выбора.
Работа оператора выбора.
Вначале вычисляется значение выражения <ключ_выбора>,а затем в последовательности операторов <список_выбора>отыскивается такой, которому предшествует константа, равная вычисленному значению. Найденный оператор выполняется, после чего оператор выбора завершает свою работу. Если в списке выбора не будет найдена константа, соответствующая вычисленному значению ключа выбора, управление передается операторам, стоящим за End Select.
В операторе Select Case можно использовать операции отношения. Для этого надо включить в выражение ключевое слово Is или ключевое слово To.
Ключевое слово Is дает указание компилятору сравнить значение проверяемой переменной со значением выражения, следующего за ключевым словом Is.
Ключевое слово To задает диапазон значений.
Пример 1.
Постановка задачи. Составить пользовательскую подпрограмму процедуру, расшифровывающую количество баллов за полученный ответ по введенному числу с клавиатуры.
Технология выполнения задания:
1 Исходные данные:
х ÎZ.
2 Набрать в стандартном модуле проекта следующую пользовательскую процедуру:
Sub DemoSelect ()
Dim x As Integer
x = InputBox ("введите целое число")
Select Case x
Case 8 To 10
MsgBox ("Отлично")
Case 6 To 7
MsgBox ("Хорошо")
Case 4 To 5
MsgBox ("Удовлетворительно")
Case Is < 4
MsgBox ("Неудовлетворительно")
End Select
End Sub
3 Запустить подпрограмму-процедуру.
Примечание. Процедура MsgBox выводит на экран диалоговое окно, содержащее сообщение для пользователя.
Лабораторная работа № 3
Программирование алгоритмов ветвлений со многими вариантами
Цель: приобретение навыков программирования алгоритмов ветвлений со многими вариантами с помощью пользовательской подпрограммы-функции, позволяющей выбрать необходимый вариант из любого предложенного количества вариантов. Индивидуальные варианты лабораторной работы № 3 представлены в таблице 18 (2 часа)
Таблица 18
№ В | Варианты индивидуальных заданий | |
Разработать функцию пользователя, позволяющую выбрать вариант из любого количества вариантов | ||
С клавиатуры вводятся цифры (от 1 до 7). Составить программу, выводящую на экран название дня недели соответственно введенной цифре. Если введенная цифра меньше 1 или больше 7, то выводится надпись «нет соответствия». | ||
Продолжение таблицы 18
C клавиатуры вводятся числа (от 1 до 12). Составить программу, выводящую на экран название месяца соответственно введенному числу. Если число меньше 1 или больше 8, то выводится надпись "нет соответствия". | |
С клавиатуры вводится число (n>0). Составить программу, выводящую на экран надпись: "…эти порядки существовали n лет". Слово лет должно изменяться на год, года в соответствии с правилами русского языка. | |
С клавиатуры вводится числа (от 1 до 25). Составить программу, выводящую на экран название возрастной категории соответствующей данному числу: 0-1 грудной возраст 2-3 ясельный 4-6 дошкольный 7-10 младший школьный 11-16 подростковый 17 допризывной 18 призывной 25 студенческий. | |
С клавиатуры вводятся числа (от 0 до 99). Составить программу, выводящую на экран название региона России, соответствующее заданному числу: 56 – Оренбургская область; 77 – Московская обл. и т.д. Если число отсутствует в списке, то вывести надпись “нет данных”. | |
С клавиатуры вводятся числа (от 0 до 99). Составить программу, выводящую на экран название страны по международной классификации (штрих-код): 01-03 – США + Канада, 46 – Россия и т.д. | |
Составить программу определения названия специальности Финансово-экономического факультета по ее числовому коду. Например, 351200 – Налоги и налогообложение и т.д. | |
Составить программу, выводящую на экран характеристики компьютеров относящихся к n-ому поколению. Число n вводится при помощи клавиатуры. | |
Составить программу, выводящую на экран сроки выполнения лабораторной работы в зависимости от её номера. | |
С клавиатуры вводятся числа (от 0 до 10). Составить программу, выводящую на экран английские названия, соответствующие вводимому числу. | |
Составить программу, сопоставляющую арабским цифрам – римские. Предусмотреть вариант отсутствия соответствия. | |
Составить программу, выводящую на экран названия знаков зодиака, в соответствии с вводимым номером месяца. Если вводимое число не принадлежит диапазону 0 – 12, то вывести надпись “нет знака”. |
Продолжение таблицы 18
Расположить районы Оренбургской области в алфавитном порядке и пронумеровать их. Составить программу, выводящую на экран название района, в зависимости от введенного числа. | |
Написать программу, определяющую время суток по вводимому с клавиатуры часу, 8 – утро, 21 – вечер и т.д. | |
Для числа k напечатать фразу: “Мы нашли k грибов” согласовав окончание слова “гриб” с числом k. | |
Составить программу, выводящую на экран названия телеканалов. 1 – ОРТ, 2 – РТР и т.д. | |
Составить программу, выводящую название ноты в соответствии с ее порядковым номером. | |
Составить программу, выводящую на экран номера телефонов экстренного вызова 01, 02 и т.д. | |
Напишите программу-модель анализа пожарного датчика в помещении, которая выводит сообщение «пожароопасная ситуация», если температура (в вашей модели она будет вводиться с клавиатуры) в комнате превысила 600 0С. | |
Составить программу, выводящую расшифровку телефонных кодов городов России в зависимости от введенного числа n. |
2.10 Операторы цикла
В VBA существуют два основных типа циклов – циклы со счетчиком (параметрические) и циклы с условием (итерационные).
Циклы со счетчиком используют в тех случаях, когда необходимо выполнить некоторые действия определенное число раз
Циклы с условием применяются тогда, когда некоторые действия в программе должны повторяться до тех пор, пока выполняется определенное условие.
2.10.1 Циклы с параметром For … Next
Структура цикла:
For Параметр_Цикла = Начальное_Значение To Конечное_Значение
[Step Шаг]
Операторы
[Exit For]
Next [Параметр_Цикла]
где For – ключевое слово VBA (от), обозначающее начало цикла;
Параметр_цикла – переменная, определенная в качестве счетчика цикла;
Начальное_Значение – число, задающее начальное значение параметра цикла;
To – ключевое слово VBA (до), разделяющее
Начальное_значение и Конечное_Знаение;
Конечное_Значение – число, задающее значение параметра цикла,
при котором цикл завершается;
Step – ключевое слово VBA (шаг), используемое для
задания шага цикла, необязательный аргумент;
Шаг – число, задающее шаг цикла, т.е. значение, на которое
увеличивается (или уменьшается) значение параметра
цикла на каждом шаге. Это число может быть
отрицательным;
Exit For – оператор досрочного выхода из цикла (необязательный);
Next – ключевое слово VBA (следующий), обозначающее
конец цикла.
Работа цикла:
Шаг 1 Сначала определяется параметр цикла, а также вычисляются и запоминаются начальное и конечное значения этой переменной.
Шаг 2 Параметру цикла присваивается начальное значение.
Шаг 3 Начальное значение параметра цикла сравнивается с конечным значением.
Если параметр цикла больше конечного значения, программа сразу выходит из цикла и переходит к той строке кода, которая следует за циклом.
Шаг 4 Выполняется тело цикла.
Шаг 5 После выполнения тела цикла происходит присваивание параметру цикла следующего значения. Переход к шагу 3.
Примечание.
1 Если используется ключевое слово Step, то параметр цикла изменяется в соответствии с числом, указанным после этого слова. Если слово Step отсутствует, то значение шага равно единице.
Пример 1.
For I = 0 To 10 Step 2 (Значение I будет увеличиваться на 2)
2 Цикл For … Next может быть прерван досрочно при достижении какого либо условия. Для этого в нужном месте цикла нужно поместить оператор Exit For.
Пример 2.
Dim S As Integer
Dim j As Integer
S = 2
For j = 1 To 10
S = S + j
If S > 6 Then
Exit For (Выход из цикла, если значение S > 6)
End If
Next j
MsgBox (S)
2.10.2 Циклы с условием (итерационные)
Если какое-то действие (несколько действий) необходимо выполнить много раз, но заранее неизвестно сколько раз и это зависит от какого-то условия, то тогда следует воспользоваться циклом с предусловием или с постусловием.
В VBA есть два основных цикла DO … LOOP – с условием, вводимым ключевым словом While, и с условием, вводимым ключевым словом Until. Оба они могут быть с предусловием или с постусловием.
Синтаксис:
Цикл с предусловием | Цикл с постусловием |
Do While | Until <условие> <Тело цикла> Loop | Do <Тело цикла> Loop While | Until <условие> |
где Do – ключевое слово (делать);
While – ключевое слово (пока);
Until – ключевое слово (до тех пор пока);
Loop – ключевое слово, указывающее на окончание цикла;
<условие> – логическое выражение, истинность которого проверяется
в начале каждого выполнения тела цикла;
<тело_цикла> – произвольная последовательность операторов;
КонструкцияDo … Whileчитается: делать пока выполняется условие. В конструкции Do … While для увеличения шага следует писать специальный оператор, т.к. в ней в отличие от конструкции For, не делается это автоматически.
КонструкцияDo … Untilчитается:делать до тех пор, пока не будет выполнено условие. В конструкции Do … Untilдля увеличения шага следует писать специальный оператор, т.к. в ней в отличие от конструкции For, не делается это автоматически.
Условие, записанное после ключевого слова Until, проверяется в конце каждой итерации (после выполнения тела цикла). Обратить внимание, что оно работает здесь не совсем так, как в цикле While. Если условие является истинным (True), то выполнение цикла завершается. Если условие не выполняется (является ложным – False), то вновь выполняется тело цикла.
Пример 1.
Постановка задачи. Вычислить сумму конечного ряда с помощью подпрограммы-процедуры.
Технология выполнения задания:
1 Исходные данные: i Î Z
Результат: S Î R.
2 Набрать в стандартном модуле проекта следующую пользовательскую процедуру, используя цикл с предусловием While:
Sub summa()
Dim S As Integer
Dim i As Integer
S = 0
i = 1
Do While i <= 10
S = S + i ^ 2
i = i + 1
Loop
MsgBox (S)
End Sub
3 Набрать в стандартном модуле проекта следующую пользовательскую процедуру, используя цикл с предусловием Until:
Sub summa()
Dim S As Integer
Dim i As Integer
S = 0
i = 1
Do Until i > 10
S = S + i ^ 2
i = i + 1
Loop
MsgBox (S)
End Sub
4 Набрать в стандартном модуле проекта следующую пользовательскую процедуру, используя цикл с постусловием While:
Sub summa()
Dim S As Integer
Dim i As Integer
S = 0
i = 1
Do
S = S + i ^ 2
i = i + 1
Loop While i <= 10
MsgBox (S)
End Sub
5 Набрать в стандартном модуле проекта следующую пользовательскую процедуру, используя цикл с постусловием Until:
Sub summa()
Dim S As Integer
Dim i As Integer
S = 0
i = 1
Do
S = S + i ^ 2
i = i + 1
Loop Until i > 10
MsgBox (S)
End Sub
Лабораторная работа № 4
Программирование алгоритмов циклической структуры
Цель: приобретение навыков программирования алгоритмов циклической структуры с помощью подпрограммы-процедуры, позволяющую вычислять сумму (произведение) конечного ряда с помощью операторов цикла с параметром, с предусловием, с постусловием. Индивидуальные варианты лабораторной работы № 4 представлены в таблицах 19, 20 (2 часа).
Таблица 19
№ В | Варианты индивидуальных заданий | |
Разработать подпрограмму процедуру, вычисляющую сумму (произведение) конечного ряда | ||
Продолжение таблицы 19
Дата добавления: 2016-03-22; просмотров: 1416;