
- •Содержание
- •4. Программирование на vba…………………… ………………………...13
- •1. Цель и задачи курса
- •2. Общие рекомендации к выполнению и требования к оформлению контрольной работы
- •3. Темы заданий для выполнения контрольной работы
- •4. Программирование на vba for ms Excel
- •4.1. Создание программы
- •4.6. Типы данных в vba
- •4.7. Переменные в vba
- •4.8. Константы в vba
- •4.9. Операции и функции языка vba
- •4.14. Понятие алгоритма
- •4.15. Изображение алгоритма в виде блок-схемы
- •4.16. Ввод и вывод данных с использованием рабочего листа
- •4.17. Ввод и вывод данных с использованием встроенных функций
- •InputBox(сообщение [,заголовок[,значение]])
- •4.18. Условный оператор
- •4.19. Примеры программ
- •4.20. Операторы циклической структуры
- •4.20.1. Оператор цикла с предусловием
- •20.2. Оператор цикла с постусловием
- •4.20.3. Безусловный цикл
- •4.21. Решение задач с использованием циклов
- •4.22. Обработка массивов
- •4.22.1. Ввод-вывод элементов массива
- •4.22.2. Основные алгоритмы обработки массивов
- •4.23. Примеры программ
4.19. Примеры программ
ЗАДАЧА 3. Известны коэффициенты а, b и с квадратного уравнения ax2+bx+c=0. Вычислить корни квадратного уравнения.
Входные данные: a, b, c. Выходные данные: х1, х2.
Блок-схема алгоритма показана на рис. 17. Результаты работы программы на рис.18-19.
Sub prim7()
Dim a As Single, b As Single, c As Single
Dim d As Single, x1 As Single, x2 As Single
a = InputBox("A=","Коэффициенты уравнения", 2)
b = InputBox("B="," Коэффициенты уравнения", 3)
c = InputBox("C="," Коэффициенты уравнения",-2)
d = b ^ 2 - 4 * a * c
If d < 0 Then
'Рис. 19
MsgBox "Действительных решений нет", vbCritical
Else
x1=(-b+Sqr(d))/(2*a)
x2=(-b-Sqr(d))/(2*a)
'Рис. 18.
MsgBox "X1=" & x1 & Chr(13) & "X2=" & x2,
vbInformation
End If
End Sub
Рис. 17.
Рис. 18. Рис. 19.
ЗАДАЧА 4. Дано вещественное число x. Для функции, график которой приведен на рис. 20 вычислить y=f(x).
Рис. 20. |
Математическая постановка задачи:
|
|
Блок-схема алгоритма (рис.21). |
Текст программы: |
|
Рис. 21 |
Sub prim4() Dim x As Single Dim y As Single x = Cells(1, 2) If x <= -1 Then y = 1 ElseIf x > 1 Then y = 2 Else y = Abs(x) End If Cells(2, 2) = y End Sub |
ЗАДАЧА 5. Даны вещественные числа x и y. Определить принадлежит ли точка с координатами (x; y) заштрихованной части плоскости (рис. 22).
Рис. 22. |
Точка с координатами (x;y) принадлежит заштрихованной части плоскости, если:
|
Блок-схема алгоритма (рис.23). |
Текст программы: |
Рис. 23 |
Sub prim5() Dim x As Single Dim y As Single x = Cells(1, 2) y = Cells(2, 2) If y <= 2 * x + 2 And y <= -2 * x + 2 And y > -1 Then MsgBox "Yes" Else MsgBox "No" End If End Sub |
4.20. Операторы циклической структуры
Циклический процесс (цикл) это повторение одних и тех же действий. Последовательность действий, которые повторяются в цикле, называют телом цикла. Один проход цикла называют шагом или итерацией. Переменные, которые изменяются внутри цикла, и влияют на его окончание, называются параметрами цикла.
4.20.1. Оператор цикла с предусловием
Блок-схема алгоритма (рис.24): |
Оператор, реализующий алгоритм: |
Рис. 24 |
Do While выражение тело цикла Loop
|
Работает цикл так. Вычисляется значение выражения. Если оно истинно, выполняется тело цикла. В противном случае цикл заканчивается, и управление передается оператору, следующему циклом. Выражение вычисляется перед каждой итерацией цикла. Если при первой проверке выражение ложно, цикл не выполнится ни разу.