- •§ 1. Поняття про інформаційне моделювання
- •Опорний конспект
- •§ 2. Етапи розв’язання задач на комп’ютері
- •§ 3. Середовища розробки проектів
- •§ 4. Властивості елементів керування
- •§ 1. Поняття про інформаційне моделювання 2
- •Контрольна робота № 1
- •§ 5. Створення проектів
- •§ 6. Основні поняття мови програмування
- •9. Процедура кнопки «Обчислити» для задачі про калькулятор.
- •§ 7. Алгоритм та його властивості
- •Запитання
- •§ 8. Різновиди алгоритмів
- •Запитання
- •§ 9. Типи даних
- •§ 10. Лінійні програми
- •Запитання та вправи
- •Контрольна робота № 2
- •§11. Введення даних і виведення результатів
- •§ 12. Текстові файли даних
- •§ 13. Програми з розгалуженням
- •§ 1. Поняття про інформаційне моделювання 2
- •Запитання
- •§ 14. Елементи керування прапорці і перемикачі
- •§ 15. Алгоритмічна конструкція вибір
- •Контрольна робота № 3
- •§ 16*. Списки
- •§ 17. Підпрограми. Функції користувача
- •§ 18. Підпрограми. Процедури користувача
- •§ 19. Цикли. Цикл з параметром
- •§ 20. Задачі пошуку даних. Цикл «доки»
- •§ 21. Застосування циклів
- •Контрольна робота № 4
- •Розділ 2. Складені структури даних
- •§ 22. Одновимірні масиви. Створення масивів
- •§ 23. Пошук даних в одновимірному масиві
- •1. Пошук даних у масиві за заданим критерієм.
- •5. Проект «На метеостанції». Застосування масивів і процедур користувача у vb.
- •§ 24. Впорядкування одновимірного масиву
- •§ 1. Поняття про інформаційне моделювання 2
- •4. Моделювання предметних областей за допомогою масивів.
- •§ 25. Двовимірні масиви. Створення масивів
- •§ 26*. Опрацювання двовимірних масивів
- •1. Елементи керування DataGridView (vb) та DataGrid (vba).
- •Контрольна робота № 5
- •§ 27. Опрацювання текстових даних
- •§ 28. Структури даних (записи)
- •§ 1. Поняття про інформаційне моделювання 2
- •§ 29. Файли даних прямого доступу
- •5. Vb. Команди для роботи з файлами даних прямого доступу.
- •§ 30. Застосування файлів даних послідовного доступу
- •§ 31. Графіка у vb
- •§ 32. Поняття про об’єктно-орієнтоване програмування
- •Розділ 3. Задачі
- •Складніші задачі*
- •Розділ 4. Vba у програмах пакету ms office
- •§ 33. Застосування vba у ms word
- •§ 34. Vba у програмі ms excell
- •§ 35. Задача про облік товарів на складі
- •§ 36. Розв’язування математичних задач
- •§ 37. Робота 3 базами даних
- •Список літератури
- •§ 1. Поняття про інформаційне моделювання 2
§ 19. Цикли. Цикл з параметром
Цикл — це процес повторення дій (виконання певної серії команд деяку кількість разів).
1. Види циклів. Розглядають цикли, де кількість повторень відома заздалегідь, і цикли, де кількість повторень заздалегідь не відома, але її можна визначити під час виконання циклу. Обчислити суму п’яти членів числової послідовності — це задача на використання склу з відомою кількістю повторень.
Задача 1. Обчислити суму (s) чисел від 1 до 5.
Розв’язання. Математично задача розв’язується так: s=l+2+3- + 4 + 5. Чи можете ви швидко додати ці числа і переконатися, що s = 15? Комп’ютер розв’язує цю задачу інакше. Розгляньте код для комп’ютера, створений за допомогою команди If-Then GoTo, і дізнаєтеся, як «мислить» комп’ютер, розв’зуючи задачу 1:
Dim і, s As Integer
s = 0
і = 1
start: If і > 5 Then GoTo finish
s = s + і
і = і +1
GoTo start
finish: <вивести s>
Наведена програма — це приклад циклічного алгоритму з «передумовою». Умову виходу з циклу і > 5, яка дає відповідь на запитання «Чи не пора закінчити роботу?», комп’ютер перевіряє пера виконанням трьох дій у циклі.
Завдання 1. Виконайте код з ручкою в руках або в консольному режимі і переконайтеся, що результат буде 15, а кількість повторень однотипних дій у циклі — 5.
Завдання 2. Перебудуйте код, щоб умова виходу з циклу перевірялась після виконання основних дій у циклі. Підказка:
s = 0
і = 1
start: s = s + і: і = і +1
If і <= 5 Then GoTo start
<вивести s>
Такий цикл називають «циклом з післяумовою».
2. Поняття про «нескінченні» цикли. Кількість повторень у цикл: має бути скінченною. Утворення «нескінченних» циклів — часта помилка початківців. Якщо пропустити у попередньому коді команд? і = і + 1, то отримаємо «нескінченний» цикл. «Нескінченні» цикли призводять до так званого «зависання» комп’ютера, коли користувач не отримає жодних результатів (як у цьому випадку, алгоритм буде нерезультативний), або до безупинного виведення на екран непотрібних результатів. Подальша робота з такою програмою стає неможливою. Виконання програми потрібно зупинити шляхом натискання на клавіші Ctrl + Break чи інакше.
3. Цикл з параметром (For—Next). Задачу 1 значно простіше розв’язати за допомогою алгоритмічної конструкції «цикл з параметром» (інші назви — цикл «для», цикл For).
Цикл з параметром має такий загальний вигляд:
For і = <вираз1> То <вираз2> Step <вираз3> <серія команд> Next і |
Рядок For-To-Step читають так: «для і від значення виразу 1 до значення виразу 2 з кроком, що заданий виразом 3, виконати серію команд». Перший рядок у конструкції циклу є командою, яку називають заголовком циклу. Next — це команда, яка фіксує кінець деякої серії команд. Вона змінює значення параметра «і» на величину кроку. Серія команд утворює тіло циклу. Змінну «і» називають параметром циклу.
Дія команди. Спочатку параметру циклу (тут «і») присвоюється значення виразу 1. Якщо це значення менше-рівне значення виразу 2, зо виконується серія команд; значення параметра змінюється на значення кроку і знову порівнюється зі значення виразу 2 і т.д. Коли значення параметра перевищить значення виразу 2, то виконання никлу завершується і виконуватиметься наступна після Next команда. Якщо крок дорівнює одиниці, то Step <вираз 3> можна не писати.
Задача 2. Дослідити, яке буде значення змінної s після виконання команди циклу:
s = 0
For і = 1 То 9 Step 2
s = s + і
Next і
Розв’язування. Виконаємо код з ручкою в руках і випишемо всі проміжні значення змінних s та і:
s = 0,
і=1, якщо 1 <= 9, то s = 0+1 = 1,
і = 1 + 2 = 3, 3 <=9= так, s=1 +3 = 4,
і = 3 +2 = 5, 5<= 9=так, s=4+ 5 = 9,
і=5 +2 = 7, 7<=9= так, s=9 +7 = 16,
і = 7 +2 = 9, 9<=9=так, s=16 + 9 = 25,
і = 9 + 2 = 11,11<9 = ні, вихід з циклу.
Відповідь: s = 25.
Інший спосіб: треба догадатися, що записані команди означають обчислення такої суми: 0 + 1+ 3 + 5 + 7 + 9, що дорівнює 25.
Розгляньте (рис. 1.22) графічні схеми циклу «для», заголовок якого має, наприклад, такий вигляд (крок = 1): For і = а То b.
Зверніть увагу! У блок-схемі застосовано новий вид блоків для зображення алгоритмічної конструкції «цикл для».
Довідка 1. Ім’я змінної після слова Next можна не писати.
Довідка 2. Якщо тіло циклу коротке, то всю конструкцію цикл? можна розмістити в одному рядку коду. Тоді код стає компактнішим (лише не забувайте між командами ставити двокрапки), наприклад, For і = 1 То 9 Step 2 : s = s + і: Next.
Рис. 1.22. Блок-схема і структурна схема циклу «для»
4. Обчислення сум і добутків за допомогою циклу For. Розглянемо типові задачі, які ведуть до використання циклів — обчислена сум і добутків чисел.
Задача 3. Обчислити суму (s) чисел від 1 до п, де нехай п = 100 за допомогою циклу For.
Розв’язування. Математично задача розв’язується так: s = 1 + 2 - 3 + ... + 100 = 5050.
Графічні схеми алгоритму. Розгляньте графічні схеми алгоритму розв’язування задачі 3 (рис.1.23). Замість традиційних назв і таї для змінних використаємо назви Число і Сума.
Рис. 1.23. Блок-схема і структурна схема для задачі 3
Наступний код дає розв’язок задачі:
'Сума чисел
Dim Число As Integer, Сума As Integer, n As Integer
n = InputВох(“Введіть n”)
Сума = 0
For Число = 1 To n Step 1
Сума = Сума + Число
Next Число
<вивести Сума>
Правило. Для обчислення суми відповідній змінній Сума потрібно присвоїти значення нуль перед циклом.
Завдання 1. Виконайте код у візуальному режимі і переконайтеся, що результат 5050. На форму треба вставити два текстові поля (одне — для відображення п, друге — для суми) і кнопку «Обчислити», код якої наведено вище. Команду <вивести Сума> слід замінити командою TextBox2.Text = Сума. Відобразити число п у полі 1 можна командою TextBox1.Text = n.
Завдання 2. Виконайте код і обчисліть таку суму:
s = 1 + 2 + 3 + .. + 500.
Завдання 3. Модифікуйте код, щоб обчислити таку суму:
s= 2 + 4 + 6 +.. + 200.
Завдання 4. Модифікуйте код, щоб обчислити суму непарних чисел від 11 до 99.
Завдання 5*. Модифікуйте код, щоб обчислити
s = sinl + sin2 + sin3 + ...+ sinl0.
Задача 4. Обчислити добуток чисел від 1 до 8 за допомогою циклу For.
Розв’язування. Потрібно скласти код для обчислення добутку d=1*2*3*... *8. Переконайтеся, що наступний код дає розв’язок задачі:
'Добуток чисел
Dim n, d
n = 8 : d = 1
For і = 1 То n Step 1
d = d * і
Next і
<вивести "Добуток = " + Str(d)>
Правило. Перед обчисленням добутку відповідній змінній d треті присвоїти значення 1.
Завдання 1. Реалізуйте код.
Завдання 2. Модифікуйте код для обчислення добутку парних чисел від 2 до 10.
Завдання 3*. Модифікуйте візуальний проект і код, щоб обчистити за допомогою одної команди циклу суму і добуток чисел від 1 :: 8, а також середнє арифметичне, середнє геометричне і середнє гармонійне цих чисел. Вивести текстове повідомлення, яке середнє більше. Формули відшукайте в мережі (почніть з www.google.com.ua).
Завдання 4*. На прикладі перших десяти натуральних чисел дослідіть, що більше: середнє квадратичне чи середнє арифметичне чисел. Дізнайтеся, які ще є види середніх значень і які співвідношення між всіма середніми значеннями (див. www.google.com.ua).
5. Побудова таблиць. За допомогою циклу зручно виводити на екран таблиці з даними. Тут таблицями ми називаємо нерозграфлені стовпці з даними.
З
адача
5.
Побудувати
(вивести на екран) таблицю квадратів
чисел від 10
до
20.
Розгляньте на малюнку поряд код : результати його виконання у вікні Immediate (VBA).
Задача 6. Побудувати таблицю відповідності між морськими милями та кіло-1 метрами для 1, 2, 3, ..., n миль, якщо відомо, що 1 морська миля = 1,852 км. Значення п (кількість рядків у таблиці — близько 10) задати в режимі діалогу.
Розв’язування. Код може мати такий вигляд:
'Таблиця мір
Dim myli As Integer, n As Integer, km As Single
n = InputBox(“Кількість рядків у таблиці”)
For myli = 1 To n
km = 28.353495 * myli
<вивести myli, km>
Next
Розгляньте код і результати у вікні середовища VB (рис. 1.24).
Рис. 1.24. Розв’язування задачі 6 у VB
Завдання 1. Реалізуйте останні два коди у консольному режимі.
Завдання 2. Модифікуйте коди, щоб забезпечити виведення таблиць (стовпців даних) у текстові файли.
6. Виведення таблиць з даними у багаторядкове текстове поле. Щоб створити візуальний проект розв’язування задачі 5 чи 6, навчимося виводити таблиці даних у багаторядкове текстове поле TextВох (VB і VBA) чи у багаторядковий напис (лише у VB).
Багаторядкове поле чи напис створюють на етапі конструювання форми, надаючи значення True властивості Multiline об’єкта TextBox чи Label.
Наше завдання — створити таблицю з даними як єдине текстове дане. Під час формування такого текстового даного застосовують рядок нульової довжини ("") і до нього додають наступний рядок з даними разом з деякою стандартною сталою VbCrLn у VB (або vbCr у VBA). Ця стала містить код дії переходу на новий рядок, тобто забезпечує розташування рядків один під одним у вигляді таблиці (стовпців даних).
Щоб стовпці в таблиці не «злипалися» між ними створюють пропуски. Для цього дані форматують або застосовують деяку нестандартну текстову сталу з пропусками, наприклад, Space = “ ” чи стандартну сталу vbTab (або комбінують ці засоби).
Отже, щоб створити таблицю, перед циклом треба записати
Space =” “
TextBox1.Text =""
У тілі циклу замість псевдокоду <вивести і, z> мають бути команди
t = Str(i) + Space + Str(z)
TextBox1.Тext = TextBox1.Text + t + vbCr 'VBA.
Зауваження. Таблиці можна виводити у вікно повідомлень. Для дього у попередньому коді потрібно скрізь замість TextBox1.Text записати деяку текстову змінну d і після виконання циклу (або в циклі) виконати команду MsgBox d у VBA чи MessageBox.Show(d) у VB.
Завдання 3. Створіть проект для розв’язування задачі 6. Підказка: код кнопки «Обчислити», в якому реалізовано виведення результатів у вигляді таблиці в багаторядкове текстове поле TextBох1, може бути таким:
'Таблиця мір
Dim myli As Integer, n As Integer, km As Single
n = InputBox(“Кількість рядків у таблиці”)
TextBox1.Text =""
For myli = 1 To n
km = 28.353495 * myli
t= Str(myli) + ” " + vbTab + Str(km)
TextBox1.Text = TextBox1.Text + t + vbCr 'VBA
Next
Для середовища VB замість vbCr треба писати vbCrLn.
Завдання 4. Модифікуйте код, щоб у першому рядку був такий текст-заголовок таблиці: «Милі Кілометри».
Завдання 5. Модифікуйте код для виведення таблиці квадратів і кубів чисел від 10 до 20.
Завдання 6. Модифікуйте попередній код, щоб діапазон чисел можна було задавати в режимі діалогу.
7. Виведення таблиці з даними у список. Дані у вигляді таблиці можна виводити в об’єкт ListBox за допомогою методу Add. Новий рядок автоматично відображається у вікні об’єкта-списку. Для цього замість псевдокоду <вивести і, z> достатньо двох команд:
t= Str(i) +" "+Str(z)
ListBoxl.Items.Add t 'VB
ListBoxl .Addltem t 'VBA
Завдання 7. Доповніть попередні коди виведенням результатів у список.
Висновок. Результати розв’язування задач у вигляді окремих даних чи таблиць можна виводити: а) у консольне вікно чи у вікно інтерпретації; б) у текстовий файл; в) у звичайне чи багаторядкове поле чи напис; г) у вікно повідомлень; д) у список.
Вправи
1. Які значення змінних s і d після виконання кодів:
a) s = 0 |
б) d = 1 |
For х = 1 То 5 Step 2 |
For a = 1 To 5 |
s = s + 2 * x |
d = d * a |
Next x |
Next a |
в) s=0 |
г) d = 1: m = 6 |
For x = 10 To 0 Step -2 |
For x = 1 To m Step m / 3 |
s = s + x |
d = d * x |
Next x |
Next x |
2. Виведіть у вигляді таблиці з двома стовпцями і, ai послідовність чисел ai= і2 - 30, де і=1,2,…,10:
а) у консольне вікно;
б) у текстовий файл;
в) у багаторядкове поле чи напис;
г) у вікно повідомлень;
д) у список.
3. Розв’яжіть задачу № 7 свого варіанта з розділу «Задачі», застосувавши 2-3 способи виведення результатів.
4. Розв’яжіть задачу № 8 свого варіанта з розділу «Задачі».
