Индивидуальные задания создание функций пользователя с разветвляющимся алгоритмом.
Требования к выполнению из
ИЗ должно содержать:
-
Титульный лист
-
Условие задачи
-
Блок-схему алгоритма
-
Программу
-
Фрагменты экрана с ЭТ и окнами диалога
-
Результаты экрана с ЭТ для созданной функции с проверкой всех условий.
Пример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%.