Лабораторная работа № 2

Условные алгоритмы

Время выполнения

6 часов

Цель работы

Научиться использовать язык программирования Visual Basic for Applications (VBA) для разработки модулей в Excel на основе условных алгоритмов.

Задачи лабораторной работы

После выполнения данной работы студент должен знать и уметь:

  • знать все операторы, используемые в программах;
  • уметь применять любые из изученных операторов для написания своих модулей;
  • уметь объяснить написанную программу.

Перечень обеспечивающих средств

Для обеспечения выполнения работы необходимо иметь компьютер со следующим математическим обеспечением: операционная система Windows XP, электронные таблицы Excel с приложением в виде языка Visual Basic for Applications.

Общие теоретические сведения

VBA – это язык объектно-ориентированного программирования.

Основными парадигмами являются объект, свойство, метод, событие, класс и семейство объектов.

Объект – это инкапсуляция данных вместе с кодом, предназначенным для их обработки.

Семейство – объект, содержащий несколько других объектов того же типа.

Классы – это проект, на основе которого будет создан объект, т.е. класс определяет имя объекта, его свойства и действия, над ним выполняемые. А каждый объект, свою очередь, является экземпляром класса.

Методы – это действия, выполняемые над объектом.

Свойства – это атрибут объекта, определяющий его характеристики: размер, цвет, положение на экране или состояние (доступность, видимость).

События – это действия, распознаваемые объектом.

Пример 1.

Написать программу вычисления функции пользователя.

Предусмотреть сбойную ситуацию (при y = 0) и в этом случае выдать сообщение об ошибке.

Запись программы в виде блок-схемы (рис. 1) и визуальное представление ввода данных и вывода результата (рис. 2):

Рисунок 1. Блок-схема решения задачи

Программный код

Function z (x, y)

If y = 0 Then

z = "Ошибка! На ноль делить нельзя!"

ElseIf x > 0 And y > 1 Then

z = x + y

ElseIf x < = 1 And y <> 0 Then

z = x / y

End If

End Function

Рисунок 2. Ввод исходных данных в процессе выполнения программы

Пример 2. Написать программу вычисляющую значение Z

Программный код

Sub Условия()

Dim x, y, Z As Double

x = Range("A2").Value

y = Range("B2").Value

If x > 0.1 And y > 0.1 Then

Z = (x - y) ^ x

ElseIf x < 0.1 And y < 0.1 Then

Z = Sin(x)

ElseIf x = 0.1 And y = 0 Then

If y = 0 Then

MsgBox "Ошибка! Деление на ноль!"

Else: Z = (x * x) / y

End If

End If

Cells(2, 4).Value = Z

End Sub

Рассмотрим результат работы программы при разных значениях x и y (рис. 3, 4, 5).

Рисунок 3. Результат вычисления функции y= sin(x) при x<0.1 и y<0.1

Рисунок 4. Результат вычисления функции y= (x - y)x при x>0.1 и y>0.1

Рисунок 5. Результат вычисления функции y=x2/y при x=0.1 и y=0

Видеоурок по выполнению заданий лабораторной работы http://informatics.ssga.ru/practics/lab-29.

Варианты заданий

Задание 1. Составить блок-схему и написать программу вычисления функции пользователя

Задание 2. Составить блок-схему и функцию пользователя согласно условию задачи.

1. Составить блок-схему и функцию пользователя для определения премии торговому агенту от суммы совершенной им сделки. Если объем сделки до 3000 рублей, то премия 1.5 %; если объем до 10000, то – 3 %; если выше 10000, то – 5 %. Предусмотреть проверку корректности данного «объем сделки».

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

где P – сумма кредита, S – сумма, подлежащая возврату, Т – срок кредита.

Предусмотреть проверку корректности данных.

Для проверки и отладки программы используйте следующие исходные данные: Т = 4 месяца, Р = 200 000, S = 210 000.

3. Составить блок-схему и разработать функцию пользователя для вычисления надбавки к стипендии по результатам сессии. Размер стипендии составляет 2 МРОТ (минимальный размер оплаты труда). Если три экзамена сданы на "5", то надбавка составляет 50 %, если есть одна "4" (при остальных "5"), то надбавка составит 25 %, если есть хотя бы одна "2", то стипендия не назначается, т. е. равна "0".

4. Составить блок-схему и разработать функцию пользователя для расчета суммы вклада с начисленным процентом в зависимости от вида вклада: до востребования – 2 %, праздничный – 5 %, срочный – 3 %.

Для проверки и отладки программы используйте данные для всех видов вкладов.

5. Составить блок-схему и разработать функцию пользователя для расчета реальной доходности с учетом налога на прибыль, которая вычисляется по формуле:

где i – годовая процентная ставка, g - налог на прибыль, выраженный в процентах, h - годовой темп инфляции, вычисляемый по формуле:

h=(1+h1/12)12- 1, где h1/12 – месячный темп инфляции.

Предусмотреть проверку корректности данных.

Для проверки и отладки программы используйте следующие исходные данные: i =60 %, h1/12 =3 %, g =25 %.

6. Составить блок-схему и разработать функцию пользователя расчета надбавки к окладу в зависимости от стажа работы сотрудников предприятия. Если стаж работы меньше 5 лет, то надбавка составляет 0 %, если стаж от 5 до 10 лет, то надбавка – 5 %, если стаж больше 10 лет, то надбавка – 10 %.

7. Составить блок-схему и разработать функцию пользователя определения комиссионных менеджеру по продажам от объема проданного товара. Если объем продажи до 8 000 рублей, то комиссионные 6 %; если объем до 16 000 рублей, то – 8 %; если объем до 32 000 рублей, то – 10 %; если выше 32 000, то – 12 %. Для обозначения ограничений объема продажи используйте константы.

8. Составить блок-схему и разработать функцию пользователя для расчета премиальных, выплачиваемых рабочему, размер выплаты которых определяется в зависимости от оклада и процента перевыполнения нормы выработки:

  • Ниже 100% - премия не назначается, т. е. равна нулю,
  • 100% - премия 20% от оклада,
  • 101-110% - премия 30% от оклада,
  • Выше 110% - премия 40% от оклада.

9. Составить блок-схему и разработать функцию пользователя, определяющую площадь треугольника по его сторонам по следующей формуле:

где a, b, c – стороны треугольника, р – полупериметр:

Предусмотреть проверку корректности данных.

10. Составить блок-схему и разработать функцию пользователя возвращающую большее из трех значений с указанием имени переменной.

11. Составить блок-схему и разработать функцию пользователя возвращающую меньшее из трех значений с указанием имени переменной.

12. Составить блок-схему и разработать функцию пользователя, возвращающую сумму первой и третьей по величине значений.

13. Составить блок-схему и разработать функцию пользователя, вычисляющую стоимость потребляемой энергии компанией в зависимости от установленной расценки и количества потребляемой энергии:

Первые 240 кВт/час: 1,62руб. за кВт/час,

Следующие 300 кВт/час: 2,10руб. за кВт/час,

Свыше 540 кВт/час: 2,76руб. за кВт/час.

Для обозначения тарифов в процедуре использовать константы.

14. Составить блок-схему и разработать функцию пользователя начисления премии сотрудникам малого предприятия в зависимости от стажа работы и объема продажи товаров. Если стаж работы меньше 2 лет и объем продажи больше 80 000руб., то премия составляет 1.5 %. Если стаж от 2 до 5 лет, а объем продажи больше 100 000 руб., то премия – 5 %, если стаж больше 5 лет, а объем продажи выше 100 000 руб., то премия – 7 %, в остальных случаях - премия – 1 %.

15. Составить блок-схему и разработать функцию пользователя начисления процента удержания у работников завода от начисленной заработной платы и количества иждивенцев по следующему правилу:

  • при количестве иждивенцев более трех – 0 %;
  • при трех иждивенцев – 5 %;
  • при двух иждивенцев – 10 %;
  • при одном иждивенце – 12 %;
  • если нет иждивенцев – 14 %.

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: