Імена елементів керування
У коді програми можуть бути імена елементів керування. VBА кожному елементу керування дає за замовчуванням ім’я, що залежить тільки від типу елемента (наприклад, Form1 для форми; Text1, Text2 для текстових полів; Label1, Label2 для написів). Ім’я елемента керування задають у властивості Name.
При зверненні до будь-якої властивості елемента керування вказують ім’я, а потім через крапку – потрібну властивість:
<Ім’я>.<Властивість>
Кожен елемент керування має свою властивість-значення. Якщо в коді програми йде до неї звернення, то її можна пропустити. Так, для текстового поля властивістю-значенням є властивість Text; а для напису – властивість Caption.
Розміщуючи елемент керування у форму, за замовчуванням його властивості Text надають стандартне значення – ім’я цього елемента (наприклад, значенням властивості Text першого текстового поля, уміщеного у форму з ім’ям Text1, є «Text1»). Тут його можна змінити, надавши значення, що найчастіше зустрічається (наприклад, «0» – нуль), чи вилучити зовсім, якщо щоразу вводять нове значення.
Розгалужені алгоритми
Алгоритм називається розгалуженим, якщо для отримання кінцевого результату потрібно вибрати один з кількох можливих напрямків обчислень (гілок) залежно від результату перевірки певної умови.
Розгалужений алгоритм, що складається з двох гілок, називається простим, якщо гілок більше двох – складним. Графічно розгалужений алгоритм відображається на рисунку 6. Напрямок обчислень визначається перевіркою, після виконання якої можливі два варіанти:
„Так” – умову виконано і виконуємо Дію 1;
„Ні” – умову не виконано і тоді йдемо на Дію 2.
В VBA є два основних оператори для реалізації розгалужених (умовних) алгоритмічних конструкцій: оператор умови If... Then і перемикач Select Case.
Умовний оператор. Оператор If ... Then використається для того, щоб виконати який-небудь оператор або кілька операторів, якщо деяка умова буде вірною.
Формат оператора може мати дві форми:
- безальтернативну: If умова Then вираз;
- альтернативну: If умова Then вираз_1 Else вираз_2.
Якщо умова приймає значення True (Істина), то виконується вираз_1, якщо False (Хибність), тоді вираз_2. Гілка Else є необов’язковою. Наприклад, якщо знижка в 5% застосовується тільки до сум >1000, то в VBA це можна записати так:
If Money > 1000 Then Discont = 0.05 Else Discont = 0
або
If Money > 1000 Then Discont = 0.05
Допускається також використання блокової форми синтаксису. При блоковій організації умовного переходу використовується ключове слово End If для позначки оператора:
If Money > 1000 Then
Discont = 0.05 End if Else
Discont = 0
Якщо дерево умов набагато складніше, ніж просто перевірка однієї умови, використовується оператор If... Then... Elseif, що дозволяє перевіряти кілька умов:
If умова 1 Then
<група операторів 1 >
Elseif умова 2 Then
<група операторів 2>
Else
<група операторів n>
End if
Спочатку перевіряється умова 1. Якщо воно має значення True, то виконується група операторів 1 і далі робота програми продовжиться з рядка, який знаходиться за ключовим словом End if. Якщо умова 1 повертає значення False, то перевіряється умова 2 і т.д., поки не зустрінеться умова, що повертає значення True, або не зустрінеться ключове слово Else.
Оператор вибору. Якщо потрібно перевірити досить багато умов, то оператор If... Then може стати занадто складним. У цьому випадку застосовується оператор вибору, або перемикач Select Case, що виконує одну з декількох груп операторів залежно від значення виразу.
Select Case <вираз>
Case <Список порівняння> оператори1
…
[Case Else оператори N]
End Select
де <вираз> може бути виразом будь-якого типу;
<Список порівнянь> складається з елементів порівняння, розділених комою. Має 3 варіанти запису:
· вираз, що дає одне значення для перевірки (наприклад 3,x+5);
· конструкція <вираз1> To <вираз2> задає інтервал значень для перевірки, який знаходиться в діапазоні (наприклад 1 To 5);
· конструкція Is <операція порівняння> <вираз> задає значення, де використовуються операції порівняння (наприклад Is >50).
Виконання оператора:
1. Спочатку обчислюється вираз.
2. Значення виразу порівнюється зі списком порівняння. Якщо воно знайдено, то виконуються оператори, що стоять за ним і керування передається на кінець оператора Select. І т. д.
3. Коли вираз не дорівнює жодному з приведених значень зі списку, то виконується блок операториN, що знаходиться після Case Else, яке є необов’язковим в даній конструкції. Якщо такої конструкції не має, то жоден оператор не виконується і керування передається оператору, який стоїть за оператором Select.
Наприклад:
1. Select Case x
Case I х = х + 1
Case 2, 3, 4 х = 10
Case Else x = 20
End Select
2. Select Case k
Case Is < 1 pr = 0
Case 1 To 5 pr = z * 0.1
Case Is > 5 pr = z * 0.5
End Select
Завдання для лабораторної роботи
Завдання 1. Створити блок-схему та програму, яка обчислює розмір премії робітника, залежно від стажу його роботи. Уведення та виведення даних реалізувати за допомогою форми користувача.
Співробітниками фірми виплачується річна премія в залежності від стажу роботи:
- до 1 року – премії немає
- від 1 до 5 років – 10% від зарплатні
- більш ніж 5 років – 20% від зарплатні.
Обчислити розмір премії робітника, якщо його зарплатня дорівнює Z, а стаж роботи – К. Алгоритм наведений на рис. 7.
1. Створюємо нову Книга1.xls. Даємо їй назву ПІБ_8-1.xls.
2. Відкриваємо редактор VBA Сервіс/Макрос/Редактор Visual Basic.
3. Створюємо нову форму користувача Insert/UserForm.
4. Розмістимо на формі такі елементи керування (рис. 8): написи – Label1, Label2, Label3, Label4, Label5; текстові поля – TextBox1, TextBox2, TextBox3, TextBox4 для введення ставки та стажу роботи, а також виведення премії та загальної заробітної платні; кнопку – CommandButton1 для підрахунку премії та загальної суми до виплати.
5. Змінимо властивості об’єктів у вікні властивостей (рис. 9). Для цього необхідно виділити потрібний елемент керування, наприклад Label1. У вікні властивостей в рядочку Caption написати Ваша заробітна платня. У рядочку Font натиснути на … та вибрати шрифт Times New Roman, розмір – 14, жирний курсив. Аналогічно для усіх написів (Label2 – Ставка, Label3 – Стаж, Label4 – Премія, Label5 – Разом для виплати).
6. Властивості для текстових полів TextBox1, TextBox2, TextBox3, TextBox4: Font – шрифт Times New Roman, розмір – 14, жирний курсив. Так як текстові поля TextBox3, TextBox4 необхідні тільки для виведення результатів – заблокуємо можливість введення даних у ці поля: властивість Enabled повинна приймати значення False.
Рис. 8. Вид форми із необхідними елементами керування Рис. 9. Вікно властивостей для елементу Label1
7. Для кнопки CommandButton1 властивість Caption: Підрахунок премії. Властивість Font: шрифт Times New Roman, розмір – 10, жирний. Для того, щоб назва кнопки складалась із двох рядочків встановимо властивість WordWrap =True.
8. Перемістіть та змініть розміри об’єктів форми таким чином, щоб отримати необхідний зручний вигляд (рис. 10).
Рис. 10. Вигляд форми у режимі конструювання Рис. 11.Вигляд форми при правильному виконанні програми
9. Командна кнопка CommandButton1 зв’язується процедурою введення чисел та підрахунком премії та загальної заробітної платні. Щоб зв’язати подію з кнопкою – двічі клацніть на кнопці. Відкриється вікно модуля, у якому вже написаний заголовок процедури за таким правилом: спочатку вказується ім’я об’єкта, а потім після символу «_» (нижнє підкреслення) – ім’я події, яка викликає процедуру:
Private Sub CommandButton1_Click()
End Sub
10. Текст програми для розв’язання задачі, пов’язаний із командною кнопкою запишемо між рядочком Private Sub CommandButton1_Click() та End Sub:
Dim z As Integer, k As Single, pr As Single, zp As Single
‘ блок перевірки коректного введення Ставки заробітної платні у текстове поле TextBox1
If IsNumeric(TextBox1.Text) Then
z = TextBox1.Text ‘у разі коректного введення змінній z привласнюється Ставка
Else
MsgBox "У полі 'Cтавка' повинно бути число", vbCritical + vbOKOnly
TextBox1.SetFocus
End If
‘ блок перевірки коректного введення Стажу роботи у текстове поле TextBox2
If IsNumeric(TextBox2.Text) Then
k = TextBox2.Text ‘у разі коректного введення змінній k привласнюється Стаж
Else
MsgBox "У полі 'Cтаж' повинно бути число", vbCritical + vbOKOnly
TextBox2.SetFocus
End If
‘ блок підрахунку премії, залежно від стажу за допомогою оператору вибору Select Case
Select Case k
Case Is < 1 ‘ якщо стаж менше року
pr = 0 ‘ значення змінної pr (премія) нульове
Case 1 To 5 ‘ якщо стаж від року до п’яти
pr = z * 0.1 ‘ значення змінної pr 10% від зарплатні
Case Is > 5 ‘ якщо стаж більший за 5 років
pr = z * 0.5 ‘ значення змінної pr 50% від зарплатні
End Select
zp = z + pr ‘ значення змінної zp (разом до виплати) – ставка плюс премія
TextBox3.Text = CStr(pr) + " грн."
TextBox4.Text = CStr(zp) + " грн."
11. Запустимо програму на виконання. Якщо все зроблено вірно ми отримаємо необхідні результати (рис. 11).
12. У поле «Ставка» або «Стаж» внести текстові дані та натиснути на кнопку «Підрахунок премії». Переконатися у правильній роботі перевірки коректного введення даних.
Завдання 2.Скласти блок-схему та програму обчислення площі кільця. Програма повинна перевіряти правильність початкових даних. Нижче наведений вигляд форми під час виконання програми.
Блок-схема: Програма:
1 результат виконання програми: 2 результат виконання програми:
Завдання до самостійної роботи
Завдання 1. Оформити завдання № 2 (Обмін валюти) з лабораторної роботи 7 за допомогою форми користувача.
Завдання 2. У відповідності до номера варіанту розробити блок-схему алгоритму та створити форму користувача для введення та виведення відповідних даних. Розгалужений алгоритм реалізувати за допомогою умовного оператору.
1. Напишіть програму, яка обчислює частку двох чисел. Програма повинна перевіряти правильність введених користувачем даних і, якщо вони неправильні (дільник дорівнює нулю), виводити повідомлення про помилку. Нижче наведений приблизний вигляд екрану під час виконання програми.
Обчислення частки
Введіть ділене 12
Введіть дільник 0
Помилка! Дільник не повинний дорівнювати нулю.
2. Напишіть програму, яка переводить час з хвилин та секунд у секунди. Програма повинна перевіряти правильність введених користувачем даних і, якщо вони невірні, виводити відповідне повідомлення. Нижче наведений приблизний вигляд екрану під час виконання програми.
Час у хвилинах
Введіть час ( хвилини . секунди): 2.90
Помилка! Кількість секунд не може бути більше 60.
3. Напишіть програму рішення квадратного рівняння. Програма повинна перевіряти правильність початкових даних і у випадку, якщо коефіцієнт при другому ступеню невизначеного дорівнює нулю, виводити відповідне повідомлення. Нижче наведений приблизний вигляд екрану, що рекомендується під час виконання програми.
Рішення квадратного рівняння
Введіть значення коефіцієнтів:
A=12
B=27
C=-10
Корені рівняння:
X1= -25.551
X2= -28.449
4. Напишіть програму для обчислення вартості покупки з урахуванням знижки. Знижка у 10% надається, якщо сума покупки більше ніж 1000 грн. Нижче наведений приблизний вигляд екрану, що рекомендується під час виконання програми.
Обчислення вартості покупки з урахуванням знижки
Введіть суму покупки: 1200
Вам надається знижки у 10%
Сума покупки з урахуванням знижки: 1080.00 грн.
5. Напишіть програму для перевірки знання дати заснування Петербургу. У разі невірної відповіді користувача, програма повинна виводити правильну відповідь. Нижче наведений приблизний вигляд екрану, що рекомендується під час виконання програми.
У якому році був заснований Санкт-Петербург?
Введіть число: 1705
Ви помиляєтесь! Санкт-Петербург заснований у 1703 році.
6. Напишіть програму, яка порівнює два введених з клавіатури числа. Програма повинна вказати, яке число більше, або якщо числа рівні, вивести відповідне повідомлення. Нижче наведений приблизний вигляд екрану, що рекомендується під час виконання програми.
Порівняння чисел
Введіть перше ціле число: 34
Введіть друге ціле число: 67
Число 34 менше 67
7. Напишіть програму, яка перевіряє, чи є число, що введене користувачем, парним. Нижче наведений приблизний вигляд екрану, що рекомендується під час виконання програми.
Парні числа
Введіть ціле число: 23
Число 23 - непарне
8. Напишіть програму, яка перевіряє, чи ділиться число введене користувачем на три. Нижче наведений приблизний вигляд екрану, що рекомендується під час виконання програми.
Число, кратне 3
Введіть ціле число: 451
Число 451 на ціло на три не ділиться.
9. Напишіть програму обчислення оптимальної ваги для користувача, порівнює її з реальною вагою та видає рекомендацію необхідності корегування ваги. Оптимальна вага обчислюється за формулою: Зріст(см)-100. Нижче наведений приблизний вигляд екрану, що рекомендується під час виконання програми.
Оптимальна вага
Введіть зріст ( см ): 170
Введіть вагу ( кг ): 68
Вам необхідно добрати 2 кг
10. Напишіть програму для обчислення вартості покупки з урахуванням знижки. Знижка у 3% надається, якщо сума покупки більше ніж 500 грн., у 5% - якщо сума більше 1000грн. Нижче наведений приблизний вигляд екрану, що рекомендується під час виконання програми.
Обчислення вартості покупки з урахуванням знижки
Введіть суму покупки та натисніть <Enter>: 640
Вам надається знижка у 3%
Сума покупки з урахуванням скидки: 620.80 грн.
11. Написати програму обчислення величини прибутку за вкладом. Відсоткова ставка та час зберігання задаються під час роботи програми. Врахувати такі річні ставки: 10% річних – на 3 місяця, 12% річних – на 6 місяців, 15% річних – на 1 рік. Нижче наведений приблизний вигляд екрану під час виконання програми
Прибутку за вкладом
Величина вкладу (грн.) – 2500
Строк вкладу ( місяці) – 30
Відсоткова ставка (річних) – 20
Прибуток: 41.10 руб.
Сума по закінченню строку вкладу: 2541.10 руб.
12. Написати програму перевірки знань дати початку другої світової війни. У разі неправильної відповіді користувача, програма повинна виводити правильну відповідь. Нижче наведений приблизний вигляд екрана під час виконання програми.
Друга світова війна
Введіть рік початку війни: 1943
Ви помилились. Друга світова війна почалася у 1939 році.
13. Написати програму, яка запитує у користувача номер дня тижня та виводить одне з повідомлень: “Робочий день”, “Субота” чи “Неділя”. Виконати перевірку введення даних.
День тижня
Введіть день тижня: 10
Ви помилились. Дні тижня від1 до 7.
Завдання 3.У відповідності до номера варіанту розробити блок-схему алгоритму та створити форму користувача для введення та виведення відповідних даних. Розгалужений алгоритм реалізувати за допомогою оператору вибору.
1. Напишіть програму перевірки знань з історії архітектури. Програма повинна вивести питання та три варіанти відповіді. Користувач повинний обрати правильну відповідь та ввести її номер. Нижче наведений приблизний вигляд екрану, що рекомендується під час виконання програми.
Невський проспект отримав свою назву:
1. За ім’ям ріки, на берегах якої розташований Санки - Петербург
2. За ім’ям монастиря Олександро – Невської лаври
3. На честь видатного полководця Олександра Невського
Введіть номер правильної відповіді та натисніть <Enter>: 1
Ви помилились.
Правильна відповідь: 2
2. Напишіть програму перевірки знань історії архітектури. Програма повинна вивести питання та три варіанти відповіді. Користувач повинний обрати правильну відповідь та ввести її номер. Нижче наведений приблизний вигляд екрану, що рекомендується під час виконання програми.
Архітектор Ісаакієвського собору:
1. Доменіко Трезіні
2. Огюст Монферран
3. Карл Россі
Введіть номер правильної відповіді та натисніть <Enter>: 3
Ви помилились.
Архітектор Ісаакіївського собору – Огюст Монферран
3. Напишіть програму обчислення вартості телефонної розмови з урахуванням 20% скидки, що надається по суботах та неділях. Нижче наведений приблизний вигляд екрану, що рекомендується під час виконання програми.
Обчислення вартості розмови по телефону.
Введіть початкові дані:
Вартість однієї хвилини розмови ( у грн.) : 1
Тривалість розмови (ціла кількість хвилин: 3
День тижня (1 – понеділок, ..7 –неділя): 6
Надається скидка 20%.
Вартість розмови: 2.40 грн.
4. Напишіть програму, яка запитує у користувача номер місяця та виводить відповідну назву пори року. У разі якщо користувач введе неправильне число, програма має вивести повідомлення “Помилка введення даних”.
5. Напишіть програму для обчислення функції W. Нижче наведений приблизний вигляд екрану, що рекомендується під час виконання програми.
Обчислення функції W.
Введіть початкові дані:
Значення d: 15
Значення x: -5
Функція W= -5
6. Напишіть програму, яка за номером назви країни визначає назву її столиці. Назви країн та їх столиці зазначено в таблиці:
№ | Назва країни | Назва столиці |
Австрія | Відень | |
Болгарія | Софія | |
Греція | Афіни | |
Італія | Рим | |
Норвегія | Осло | |
Франція | Париж | |
Україна | Київ |
У разі введення номера назви країни, відсутньої у таблиці, на екрані має з’явитися відповідне повідомлення.
7. Напишіть програму, яка за номером кольору суміші визначає назву речовини та індикатору, що утворили цю суміш. Одна з двох речовин – луг або кислота з’єднуються з одним з трьох індикаторів: лакмусом, фенолфталеїном, метилом оранжевим. Колір утвореної суміші подано в таблиці. У разі введення номера кольору, який відсутній у таблиці, на екрані має з’явитися відповідне повідомлення.
Речовина | Індикатор | ||
Лакмус | Фенолфталеїн | Метил | |
Кислота | (1) рожевий | (3) безбарвний | (5) горобиновий |
Луг | (2) синій | (4) малиновий | (6) жовтий |
8. Напишіть програму для обчислення функції F. Нижче наведений приблизний вигляд екрану, що рекомендується під час виконання програми.
Обчислення функції F.
Введіть початкові дані:
Значення d: 10
Значення y: 5
Функція М= 10
9. Напишіть програму перевірки знань з інформатики. Програма повинна вивести питання та три варіанти відповіді. Користувач повинний обрати правильну відповідь та ввести її номер. Нижче наведений приблизний вигляд екрану, що рекомендується під час виконання програми.
Що таке операційна система?
1. це комплекс програм, що завантажуються при вмиканні комп’ютера, забезпечують діалог з користувачем та керують ресурсами комп’ютера
2. це сукупність програм, процедур і правил, разом з документацією, що стосуються функціонування системи оброблення даних.
3. це програми, що призначені для стиснення інформації
Введіть номер правильної відповіді: 3
Ви помилились. Вчить краще інформатику.
Правильна відповідь: 1
10. Напишіть програму для обчислення функції M. Нижче наведений приблизний вигляд екрану, що рекомендується під час виконання програми.
Обчислення функції M.
Введіть початкові дані:
Значення с: -10
Значення а: 5
Функція М= 5
11. Напишіть програму, яка для попередньої вартості товару, заданої у валюті (євро, долар, грн., руб.), розраховує значення попередньої вартості товару в національній валюті. У разі введення неправильних даних на екрані має з’явитися повідомлення про помилку. Початковими даними для програми є значення попередньої вартості товару та номер назва валюти.
12. Напишіть програму для розрахунку акцизного збору на окремі товари згідно Закону України “Про ставки акцизного збору і ввізного мити на деякі товари”. На екран вивести код та назву товару, акцизну ставку та акцизний збір. Розрахунки платежів виконуються за формулою: акц.збір=кількість*ставку. У разі введення коду товару, який відсутній у таблиці, на екрані має з’явитися відповідне повідомлення.
Код товару | Назва товару | Ставка акцизного збору |
Частини тушок домашньої птиці(стегна) заморожені | 0,03 | |
Креветки готові або консервовані | 0,5 | |
Шоколад із начинкою або без начинки | 0,3 | |
Тільки розчинна кава | 0,8 |
Обчислення акцизного збору.
Введіть початкові дані:
Введіть кількість товару: 1350
Введіть код товару: 21
Назва товару: розчинна кава (код 21), ставка – 0,8.
Акцизний збір складає:1080 грн.
13. Напишіть програму для розрахунку митного збору для легкових автомобілів. Основою для нарахування мита є робочий об’єм двигуна (см3). Ставки мита для легкових автомобілів надані у таблиці. Розрахунки платежів виконуються за формулою: Мито = Об’єм двигуна * Ставка мита * Курс євро. У разі введення об’єму двигуна, який відсутній у таблиці, на екрані має з’явитися відповідне повідомлення.
Об’єм двигуна, см3 | До 1500 | З 1501 по 2500 | Більше 2500 |
Мито, євро | 0,1 | 0,15 | 0,8 |
Обчислення митного збору.
Введіть початкові дані:
Введіть об’єм двигуна: 1000
Введіть курс євро: 7,9
Митний збір складає:790 євро.
14. Напишіть програму, яка за номером дня тижня подає ваш розклад занять на цей день та рахує скільки часу буде тривати ваші заняття. У разі введення неправильних даних на екран вивести відповідне повідомлення. Нижче наведений приблизний вигляд екрану, що рекомендується під час виконання програми.
Розклад занять.
Початкові данні:
Введіть день тижня: 3
Це середа: 1пара – інформатика
2 пара – анг. мова
3 пара – культура
Тривалість занять – 4 години
Дата добавления: 2015-07-22; просмотров: 1870;