- •Содержание
- •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.23. Примеры программ
ЗАДАЧА 9. Найти среднее значение положительных элементов в массиве (рис 41).
Sub prim() Dim i As Integer, N As Integer Dim k As Integer, S As Integer Dim X(1 To 20) As Integer N = InputBox("N=", , 10) For i = 1 To N X(i) = Cells(i, 1) Next S = 0 K = 0 For i = 1 To N If X(i) > 0 Then S = S + X(i) k = k + 1 End If Next If k <> 0 Then S = S / k MsgBox "S=" & S Else MsgBox "ERROR!!!" End If End Sub |
|
ЗАДАЧА 10. Дан массив А состоящий из k целых положительных чисел. Записать все четные по значению элементы массива А в массив В.
Рис. 42
Sub prim_10()
Dim i As Integer, m As Integer, k As Integer
Dim A(1 To 20) As Integer
Dim B(1 To 20) As Integer
k = InputBox("k=", , 10)
For i = 1 To k
A(i) = Cells(1, i + 1)
Next
m = 0
For i = 1 To k
If A(i) Mod 2 = 0 Then
m = m + 1
B(m) = A(i)
End If
Next
If m <> 0 Then
For i = 1 To m
Cells(2, i + 1) = B(i)
Next
Else
MsgBox "ERROR!!!"
End If
End Sub
ЗАДАЧА 11. Удалить из массива X, состоящего из N элементов, наименьший элемент.
Sub prim_11() Dim i As Integer, N As Integer Dim nom As Integer Dim max As Integer Dim X(1 To 20) As Integer N = InputBox("N=", , 10) For i = 1 To N X(i) = Cells(1, i) Next max = X(1) nom = 1 For i = 2 To N If X(i) > max Then max = X(i)nom = I End If Next For i = nom To N - 1 X(i) = X(i + 1) Next |
Рис. 43. For i = 1 To N - 1 Cells(2, i) = X(i) Next End Sub |
ЗАДАЧА 12. Проверить содержит ли массив X, состоящий из N элементов, хотябы один нулевой элемент. Если содержит, то поменять его местами с последним элементом массива.
Алгоритм показан на рис. 44.
Sub prim_12() Dim i As Integer Dim N As Integer Dim nom As Integer Dim b As Integer Dim X(1 To 20) As Integer N = InputBox("N=", , 10) For i = 1 To N X(i) = Cells(1, i) Next nom = 0 For i = 1 To N If X(i) = 0 Then nom = i Exit For End If Next |
If nom <> 0 Then b = X(nom) X(nom) = X(N) X(N) = b For i = 1 To N Cells(2, i) = X(i) Next Else MsgBox "NO!!!" End If End Sub
|
Рис. 44.
ЗАДАЧА 13. Вычислить сумму элементов массива X(N) расположенных между минимумом и максимумом (рис. 45).
Sub prim_13()
Dim i As Integer, N As Integer
Dim nMax As Integer, max As Single
Dim nMin As Integer, min As Single
Dim S As Single
Dim X(1 To 20) As Single
Рис. 45
N = InputBox("N=", , 10)
For i = 1 To N
X(i) = Cells(1, i)
Next
max = X(1)
nMax = 1
For i = 2 To N
If X(i) > max Then
max = X(i)
nMax = i
End If
Next
min = X(1)
nMin = 1
For i = 2 To N
If X(i) < min Then
min = X(i)
nMin = i
End If
Next
If nMax < nMin Then
b = nMax
nMax = nMin
nMin = b
End If
S = 0
For i = nMin To nMax
S = S + X(i)
Next
MsgBox "S=" & S
End Sub
ЗАДАЧА 14. Вычислить сумму элементов массива X(N) с четными индексами и произведение с нечетными.
Sub prim_14() Dim i As Integer Dim N As Integer Dim P As Integer Dim S As Integer Dim X(1 To 20) As Integer N = InputBox("N=", , 10) For i = 1 To N X(i) = Cells(i, 1) Next S = 0 |
For i = 2 To N Step 2 S = S + X(i) Next MsgBox "S=" & S P = 1 For i = 1 To N Step 2 P = P * X(i) Next MsgBox "P=" & P End Sub |
Донецький національний технічний університет
Оксана Віталіївна Чеснокова
МЕТОДИЧНІ РЕКОМЕНДАЦІЇ
І КОНТРОЛЬНІ ЗАВДАННЯ
ПО КУРСУ
«ІНФОРМАТИКА І СИСТЕМОЛОГІЯ»
для студентів спеціальності 7.070801
«Екологія і охорона навколишнього середовища»
Відповідальний
за випуск: В. М. Павлиш
Редактор: О. В. Чеснокова

Рис.
41