Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РГЗ2 поVBA Условные.doc
Скачиваний:
13
Добавлен:
31.03.2015
Размер:
105.98 Кб
Скачать

Индивидуальные задания создание функций пользователя с разветвляющимся алгоритмом.

Требования к выполнению из

ИЗ должно содержать:

  1. Титульный лист

  2. Условие задачи

  3. Блок-схему алгоритма

  4. Программу

  5. Фрагменты экрана с ЭТ и окнами диалога

  6. Результаты экрана с ЭТ для созданной функции с проверкой всех условий.

Пример1. Составить функцию пользователя:

|x+1| , если x<=0.3;

Z = x +sin(x) cos(x) , если x [0.3, 0.9];

x3 +1, если x>=0.9;

Для создания функции пользователя необходимо выполнить следующее:

  • Выберите команду Сервис/Макрос/Редактор Visual Basic. Откроется окно редактора Visual Basic.

  • Выберите команду Вставка /Модуль.

  • Выберите команду Вставка /Процедура.

  • В открывшемся диалоговом окне Вставка процедуры, установить переключатель - Функция, в поле Имя ввести имя функции, например Z. Щелкните на ОК.

  • В появившемся окне модуля появится заготовка функции (заголовок и окончание), между которыми нужно поместить код тела функции:

Public Function z()

End Function

  • Внутри скобок заголовка функции введите параметр “х”:

Public Function z(х)

  • Под заголовком функции введите код тела функции:

Пользовательская функция с использованием блочной структуры оператора If:

Function z(x)

If x <=0.3 Then

z = Abs(x + 1)

ElseIf x > 0.3 And x < 0.9 Then

z = x + sin(x) * cos(x)

Else

z = x^3 + 1

End If

End Function

Другой вариант пользовательской функции с использованием трех операторов If:

Function zz(x)

If x < = 0.3 Then zz = Abs(x + 1)

If x > 0.3 And x < 0.9 Then zz = x + sin(x) * cos(x)

If x > = 0.9 Then zz = x^3 + 1

End Function

Блок-схема.

Да

Нет

Да

Нет

Теперь необходимо проверить работу функции на примере, вызывая ее с помощью мастера функций Excel:

  • Введите значения «х» в ячейки А2:А6 рабочего листа ЭТ.

  • Выделите ячейку В2, в которой получим значение функции.

  • Выберите команду Вставка/Функция.

  • В первом окне Мастера функций в списке Категория найдите значение Определенные пользователем, а в списке Функция выберите функцию Z и нажмите на кнопку ОК.

  • Во втором окне Мастера функций в поле Х введите ссылку на ячейку А2 и нажмите кнопку ОК.

  • Вы должны получить следующие результаты:

x

z

0.1

1.1

0.5

0.920735

0.7

1.192725

0.9

1.729

0.2

1.2

Проверьте работу двух вариантов пользовательской функции.

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

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

Пользовательская функция будет иметь следующий вид:

Public Function Пересчет(Рубли, Курс)

'Проверка корректности данных

'Функция IsNumeric проверяет, являются ли ее аргументы числами

If (IsNumeric(Рубли) And IsNumeric(Курс)) = False Then

MsgBox "Ошибка в исходных данных", vbInformation, "Пересчет рублей"

Пересчет = 0

'Выход из процедуры в случае ошибки данных

Exit Function

'Проверка, Курс = 0 или Курс < 0

ElseIf Курс = 0 Or Курс < 0 Then

MsgBox "Неверно введен курс"

Exit Function 'Выход из процедуры в случае ошибки данных

Else

Пересчет = Рубли / Курс

End If

End Function

Проверьте работу этой функции для корректных и некорректных данных.

ВАРИАНТЫ ИНДИВИДУАЛЬНЫХ ЗАДАНИЙ.

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

(x - y) x, если x>0.1 и y> 0.1;

Z = |sin(x) + cos(y)| , если x<0.1 и y<0.1;

x2 / y, если x=0.1 и y=0.1;

Вариант2. Составить блок-схему и написать программу вычисления функции пользователя Y :

|-x+1| 3, если x<=0.3;

Y = sin3(x) - cos2(x-3) , если x [0.3, 0.9];

х4 - 2е х , если x>=0.9;

Вариант3. Составить блок-схему и написать программу вычисления функции пользователя T:

|v| -2, если v<=0;

Т = sin(3v) - cos(v2), если v[0, 1];

3v3 +e2v+1, если v>=1.

Вариант4. Составить блок-схему и написать программу вычисления функции пользователя g :

|x+1|+e3x , если x<= -1;

g = -2x sin(x+3), если x [-1,1];

x3 +2|cos(3x)|, если x>=1.

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

Вариант6. Составить блок-схему и программу вычисления функции пользователя Q:

Вариант7. Составить блок-схему и написать программу вычисления функции пользователя g:

z3 +cos(2z), если z<= 1;

g = 1.5z /sin(z), если z [1,2];

- e5z, если z>=2.

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

Вариант9. Составить блок-схему и написать программу вычисления функции пользователя W:

eb +7b3, если b<=4;

W = 1.8 / sin3(b2), если 4< b<6;

|6 - (b-2) 3|, если b>=6;

Вариант10. Составить блок-схему и написать программу вычисления функции пользователя S :

Вариант11. Составить блок-схему и написать программу вычисления функции пользователя F:

|-x| -3sin(x3), если x<1.3;

F = 1.3x / (sin(x+1)+cos2(x)), если x=1.3;

(x-1.1) / e-2x+1, если x>1.3;

В ариант12. Составить блок-схему и написать программу вычисления функции пользователя S:

| cos2(2b) –3b3|, если b<=-2;

S = 8/sin(3-b2), если -2< b<2;

(b+2) 4 +6b, если b>=2;

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

|x-2| -5x3, если x<1.4;

W = 1.3sin(3x), если x=1.4;

cos2(x)+e-2x+1, если x>1.4;

Вариант14. Составить блок-схему и написать программу вычисления функции пользователя Z :

x+ye x, если x<0 и y< 0;

Z = cos(y), если x>=0.1 и y>=0.1;

y3 - x, в остальных случаях.

Вариант15. Составить блок-схему и написать программу вычисления функции пользователя S:

z2 +cos(2z), если z<= 0.8;

S = -2z |sin(z)|, если z [0.8,2];

/e4-z, eсли z>=2.

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

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

I=,

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

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

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

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

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

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

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

Y=,

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

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

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

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