Практична робота 7 на тему Програмування розгалужених обчислювальних процесів
« НазадПрактична робота №7 Тема: Програмування розгалужених обчислювальних процесівМета: Навчитись використовувати засоби Visual Basic для програмування розгалужених обчислювальних процесів. Хід роботи Запишіть у зошит тему і мету роботи. Складіть Звіт ПР7_Власне прізвище виконання практичної роботи. Завдання 1.Уважно вивчіть теоретичні відомості. Теоретичні відомості Досить часто виникає необхідність змінити порядок виконання команд, залежно від результату виконання деякої умови. У VisualBasic існують оператори, призначені для управління порядком виконання команд. Є два основних типи таких операторів: умовний оператор (If) та оператор вибору (SelectCase). У свою чергу, оператор If буває двох видів: If...Thenта If...Then...Else. Конструкція If...Thenзастосовується, коли необхідно виконати певні дії залежно від деякої умови. Конструкція If...Then...Elseвикористовується у тому випадку, коли необхідно виконати різні дії залежно від умови. Умовні вирази Основою для прийняття рішень в розглянутих конструкціях операторів є логічні вирази. Вони повертають одне з двох значень: Trueабо False. В логічних виразах застосовуються оператори порівняння:
Над логічними виразами можна виконувати операції алгебри Буля: - аnd (і) - повертає значення True, якщо всі вирази, які беруть участь в конструкції, мають значення True. В інших випадках повертається значенняFalse; - Or(або) - повертає значення True, якщо хоча б один з виразів, які беруть участь у конструкції, має значення True. У випадку, коли всі вирази мають значення False, повертається значення False; - Хог (виключаюче або, додавання за модулем 2) - повертає значення True, якщо тільки один із виразів, що беруть участь в конструкції, має значення True. У всіх інших випадках повертається значення False; - Not (ні) - повертає протилежне до значення виразу значення. Конструкція If... Then Конструкція If... Thenзастосовується в тому випадку, коли необхідно виконати один або групу операторів, коли значення заданої умови дорівнює True. Синтаксично дана конструкція може мати однорядковий та багаторядковий вигляд. Однорядковий оператор має такий синтаксис: If умова Then оператор У випадку, якщо при виконанні умови потрібне виконання блоку операторів, використовується багаторядковий оператор, що має такий синтаксис: If умова Then оператори End If Ключове слово End If означає кінець багаторядкового оператора, і його наявність у цьому випадку обов’язкова. Якщо значення заданої умови дорівнює True, то будуть виконані операції, що слідують за ключовим словом Then. Якщо умова не виконується (логічний вираз має значенняFalse), то Visual Basic переходить до виконання наступного оператора у однорядковому варіанті умовного оператора чи першого оператора після End If у багаторядковому варіанті умовного оператора. Конструкція If... Then... Else Конструкція If ... Then ... Elseаналогічна конструкції If ... Then, тільки дозволяє задати дії, що виконуються як при виконанні логічної умови, так і у разі її невиконання. Ця конструкція має такий синтаксис: If умова Then операториї, які виконуаються при значенні умови True Else оператори, які виконаються при значенні умови False End If Команда Ifможе перевірити на істинність тільки одну умову. Якщо ж є потреба здійснити передачу управління залежно від результатів перевірки декількох умов, то це можна зробити за допомогою оператора Else Іf. Синтаксис такої конструкції: If умова Then оператори Else lf умова Then оператори Else оператори End If Конструкція Select Case Конструкція Select Case дозволяє обробляти в програмі декілька умов. Працює конструкція так. Спочатку визначається значення заданого виразу. Потім отримане значення порівнюється зі значеннями, що задаються після операторів Case конструкції. Якщо знайдено шукане значення, то виконуватимуться команди, розташовані між цим і наступним ключовим словом Case або End Select. Після виконання управління передається конструкції, наступній за ключовим словом End Select. Синтаксис конструкції Select Case такий: Select Case вираз Case значення 1 Конструкція 1 Case значення 2 конструкція 2 .... Case значення N конструкція N End Select Зауважимо, що оператор Select Case може виконати не більше ніж одну з послідовностей конструкцій, які містяться в ній. Після того, як одне із значень перевірки збігається зі значенням виразу, буде виконано відповідну послідовність команд і оператор закінчить свою роботу. Решта умов перевірятися не буде. При створенні коду процедур можна використовувати стандартні функції Visual Basic. Див. нижче.
Завдання 2. Розробіть додаток для обчислення суми виплат по вкладу у банку, якщо річна відсоткова ставка становить 13% при вкладі більшому 4000 тис. грн., а для менших за розміром вкладів – 12%. Методичні рекомендації При заданому розмірі початкового вкладу V, заданому терміні вкладу T і річній процентній ставці p, сума виплат S обчислюється за формулою. При цьому річна відсоткова ставка обчислюється за формулою У додатку потрібно задавати значення початкового розміру вкладу V, значення терміну вкладу V, значення відсоткової ставки p і обчислювати значення суми виплат S у відповідності з заданою формулою. Значення цих величин можна описати типом – дійсні числа. Алгоритм обчислювального процесу має розгалуження при обчисленні відсоткової ставки залежно від розміру початкового вкладу. При розробці інтерфейсу користувача потрібно врахувати необхідність введення даних про вкладника, розмір його початкового вкладу і термін вкладу. Додаток має повідомляти суму виплат. Доречно розробити форму з 5 написами і 3 текстовими полями. Потрібно ще у формі мати одну командну кнопку, яка б при клацанні на ній запускала процедуру обчислення суми виплати. Для реалізації розгалудженого обчислювального процесу у програмному коді має бути застосований умовний оператор, у даному разі доречно застосувати конструкцію If... Then ... Else. Звісно, змінні мають бути описані у коді процедури. Зауваження. Цей проект додатку не є єдиноможливим. Можна запропонувати інші варіанти. Реалізація проекту у Visual Basic. 1. Активізуйте Visual Basic: Пуск−> Программы−> Visual Basic. 2. Розробіть форму з назвою Виплати_розгалужений, в якій будуть такі об’єкти: - 5 написів Label1 – Label5 (один напис для позначення даних про фізичну особу – ПІБ, один напис для позначення початкового вкладу, наступний напис - для терміну вкладу, один напис для позначення суми виплат і ще один напис – для виведення результату обчислення суми виплат), - 3 текстових поля Text1 – Text3 для введення даних (одне поле для введення даних про фізичну особу – ПІБ, одне для введення розміру початкового вкладуі ще одне текстове поле - для значення терміну вкладу) і -одна командна кнопка Command1. З командною кнопкою Command1 пов’язана подія – клік на цій кнопці, який запускає на виконання процедуру обчислення суми виплат. - Результат обчислення виводиться у напис з ім’ям Label5. Програмний код процедури потрібно розробити. 3. У вікні властивостей форми задайте для властивості Caption значення Виплати, для властивості ForeColor виберіть зі списку вказаний на рисунку колір. 4. Для всіх написів задайте відповідне значення (властивість Caption), колір фону і вирівнювання по центру у відповідності з наведеним нижче рисунком. 5. Для текстових полів також задайте зачення „пусто” (властивість Text), вирівнювання по центру у відповідності з наведеним нижче рисунком. 6. Дотримайтесь вказаного розташування об’єктів і усвідомте логічний зв’язок між об’єктами: Label1 −> Text1 Label2 −> Text2 Label3 −> Text3 7. Для командної кнопки Command1 встановіть значення Обчислити (властивість Caption), вирівнювання по центру у відповідності з рисунком нижче. 8. Двічі клацніть на командній кнопці і у вікні редактору коду створіть код процедури як у наведеному нижче вікні, після чого закрийте вікно коду. (Збільшіть масштаб перегляду для прочитання коду процедури). У даному варіанті коду процедури змінна: a– зберігає значення початкового вкладу; b– зберігає значення річної відсоткової ставки; c– зберігає значення терміну вкладу; d – зберігає значення суми виплати. Значення суми виплати виводиться у форму у напис Label5. Змінні явно описані за допомогою ключового слова Dim. Тому ці змінні є локальними, вони є видимими лише для даної процедури. Змініть текст процедури, замінивши імена змінних: a на Поч Вклад; b на Ставка; c на Терм; d на Сума Виплат. 9. Закрийте вікно коду. 10. Збережіть форму і проект у своїй папці на cервері: збереження форми: меню File −> Save Form −> у діалоговому вікні вкажіть місце збереження і ім’я форми Виплати_розгалужений, після чого натисніть кнопку Сохранить; збереження проекту: меню меню File −> Save Project −> у діалоговому вікні вкажіть місце збереження і ім’я проекта MyProject_розгалужений, після чого натисніть кнопку Сохранить. 11. Запустіть розроблений проект на виконання, скориставшись відповідним меню або кнопкою Старт панелі інструментів. При цьому на екрані з’явиться вікно форми Виплати_розгалужений, в якому в текстових полях потрібно задати значення відповідних величин і натиснути кнопку Обчислити. Після виконання обчислень у формі у написі Label5 буде виведено результат обчислення суми виплат. 12. Щоб надати розробленому проекту статусу незалежного додатку, потрібно зберегти цей проект як виконуваний (скомпільований файл) з розширенням ЕХЕ. Для цього потрібно у меню File вікна редактора Visual Basic клацнути на команді Make MyProject_розгалужений.exe і вказати місце збереження та ім’я файлу. Збережіть додаток у вашій власній папці на сервері. Завдання 3. Розробіть додаток для розв’язання довільного квадратного рівняння із застосуванням у процедурі конструкції If ... Then ... Else. Математична модель додатку. Загальний вигляд квадратного рівняння такий Де a, b, c – дійсні числа. Щоб отримати розв’язок на множині дійсних чисел (тобто знайти такі дійсні числа, що при підстановці у наведене рівняння замість х буде отримано тотожність), потрібно проаналізувати коефіцієнти a, b, c рівняння і обчислити дискримінант , від значення якого залежить кількість розв’язків і їх значення. Якщо дискримінант має від’ємне значення – розв’язків а множині дійсних чисел не існує. Якщо дискримінант дорівнює нулю – рівняння має єдиний розв’язок, що обчислюється за формулою. Якщо ж дискримінант мвє додатнє значення – існує два розв’язки, які очислюються за формулами. Реалізація проекту у Visual Basic. При розробці проекту можна по-різному організувати інтерфейс користувача і програми, обираючи різні засоби Visual Basic. 1 спосіб 1. Активізуємо новий проект. Розробимо форму з 6 написами, 3 текстовими полями і однією командною кнопкою у відповідності з наведеним нижче рисунком. 2. Створимо код процедури обробки події – клацання на командній кнопці Обчислити. Для реалізації розгалужень застосуємо конструкцію If... Then та If ... Then ... Else . У вікні редактора коду створіть програмний код, коментарі вводити не потрібно: Private Sub Command1_Click() Dim a, b, c, D, x1, x2 As Double ‘ явний опис змінних ‘ присвоєння значення текстового поля Text1 форми змінній а a = Val(Text1.Text) ‘ присвоєння значення текстового поля Text2 форми змінній b b = Val(Text2.Text) ‘ присвоєння значення текстового поля Text3 форми змінній с c = Val(Text3.Text) ‘ Обчислення дискримінанта D = b * b - 4 * a * c ‘ випадок, коли всі коефіцієнти квадратного рівняння = нулю If (a = 0) And (b = 0) And (c = 0) Then Label5.Caption = "Розв'язків безліч!" ‘ випадок лінійного рівняння (а=0 , b не дорівнює нулю bx+c=0) If (a = 0) And (b <> 0) Then Label5.Caption = -c / b ‘ випадок, коли коефіцієнти квадратного рівняння a і b = 0, а с не нуль If (a = 0) And (b = 0) And (c <> 0) Then Label5.Caption = "Розв’язків не існує!" ‘ випадок, коли а не дорівнює нулю, а дискримінант від’ємний If (a <> 0) And (D < 0) Then Label5.Caption = "Розв’язків не існує!" ‘ випадок, коли а не дорівнює нулю, а дискримінант додатній If (a <> 0) And (D > 0) Then x1 = (-b - Sqr(D)) / (2 * a) Label4.Caption = x1 x2 = (-b + Sqr(D)) / (2 * a) Label5.Caption = x2 End If If (a <> 0) And (D = 0) Then ‘ випадок, коли дискримінант дорівнює нулю Label4.Caption = “Розв’язок один!” Label5.Caption=-b/(2*a) End If End Sub 3. Закрийте вікно коду. 4. Збережіть форму і проект у своїй папці на локальному комп’ютері. Збереження форми: меню File −> Save Form −> у діалоговому вікні вкажіть місце збереження Мои документы і ім’я форми F_KVR, після чого натисніть кнопку Сохранить. Збереження проекту: меню меню File −> Save Project −> у діалоговому вікні вкажіть місце збереження Мои документы і ім’я проекта Project_KVR, після чого натисніть кнопку Сохранить. 5. Запустіть розроблений проект на виконання, скориставшись відповідним меню або кнопкою старт панелі інструментів. При цьому на екрані з’явиться вікно форми F_KVR, в якому в текстових полях потрібно задати значення відповідних коефіцієнтів і натиснути кнопку Обчислити. Після виконання обчислень у формі у написах Label4 і Label5 буде виведено результат обчислення розв’язків рівняння. 6. Щоб надати розробленому проекту статусу незалежного додатку, потрібно зберегти цей проект як виконуваний (скомпільований файл) з розширенням ЕХЕ. Для цього потрібно у меню File вікна редактора Visual Basic клацнути на команді Make Project_KVR.exe і вказати місце збереження та ім’я файлу. Збережіть додаток у вашій власній папці на сервері. Виконайте декілька варіантів обчислень. 2 спосіб Розробимо проект з використанням однієї командної кнопки форми, але для організації інтерфейсу між програмою і користувачем застосуємо спеціальні діалогові вікна. Загальна інформація про діалогові вікна Visual Basic Ці вікна бувають двох різновидів: - модальні; - немодальні. Модальне діалогове вікно – це діалогове вікно, з якого не можна перейти до іншого вікна, не закривши поточного. Немодальне діалогове вікно – це діалогове віко, що дозволяє переміщувати покажчик Миші на інше вікно або форму без закриття поточного вікна. Найпростіші з діалогових вікон – це вікна повідомлень і вікна введення даних. Крім цих діалогових вікон існують більш складні діалогові вікна: - діалогове вікно Open для пошуку у файловій структурі потрібного файла; - діалогове вікно Save As для пошуку місця збереження файла і вказанняя його імені; - діалогове вікно Font для вибору шрифту; - діалогове вікно Color для вибору палітри кольорів; - діалогове вікно Print для вказання режиму друку; - діалогове вікно Help для роботи з довідковою системою тощо. Докладно вивчимо вікно повідомлень. Діалогове вікно повідомлення викликається командою MsgBoxабо за допомогою аналогічної функції MsgBox, якл має такий синтаксис: MsgBox(текст [, кнопки] [, заголовок] [, дов_файл, дов_вміст]) де: текст - текст повідомлення в діалоговому вікні. Максимальна довжина тексту 1024 символи. У текст можна вставляти як розділювачі рядків символи переведення каретки Chr(13), переведення рядка Chr(l0); кнопки - числовий вираз, який задає параметри для кнопок управління і значків у діалоговому вікні, і складений з констант, вказаних у табл. 5.6 і 5.7. Якщо значення не вказане, то за замовчуванням присвоюється значення 0; заголовок - текст заголовка діалогового вікна; дов_файл - посилання на файл довідкової системи; дов_вміст - посилання на вміст файла довідкової системи. Приклад: MsgBox ("Привіт!", vbOk + vbInformation, "Повідомлення") Наведемо константи для значків діалогових вікон:
Далі наведемо деякі константи, які визначають наявність кнопок у діалоговому вікні.
Слід додати, що існують константи, які визначають, яка з кнопок буде «активною», тобто на ній знаходитиметься фокус. Так, наприклад, константа vbDefaultButtonlзі значенням 0 встановлює фокус на першій кнопці, vbDefaultButton2 зі значенням 256 встановлює фокус на другій кнопці, - цей перелік можна продовжити. Залежно від вибору кнопки діалогове вікно MsgBoxповертає одне із значень, заданих системними константами. Це необхідно для аналізу результату при написанні коду. Значення цих констант наведено нижче в таблиці. Значення констант, що повертаються вікнами повідомлення
Докладно вивчимо вікно введення даних (InputBox) Досить часто в діалоговому вікні необхідно не тільки натиснути кнопки вибору дії, але і ввести певні дані. Для того, щоб забезпечити таку можливість, можна використати діалогове вікно введення інформації InputBox. Функція InputBox має такий синтаксис: InputBox(текст [,заголовок][,замовч] [,хпоз] [,упоз] [, дов файл, дов_вміст]) де: текст - текст повідомлення в діалоговому вікні. Максимальна довжина тексту 1024 символи. У текст можна вставляти як розділювачі рядків символи перевід каретки Chr(13), перевід рядка Chr(lO); заголовок - текст заголовка діалогового вікна; замовч - значення текстового поля введення за замовчуванням. Якщо цей параметр відсутній, то рядок залишається порожнім; хпоз - позиція по горизонталі лівого верхнього кута діалогового вікна відносно лівого верхнього кута екрана. За замовчуванням привласнюється значення середини екрана; упоз - позиція по : вертикалі лівого верхнього кута діало гового вікна відносною лівого верхнього кута екрана. За умов чанням привласнюється значення середини екрана; дов_файл - посилання на файл довідкової системи; дов_вміст - посилення на вміст файла довідкової системи. Приклад: strPwd = InputBox ("Введіть пароль", "Перевірка доступу", "****") Результатом буде діалогове вікно, показане на рисунку нижче. У вікні InputBox: завжди є тільки дві кнопки управління: ОК і Cancel. Кнопка ОК підтверджує введення даних, а кнопка Cancelзакриває діалогове вікно без введення даних. 1. Активізуємо новий проект. Розробимо форму з однією командною кнопкою у відповідності з наведеним нижче рисунком. 2. Двічі клацнувши на кнопці створимо код процедури: Private Sub Command1_Click() Dim a, b, c, D, x1, x2 As Double a = Val(InputBox("Введіть значення а", "Задання коефіцієнтів квадратного рівняння", a)) b = Val(InputBox("Введіть значення b", "Задання коефіцієнтів квадратного рівняння", b)) c = Val(InputBox("Введіть значення c", "Задання коефіцієнтів квадратного рівняння", c)) D = b * b - 4 * a * c If (a = 0) And (b <> 0) Then x1 = -c / b MsgBox x1, , "x1" End If If (a = 0) And (b = 0) And (c = 0) Then MsgBox "Розв.безліч", , "x1" If (a = 0) And (b = 0) And (c <> 0) Then MsgBox "Розв'язків не існує", , "x1" If (a <> 0) And (D < 0) Then MsgBox ("Розв'язків не існує") If (a <> 0) And (D >= 0) Then x1 = (-b - Sqr(D)) / (2 * a) MsgBox "Існує два розв." MsgBox x1, , "x1" x2 = (-b + Sqr(D)) / (2 * a) MsgBox x2, , "x2" End If End Sub 3. Збережіть форму і проект у своїй папці на локальному комп’ютері: збереження форми: меню File −> Save Form −> у діалоговому вікні вкажіть місце збереження Мои документы і ім’я форми F_KVR_Dial, після чого натисніть кнопку Сохранить. Збереження проекту: меню меню File −> Save Project −> у діалоговому вікні вкажіть місце збереження Мои документы і ім’я проекта KVR_Dial, після чого натисніть кнопку Сохранить. 4. Запустіть розроблений проект на виконання, скориставшись відповідним меню або кнопкою старт панелі інструментів. При цьому на екрані з’явиться вікно форми F_KVR_Dial, в якому потрібно натиснути кнопку Розв’язати квадратне рівняння і в діалогових вікнах введення даних задати значення коефіцієнтів. Після виконання обчислень у вікнах повідомлення буде виведено результат обчислення коренів рівняння. 5. Щоб надати розробленому проекту статусу незалежного додатку, потрібно зберегти цей проект як виконуваний (скомпільований файл) з розширенням ЕХЕ. Для цього потрібно у меню File вікна редактора Visual Basic клацнути на команді Make KVR_Dial.exe і вказати місце збереження та ім’я файлу. Збережіть додаток у вашій власній папці на сервері. 6. Виконайте декілька варіантів обчислень.
Завдання 4. Розробіть додаток для обчислення значень економічного показника Y в залежності від значень економічного показника X, якщо залежність задана формулою: Для реалізаціїх розгалужень обчислювального процессу застосуйте конструкцію Select Case.
Private Sub Command1_Click() Dim Y As Variant, X As Double X = Val(Text1.Text) Select Case X Case 0 To 1 Y = 5 * X * (X + 10) Case 1 To 10 Y = 55 + Sin(3 * X) Case Is > 10 Y = 55 + Sin(3 * X) + (X - 10) / (X + 1) CaseElse Y = "Не визначена" End Select Print "X="; X; " Y="; Y End Sub Зверніть увагу на команду Print. Вона друкує у формі значення X та Y, а також текст, вказаний у команді у лапках. 4. Збережіть форму і проект у своїй папці на сервері: збереження форми: меню File −> Save Form −> у діалоговому вікні вкажіть місце збереження і ім’я форми F_Сase, після чого натисніть кнопку Сохранить. Збереження проекту: меню меню File −> Save Project −> у діалоговому вікні вкажіть місце збереження і ім’я проекта Proj_Case, після чого натисніть кнопку Сохранить. 5. Запустіть розроблений проект на виконання, скориставшись відповідним меню або кнопкою старт панелі інструментів. При цьому на екрані з’явиться вікно форми F_Сase, в якому в текстовому полі потрібно задати значення Х і натиснути кнопку Обчислити. Після виконання обчислень у формі буде виведено результат обчислення значення Y. 6. Щоб надати розробленому проекту статусу незалежного додатку, потрібно зберегти цей проект як виконуваний (скомпільований файл) з розширенням ЕХЕ. Для цього потрібно у меню File вікна редактора Visual Basic клацнути на команді Make Proj_Case.exe і вказати місце збереження та ім’я файлу. Збережіть додаток у вашій власній папці на сервері. Виконайте декілька варіантів обчислень. Протестуйте роботу додатку на правильність виконання обчислень, задаючи значення Х з усіх можливих проміжків. Завдання 5. Захистіть виконану роботу. Питання до захисту практичної роботи
З повагою ІЦ “KURSOVIKS”! |