Пример №2Написать программу вычисляющую значение Z
( x - y) x, если x>0.1 и y> 0.1;
Z = sin(x) , если x<0.1 и y<0.1;
x2 / y, если x=0.1 и y=0;
Программа
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<0.1 и y<0.1 (Идет вычисление sin(x))
Результат работы программы при x>0.1 и y>0.1 (Идет вычисление ( x - y) x)
Результат работы программы при x=0.1 и y=0
Варианты индивидуальных заданий.
Вариант1.Составить блок-схему и написать программу вычисления функции пользователя Z :
(x - y) x, если x>0.1 и y> 0.1;
Z = sin(x) , если x<0.1 и y<0.1;
x2 / y, если x=0.1 и y=0;
Вариант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;
Т = 1/sin(3v) , если 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 /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;
| 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%.
Вариант21.Составить блок-схему и разработать функцию пользователя расчета надбавки к окладу в зависимости от стажа работы сотрудников предприятия. Если стаж работы меньше 5 лет, то надбавка составляет 0%, если стаж от 5 до 10 лет, то надбавка - 5%, если стаж больше 10 лет, то надбавка - 10% .
Вариант22. Составить блок-схему и разработать функцию пользователя определения комиссионных менеджеру по продажам от объема проданного товара. Если объем продажи до 8 000 рублей, то комиссионные 6%; если объем до 16 000 рублей, то - 8%; если объем до 32 000 рублей, то - 10%; если выше 32 000, то - 12%. Для обозначения ограничений объема продажи используйте константы.
Вариант23. Составить блок-схему и разработать функцию пользователя для расчета премиальных, выплачиваемых рабочему, размер выплаты которых определяется в зависимости от оклада и процента перевыполнения нормы выработки:
· ниже 100% - премия не назначается, т. е. равна нулю,
· 100% - премия 20% от оклада,
· 101-110% -премия 30% от оклада,
· выше 110% -премия 40% от оклада.
Вариант24. Составить блок-схему и разработать функцию пользователя, определяющую площадь треугольника по его сторонам по следующей формуле:
S=, где a, b, c -стороны треугольника, р-полупериметр: р =.
Предусмотреть проверку корректности данных.
Вариант25. Составить блок-схему и разработать функцию пользователя возвращающую большее из трех значений с указанием имени переменной.
Вариант26. Составить блок-схему и разработать функцию пользователя возвращающую меньшее из трех значений с указанием имени переменной.
Вариант27. Составить блок-схему и разработать функцию пользователя, возвращающую сумму первой и третьей по величине значений.
Вариант28. Составить блок-схему и разработать функцию пользователя, вычисляющую стоимость потребляемой энергии компанией в зависимости от установленной расценки и количества потребляемой энергии:
· первые 240 квт/час: 1,62руб. за квт/час,
· следующие 300 квт/час: 2,10руб. за квт/час,
· свыше 540 квт/час: 2,76руб. за квт/час.
Для обозначения тарифов в процедуре использовать константы.
Вариант29. Составить блок-схему и разработать функцию пользователя начисления премии сотрудникам малого предприятия в зависимости от стажа работы и объема продажи товаров. Если стаж работы меньше 2 лет и объем продажи больше 80 000руб., то премия составляет 1.5%. Если стаж от 2 до 5 лет, а объем продажи больше 100 000руб., то премия - 5%, если стаж больше 5 лет, а объем продажи выше 100 000руб., то премия - 7%, в остальных случаях - премия - 1% .
Вариант30. Составить блок-схему и разработать функцию пользователя начисления процента удержания у работников завода от начисленной заработной платы и количества иждивенцев по следующему правилу:
· при количестве иждивенцев более трех – 0% ,
· при трех иждивенцев – 5%,
· при двух иждивенцев – 10 %,
· при одном иждивенце – 12 %,
· если нет иждивенцев – 14%.
Лабораторная работа №3
Циклические конструкции
Требования к выполнению лабораторной работы
Содержание работы:
1. Условие задачи
2. ЭТ с исходными данными
3. Блок-схему и программу алгоритма
4. Результат работы программы
5. Для запуска программы создайте командную кнопку
Пример №1 Задача. В массиве чисел М(10) очистить клетки с нулевыми значениями.
Электронная таблица с исходными данными:
Блок - схема | Программа |
Sub ОбнулениеКлетокС_НулевымиЗначениями() For i = 1 To 10 If Cells(i, 1) = 0 Then Cells(i, 1).Clear Next i End Sub |
Результат работы программы:
Пример №2 Есть ли в массиве число 10? Если есть, на каком месте оно стоит (известно, что число может встретиться несколько раз).
Программа
Sub Число()
Dim A As Variant
Dim i, k As Integer
i = 1
k = 0
A = Range("A1:A10")
For i = 1 To 10
If A(i, 1) = 10 Then
MsgBox ("Номер ячейки, содержащей число 10 - " & i)
k = k + 1
End If
Next i
MsgBox ("Число 10 встретилось следующее количество раз - " & k)
End Sub