- •Одеська національна академія харчових технологій
- •Конспект лекцій
- •Розділ 1. Розвиток інформаційних технологій. Операційна система Windows
- •1.1. Інформація й інформатика
- •1.2. Пристрої, характеристики і програмне забезпечення пк
- •Основні характеристики сучасних пк
- •Програмне забезпечення пк
- •3. Файлова система організація даних
- •Project.Vbp - проект Visual Basic;
- •1.4. Операційна система Windows
- •1.5. Робота з папками у вікні Провідник
- •1.6. Питання для самоконтролю
- •Розділ 2. Табличний процесор ms Excel
- •2.1. Робочі книги, аркуші й вікно Excel
- •2.2. Деякі операції над робочою книгою й аркушами
- •Операції над робочим аркушем
- •Виділення елементів аркуша
- •Робота з комірками
- •2.3. Типи даних в Excel і їхнє уведення
- •2.4. Арифметичні й логічні вирази в Excel
- •2.5. Абсолютні, відносні й змішані адреси
- •2.6. Питання для самоконтролю
- •Розділ 3. Функції в Excel
- •3.1. Стандартні функції
- •Майстер функцій
- •3.2. Логічна функція если в Excel
- •Приклад застосування функції если
- •Питання для самоконтролю
- •Розділ 4. Діаграми в Excel
- •4.1. Майстер діаграм
- •Питання для самоконтролю
- •Розділ 5. Робота з базами даних в Excel
- •5.1. Основні поняття й правила створення бд
- •Номер першого запису
- •Сортування записів у бд за критеріями
- •5.2. Застосування команди Автофільтр Команда Автофільтр виконує відбір записів за критеріями одного поля.
- •Додаткові пункти списку, що розкривається, команди Автофільтр : Всі, Перші 10 ,…:( мал. 5.3)
- •5.3. Застосування команди Розширений фільтр
- •РРис. 5.4 - бд і умови відбору розширеного фільтра
- •Питання для самоконтролю
- •Розділ 6. Алгоритмізація обчислювальних процесів
- •6.1. Алгоритм і його властивості
- •6.2. Лінійні й розгалужені алгоритми
- •6.3. Прості циклічні алгоритми
- •6.4. Циклічні алгоритми обробки масивів
- •Двовимірні масиви
- •А) введення по рядках в) введення по стовпцях
- •Питання для самоконтролю
- •Розділ 7. Програмування мовою vba
- •7.1. Вступ
- •7.2. Робота у вікні модуля. Структура програми
- •7.3. Основні типи даних
- •7.4. Змінні, масиви, константи і їхній опис
- •7.5. Операції vba
- •7.5.1. Арифметичні операції
- •7.5.2. Операції порівняння
- •7.5.3. Логічні операції
- •7.6. Стандартні функції
- •7.7. Вирази
- •7.8. Оператор присвоювання
- •7.9. Введення даних користувачем
- •7.10. Виведення даних
- •7.11. Оператори переходу. Програмування розгалужуваних обчислювальних процесів
- •If умова Then оператор
- •If умова Then
- •Оператор If...Then...Else.
- •If умова Then
- •7.12. Оператори циклу. Програмування циклічних обчислювальних процесів
- •Оператор Do ...Loop
- •Оператор While...Wend
- •Оператор For... Next
- •Оператор For Each...Next
- •Приклад 7. Відомі данні про студентів (25 чол.), а саме: прізвища і дати народження. Підрахувати кількість студентів, що народились у червні або липні, і вивести їхні прізвища.
- •Питання для самоконтролю
- •Список літератури
Оператор While...Wend
Цей оператор циклу є різновидом оператора Do…Loop...
Синтаксис оператора:
While умова
Блок операторів
Wend
Якщо умова має значення True, виконуються Блок операторів до Wend. Якщо умова має значення False, виконання відновляється з операторів, що записані поза Wend. Цикли WhileWend можуть мати будь-яку глибину вкладеності.
Оператор For... Next
Цей оператор циклу можна зустріти в більшості мов програмування. Він використовується у випадках, коли відомо, скільки разів необхідно повторити виконання серії операторів. Синтаксис оператора:
For лічильник = початок To кінець [step крок]
Блок операторів
Next [лічильник]
Лічильник – числова змінна, котра автоматично змінюється після кожного повтору. Початкове значення лічильника дорівнює параметру початок, а кінцеве - кінець. Крок - крок лічильника циклів. Якщо цей параметр відсутній, то значення кроку приймається рівним 1. Щоб лічильник змінювався за спаданням, використовується від’ємне значення кроку.
Приклад 3. Дан масив Х=(12,24,67,38,56,69) щомісячного випуску продукції в 1-му півріччі. Визначити випуски продукції за 1- й і 2 - й квартали.
Sub Р3()
Dim x As Variant
Dim kv1 As Single, kv2 As Single, i As Integer
x=Array(12,24,67,38,56,69)
kv1 = 0: kv2= 0
For i = 1 To 3
kv1=kv1+x(i)
kv2=kv2+x(i+3)
Next i
MsgBox " випуск продукції за 1-ий квартал =" & kv1
MsgBox " випуск продукції за 2-ий квартал =" & kv2
End Sub
Оператор For Each...Next
Цей оператор дозволяє робити обробку набору об'єктів (наприклад, елементів масиву даних). У цьому випадку немає необхідності використовувати лічильник циклу, тому що циклічний перегляд і обробка виробляється для певних елементів набору.
Синтаксис оператора:
For Each елемент In група
Блок операторів
Next [елемент]
Параметр елемент - змінна типу Variant (ця обов'язкова умова), що представляє елемент сімейства або масиву. Група - ім'я масиву або сімейства. Блок операторів виконується тільки один раз для кожного члена групи.
Найважливіше в операторі For Each…Next те, що не потрібно заздалегідь знати, скільки елементів містить масив або сімейство. Таким чином, не потрібно підраховувати число елементів або перевіряти досягнення кінця групи. Це дозволяє запобігти однієї з найбільш загальних помилок програмування: неправильну індексацію елементів масивів.
Приклад 4. Дано масив А=(ai), i=1,2,...,10. Знайти добуток додатних елементів.
Позначення: p - добуток додатних елементів.
Sub Р4()
Dim a(1 to 10) As Double
Dim p As Single, i As Integer, n As Variant
For i = 1 To 10
a(i) = Val(InputBox("Введіть "& str(i) & “ елемент масиву а"))
Next i
p = 1
For Each n In a
If n > 0 Then p = p * n
Next n
MsgBox "p=" & p
End Sub
Приклад 5. Дана матриця D=(dij), i= 1,2, . . . ,m; j=1,2, . . . ,n (m10, n20). Знайти суми додатних елементів кожного стовпця.
Позначення: sum[j] - сума додатних елементів j-го стовпця.
Sub Р5()
Dim d(1 to 10, 1 to 20) As Single, sum(1 to 20) As Single
Dim i As Integer, j As Integer, n As Integer, m As Integer
n = Val(InputBox("Введіть кількість рядків n"))
m = Val(InputBox("Введіть кількість стовпців m"))
For i = 1 To n
For j = 1 To m
d(i, j) = Val(InputBox("Введіть масив d"))
Next j
Next i
For j = 1 To m
sum(j) = 0
For i = 1 To n
If d(i, j) > 0 Then sum(j) = sum(j) + d(i, j)
Next i
Debug.Print sum(j)
Next j
End Sub
Приклад 6. Дана матриця З=(сij), i=1,2, . . .n; j=1,2,. . . m (n50, m50). Визначити для кожного рядка максимальний елемент і його індекси. (Передбачається, що в кожному рядку є єдиний максимальний елемент).
Позначення: max - максимальний елемент у рядку, jmax - номер стовпця максимального елемента.
Sub Р6()
Dim c(1 to 50, 1 to 50) As Double, max As Double
Dim i, j, n, m, jmax As Integer
n = Val(InputBox("Введіть кількість рядків n"))
m = Val(InputBox("Введіть кількість стовпців m"))
For i = 1 To n
For j = 1 To m
c(i, j) = Val(InputBox("Введіть масив c"))
Next j
Next i
For i = 1 To n
jmax = 1: max = c(i, 1)
For j = 1 To m
If c(i, j) > max Then max = c(i, j): jmax = j
Next j
Debug.Print "max= " & max & “ imax=” & i & " jmax=" & jmax
Next i
End Sub
