
- •§ 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
§ 13. Програми з розгалуженням
Розгалуження — це алгоритмічна конструкція, де спочатку перевіряється деяка умова (значення логічного виразу), а залежно від її істинності чи хибності виконується та чи інша серія команд. Алгоритм (програму), що містить алгоритмічну конструкцію розгалуження, називають алгоритмом (програмою) з розгалуженням. Вивчатимемо такі різновиди розгалужень: 1) повне розгалуження; 2) неповне; 3) вибір.
1. Логічний вираз. Логічний вираз — це засіб записування умов. Логічний вираз може набувати значення True (істинність) або False (хибність). Суть логічних виразів у програмуванні така ж, як і в темі «Електронні таблиці».
Логічні вирази бувають прості та складені. Простий логічний вираз — це два арифметичні вирази, з’єднані символом відношення (=, >, <. >=, <=, <>).
Розглянемо приклади простих логічних виразів та їхніх значень, вважаючи, що змінна х має значення 3, а змінна у — значення 9:
Прості вирази |
Значення |
x=3 |
True |
х > у |
False |
7 Mod х = 1 |
True |
у \ 2 = 3 |
False |
Складений логічний вираз — це прості логічні вирази, з’єднані назвами логічних операцій: Not (не), And (і) та Or (або).
Пріоритет (порядок) виконання логічних операцій такий (за спаданням): 1) Not, 2) And, 3) Or.
Розглянемо означення і відповідні їм таблиці істинності логічних операцій.
Означення 1. Операція логічне заперечення Not, застосована до виразу А (пишуть Not А), дає істинний результат, якщо логічний вираз А є хибний, і навпаки.
A |
Not A |
True |
False |
False |
True |
Означення 2. Операція логічне множення And, застосована до виразів А і В (пишуть A And В), дає істинний результат лише тоді, коли обидва логічні вирази є істинні.
А |
В |
A And В |
True |
True |
True |
True |
False |
False |
False |
True |
False |
False |
False |
False |
Означення 3. Операція логічне додавання Or, застосована до виразів А та В (пишуть A Or В), дає істинний результат, якщо хоча б один з логічних виразів є істинний.
A |
В |
A Or В |
True |
True |
True |
True |
False |
True |
False |
True |
True |
False |
False |
False |
Розглянемо приклади складених логічних виразів та їхніх значень (змінна х має значення 3, а змінна у — значення 9):
Складені вирази |
Значення |
Not у <= 5 |
True |
1 < x And x < 5 |
True |
x > 4 Or у < 5 |
False |
x > 4 Or у > 5 |
True |
Правило 1. Подвійну нерівність 1 < х < 5 записують як складений логічний вираз, наприклад, так:
1 < х And х < 5 або так: х > 1 And х < 5.
Правило 2. Сукупність нерівностей вигляду х < 1 або х > 5 кодують так: х < 1 Or х > 5.
Довідка 1. Значення логічних виразів можна присвоювати змінним, наприклад, b = х < 5. Такі змінні називають змінними логічного типу, що має назву Boolean, і в кодах їх оголошують у команді Dim і гак: Dim <змінна> As Boolean.
Довідка 2. Текстові дані можна порівнювати, наприклад, так:
t = "ТАК", с <> "С". Перший вираз істинний, якщо змінна t раніше набула значення "ТАК", а другий, якщо значення змінної с не збігається із символом "С". Детальніше порівняння текстів розглянемо далі.
Завдання. Виконайте вправи 1-6 після тексту параграфа.
2. Команда розгалуження IF. Повна форма. Загальний вигляд повної команди розгалуження такий:
If <логічний вираз> Then <серія 1> Else <серія 2> |
Дія команди. Якщо значення логічного виразу істинно, то виконується серія 1, якщо воно хибне, то виконується серія 2 команд. Таку команду записують в одному рядку.
Розгляньте графічні схеми повного розгалуження (рис.1.14).
Рис 1.14. Графічні схеми повного розгалуження
Задача 1. Увести будь-яке значення x й обчислити значення складеної функції y, яка задана формулою
Розглянемо на рис.1.15 графічні схеми алгоритму.
Рис.1.15. Блок-схема і структурна схема алгоритму обчислення складеной функції
Розглянемо код розв’язування задачі 1.
Dim x As Single, y As Single
x=InputBox(“Введіть x”)
If x>0 then y=x+3 Else y=x-5
<вивести x, y>
3. Блок If — End If. Повне розгалуження можна реалізувати за допомогою конструкції If—End If, де потрібно дотримуватися такого багаторядкового написання:
If <умова> Then <серія 1> Else <серія 2> End If |
Попередній код треба переписати так:
Dim х As Single, у As Single
x= InputBox("Введіть x")
If x > 0 Then
у = x + 3
Else
у = x-5
End If
<вивести x, y>
Завдання. Реалізуйте проект розв’язування задачі 1.
Задача 2. З’ясувати, чи точка із заданими координатами (х, у) втрапляє в замкнену область, обмежену кривою у = sin(x) та відрізком [0, π] осі абсцис.
Розв’язування. Відповідь дасть повідомлення (р = "Так" або р = "Ні"). Шуканий код матиме такий вигляд:
Dim х As Single, у As Single, p As String
Const pi = 3.1415
x = InputВох("Введіть x")
у = lnputBox("Введіть у")
If x >= 0 And x <= pi And у >= 0 And у <= cos(x) Then
p = "Так"
Else
p = "Hi"
End If
<вивести p>
Завдання 1. Перепишіть і виконайте код, застосувавши звичайну форму команди повного розгалуження.
Завдання 2. Модифікуйте код, щоб перевірити, чи потрапляє точка (х, у) в круг радіуса 5 з центром: а) у початку координат; б) у точці (1, 1). Підказка: умова потрапляння в перший круг: х2+у2<=25.
Задача 3. Обчислити і вивести значення складеної функції у у деякій заданій користувачем точці х, якщо
Для розв’язування цієї задачі застосовують алгоритмічну конструкцію «вкладені розгалуження». Розгляньте код для задачі 3.
'Обчислення складеної функції
Dim х As Single, у As Single
x = InputBox(" Введіть x")
If x < -1 Then
у = Log(Abs(x))
Else
If x >= -1 And x < 1 Then
у = Sin(x)
Else
у = Cos(x)
End If
End If
<вивести X, y>
Нагадаємо, що у VB до назв тригонометричних функцій треба додавати слово Math.
Завдання. Реалізуйте проект розв’язування задачі 3.
4. Коротка форма команди розгалуження. Коротка форма команди розгалуження має такий вигляд:
If <логічний вираз> Then <серія команд> |
Тут серія команд — це одна або декілька команд, які записують з: словом If в одному рядку програми. Команди в серії відокремлюють одну від одної двокрапкою. Інших команд у такому рядку не пишуть.
Дія команди. Якщо значення логічного виразу істинне, то виконується серія команд. Якщо логічний вираз хибний, то серія команд ігнорується, виконується команда з наступного після If рядка програми.
Задача 4. З’ясувати, чи деяке число п: 1) додатне; 2) парне: 3) ділиться без остачі на 3.
Розв’язування. Відповідь дає повідомлення р.
Dim n As Integer, р As String
n = InputВох("Введіть будь-яке ціле число")
If n > 0 Then р = "число додатне": <вивести р>
If n Mod 2 = 0 Then р = "число парне ": <вивести р>
If n Mod 3 = 0 Then р = "число ділиться на 3 ": <вивести р>
Тут замість <вивести р> слід записати команду виведення повідомлення у текстове поле або у вікно повідомлень, або у консольне вікно.
5. Задача про країни. Розглянемо задачу про країни, де буде застосовано декілька команд розгалуження.
Задача 5. Надати туристові довідку про назву столиці та кількість заселення конкретної країни з такого переліку: Угорщина, Італія, Греція, Туреччина, Єгипет, Непал, Бельгія.
Ознайомимося з кодом розв’язування задачі:
' Довідка про країни
Dim kr As String, st As String, nas As Integer
kr = InputВох("Введіть назву країни")
If kr = "Угорщина" Then st = "Будапешт": nas = 11
If kr = "Італія" Then st = "Рим": nas = 60
If kr = "Греція" Then st = "Афіни": nas = 10
If kr = "Туреччина" Then st = "Анкара": nas = 55
If kr = "Єгипет" Then st = "Каїр": nas = 53
If kr = "Непал" Then st = "Катманду": nas = 18
If kr = "Бельгія" Then st = "Брюссель": nas = 10
<вивести "Столиця-" & st & ", населення -" & nas & "млн осіб">
Перевіримо код. Якщо турист зібрався штурмувати Еверест, то його діалог з комп’ютером виглядатиме так:
Введіть назву країни — Непал
Столиця — Катманду, населення — 18 млн осіб.
Завдання 1. Реалізуйте програму в консольному режимі.
Завдання 2. Реалізуйте візуальний проект розв’язування задачі 5. Виведення виконайте на форму у два текстові поля.
Завдання 3. До коду додайте команди з даними про ще три І Країни.
6. Команда безумовного й умовного переходу. Для передачі керування у програмі використовують команду переходу
GoTo <позначка> |
Дія команди. Відбувається перехід до позначеного рядка.
Позначкою може бути число або слово, які записані на початку рядка. Після позначки-числа може стояти двокрапка. Після текстової позначки двокрапка обов’язкова.
Наведену команду ще називають командою безумовного переходу. Наприклад, щоб перейти до рядка з позначкою 50 чи з позначкою Perehid1:, використовують команду GoTo 50 або GoTo Perehidl.
Команда умовного переходу є частковим випадком короткої форми команди розгалуження. Вона має такий вигляд:
If <логічний вираз> Then GoTo <позначка> |
Дія команди. Якщо значення логічного виразу істинне, то відбувається перехід до зазначеного рядка. Якщо воно хибне, то виконується наступний рядок програми. Наприклад, If <сонце зійшло> Then GoTo shkola.
Зауваження. Не рекомендують часто і безсистемно використовувати команду переходу, особливо до попередньої частини програми.
7. Задача про числа, або як обчислюють суми і кількості. Розглянемо задачу про введення з клавіатури декількох чисел і їх аналіз за допомогою коротких умовних команд.
Задача 6. Користувач уводить з клавіатури цілі числа. Обчислити суму введених додатних чисел і визначити кількість від’ємних.
Розв’язування. Домовимося, що введення чисел припиняється тоді, коли користувач введе число 0. Отже, наступний код надаватиме можливість вводити та аналізувати декілька чисел, доки неї буде введено число 0 (ознака закінчення роботи користувача і про
Розділ 1. ОСНОВИ ПРОГРАМУВАННЯ 2