Правила запису індексованої змінної у мові Visual Basic
Синтаксис запису індексованої змінної для одновимірного масиву:
Ім’яЗмінної (<індекс>)
Ім’я змінної формується за правилами, встановленими для імені простої змінної.
Індекс – це ціле невід’ємне число або змінна, значенням якої також має бути ціле невід’ємне число. Воно вказує на номер елемента масиву в списку (нумерація починається з нуля).
Для багатовимірних масивів запис індексованої змінної має вигляд:
Ім’яЗмінної (<список індексів>)
Список індексів – це кілька індексів, розділених комою. У випадку двовимірного масиву перший індекс – це номер рядка таблиці, а другий – номер її стовпця. У тривимірному масиві, крім перерахованих двох індексів, додається третій індекс – номер самої таблиці.
Масив фіксованої довжини оголошується так само, як і змінна. Єдина відмінність – використання круглих дужок після імені масиву, в яких вказуються діапазони зміни значень індексів.
Наприклад:
Dim A (1 to 15) As Integer
Dim B (11 to 20) As Double
Dim C (1 to 10, 1 to 10, 1 to 10) As Integer
Індекс масиву Азмінюється від 1 до 15, масиву В – від 11 до 20, а всі три індекси масиву Сзмінюються від1 до 10.
Часто замість діапазону в дужках записується ціле число, яке вказує на максимальне значення індексу.
Наприклад:
Dim Counters (19) As Integer ’20 елементів
Для встановлення нумерації індексів за кожним виміром з 1 на початку процедури (або в стандартному модулі) використовують оператор Option Base1, який змінює початок нумерації індексів кожного виміру з 0 на 1.
Наприклад:
(General) (Declaration)
Option Base 1
Dim A (4) As String
Завдання для виконання лабораторної роботи № 5
I. Завантажити середовище візуального програмування Visual Basic.
II. а) Розглянути зразок програмного коду (кнопка ВИКОНАТИ) та форми (рис. 5.1) для задачі визначення витрат на ремонт приміщення протягом 6 місяців, якщо задані витрати на ремонт приміщення кожного місяця.
Рис. 5.1. Зразок розташування об’єктів на формі
Використання функції InputBox (рис. 5.2) забезпечує формування вікон для введення інформації щомісячних витрат на ремонт з відображенням заголовка Введіть значення елементів масиву V і запрошенням користувача до введення інформації:
…….………………………………………………….
Рис. 5.2. Вікно введення елементів масиву
Один із можливих варіантів програмного коду для визначення витрат на ремонт приміщення можна подати так:
Private Sub Command1_Click()
Const n% = 6
Dim Sum As Single
Dim V(1 To n%) As Single
Debug.Print " Масив витрат"
For i% = 1 To n%
Title$ = "Введіть значення елементів масиву V"
Prt$ = "елемент V(" & i% & ")"
V(i%) = Val(InputBox(Prt$, Title$))
Debug.Print V(i%); " ";
Next i%
Debug.Print
Sum = 0
For i% = 1 To n%
Sum = Sum + V(i%)
Next i%
Debug.Print "Витрати за півріччя="; _
Format(Sum, "####.000")
End Sub
Результати виконання наведеного програмного коду мають наступний вигляд (рис. 5.3):
Рис. 5.3. Результати роботи програми
б) Розглянути зразок форми програмного коду (кнопка ВИКОНАТИ) на рис. 5.4для задачі виведення спочатку додатних, а потім від’ємних елементів масиву С(9).
Рис. 5.4. Зразок розташування об’єктів на формі
Можна запропонувати наступний варіант програмного коду для виведення додатних, а потім від’ємних елементів масиву С(9):
Private Sub Command1_Click()
Const n% = 9
Dim Sum As Single
Dim C(1 To n%) As Single
Debug.Print " Заданий масив C"
For i% = 1 To n%
Title$ = "Введіть значення елементів масиву C"
Prt$ = "елемент C(" & i% & ")"
C(i%) = Val(InputBox(Prt$, Title$))
Debug.Print C(i%); " ";
Next i%
Debug.Print
Debug.Print " Додатні елементи масиву С"
For i% = 1 To n%
If C(i%) > 0 Then Debug.Print C(i%); " ";
Next i%
Debug.Print
Debug.Print " Від'ємні елементи масиву С"
For i% = 1 To n%
If C(i%) < 0 Then Debug.Print C(i%); " ";
Next i%
Debug.Print
End Sub
На рис. 5.5. проілюстровано результат роботи програми.
Рис. 5.5. Результати роботи програми
в) Розглянути зразок форми програмного коду (кнопка ВИзначиТИ ПЕРЕМОЖЦЯ) на рис. 5.4 та результатів задачі на рис. 5.5 визначення команди-переможця на кожному з етапів конкурсу “Ерудит” і на конкурсі загалом, якщо в масиві К1(7)=(8, 9, 10, 8, 7, 9, 8) записані бали команди Диваки, а в масиві К2(7)=(7, 9, 8, 10, 10, 9, 7) записані бали команди Говоруни.
Рис. 5.6. Зразок форми
Private Sub Command1_Click()
Const n% = 7
Dim SumK1, SumK2 As Single
Dim K1(1 To n%), K2(1 To n%) As Single
Debug.Print " Бали команди Диваки"
SumK1 = 0
For i% = 1 To n%
Title$ = "Введіть бали команди Диваки"
Prt$ = "K1(" & i% & ")"
K1(i%) = Val(InputBox(Prt$, Title$))
SumK1 = SumK1 + K1(i%)
Debug.Print K1(i%); " ";
Next i%
Debug.Print
Debug.Print " Бали команди Говоруни"
SumK2 = 0
For i% = 1 To n%
Title$ = "Введіть бали команди Говоруни"
Prt$ = "K2(" & i% & ")"
K2(i%) = Val(InputBox(Prt$, Title$))
SumK2 = SumK2 + K2(i%)
Debug.Print K2(i%); " ";
Next i%
Debug.Print
For i% = 1 To n%
If K1(i%) > K2(i%) Then _
Debug.Print "Переможець "; i%;" -го етапу - Диваки"
If K2(i%) > K1(i%) Then _
Debug.Print "Переможець "; i%; " -го етапу - Говоруни"
If K1(i%) = K2(i%) Then _
Debug.Print "На "; i%; "-му етапі конкурсу - нічия"
Next i%
Debug.Print "Сума балів Диваків = "; _
Format (SumK1, "00.000")
Debug.Print "Сума балів Говорунів = "; _
Format(SumK2, "00.000")
If SumK1 > SumK2 Then _
Debug.Print "Переможець конкурсу - команда Диваки"
If SumK2 > SumK1 Then _
Debug.Print "Переможець конкурсу - команда Говоруни"
If SumK1 = SumK2 Then _
Debug.Print "Результат конкурсу - нічия"
End Sub
Рис. 5.7. Результати роботи програми
III. Спроектувати форму, записати алгоритм розв’язку та програмний код для виконання наступних завдань:
1. В масиві А(8)=(345.8, 625.5, 872.2, 824.6, 283.5, 1120.0, 346.1, 746.0) записані дані про поквартальні прибутки (тис. грн.) підприємства “Веселка” за два останні роки. Створити масив В(4), в який записати дані за останній рік. Знайти суму прибутків за обидва роки і за кожен рік окремо.
2. В масиві Р(12)=(769.50, 769.50, 782.35, 782.35, 782.35, 782.35, 790.70, 790.70, 812.00, 815.50, 815.50, 820.00) записані дані про суми пенсії, яку отримав пенсіонер А. Г. Петренко протягом минулого року. Визначити, в яких місяцях проводили перерахунок пенсії і на яку суму вона збільшувалась.
3. В масиві РR(12)=(12345, 1800, -350, -200, 740, 4470, 10390, 15200, 6320, -500, -865, 2250) записані суми прибутків (збитків) фірми “Сонечко” за минулий рік. Фірма щомісяця, коли отримувала прибутки, відраховувала 18% до спец. фонду, а в ті місяці, які були збитковими – не перераховувала кошти до спец. фонду. Створити масив V(12), в який записати суми перерахованих фірмою “Сонечко” коштів до спец. фонду. Обчислити загальну суму перерахованих коштів за рік.
4. В масиві Z(12)=(1800, 2200, 1950, 1800, 1850, 2000, 2320, 2400, 2530, 2120, 1900, 1550) записані суми нарахованої заробітної плати муляра С. Іваненка за минулий рік. В масиві V(12)=(234.20, 315.08, 290.00, 234.20, 240.00, 300.50, 348.70, 360.00, 309.00, 285.00, 245.00, 167.20) записані суми відрахувань від його заробітної плати. Створити масив О(12), в який записати суми отриманої С. Іваненком зарплати (різниця між нарахованими і відрахованими сумами). Обчислити також середню заробітну плату муляра С. Іваненка за минулий рік.
5. В масиві R(6)=(23, 12, 45, 37, 15, 26) записані рейтингові бали 6 цехів заводу “АвтоШИК”, які вони набрали на конкурсі “ФАХцех”. Визначити номери цехів, які набрали максимальну і мінімальну кількість балів, а також вивести рейтинг цехів (за набраними балами у порядку спадання).
6. В масиві Р(13)=(10200, 10275, 10360, 10420, 10500, 10575, 10675, 10720, 10795, 10905, 10990, 11030, 11105) записані показники лічильника електроенергії сім’ї Степаненків за минулий рік. Створити масив Е(12), в який записати кількість електроенергії, яку використовували Степаненки щомісяця. Визначити найбільшу кількість електроенергії, яку використала сім’я, а також загальну кількість електроенергії за рік.
7. Для обчислення суми пенсії потрібно визначити коефіцієнт – відношення заробітної плати людини до середньої заробітної плати. В масиві Z(12)=(1200, 1200, 1230, 1245, 1245, 1245, 1317, 1317, 1317, 1300, 1300, 1415) записані суми заробітної плати пенсіонерки Л. Соколенко. В масиві S(12)=(940, 945, 960, 980, 1000, 1000, 1007, 1100, 1150, 1200, 1290, 1300) записані середні заробітні плати. Створити масив К(12), в який записати коефіцієнти пані Соколенко. Визначити середній коефіцієнт (Кс) і обчислити суму пенсії за формулою Р=980*Кс*1.25*(СТ-20), де СТ – стаж роботи, який у пенсіонерки Л. Соколенко становить 38 років.
8. В масиві G(12)=(670, 620, 500, 410, 65, 30, 35, 42, 100, 370, 580, 620) записані дані про кількість (куб. м) природного газу, яку використав громадянин О. Дубенко за минулий рік. Створити масив S(12), в якому обчислити суми сплати за використаний газ, якщо тариф становить 45 коп. за 1 куб. м. Створити також масив SP(12), в якому обчислити суми сплати з урахуванням пільги Дитина війни (25%).
9. В масиві D(12)=(12, 18, 48, 90, 120, 50, 35, 45, 87, 105, 20, 15) записані суми (тис. грн.) доходів фонду “Радість” за минулий рік. Фонд щомісяця сплачує податки у розмірі 25% від суми доходу. Створити масив Р(12), в який записати суми сплачених податків. Знайти загальну суму податків за рік. Вивести номери місяців, в які сума податку перевищувала 10 тис. грн.
10. В масиві D(12)=(2300, 2600, 2500, 2700, 2900, 2400, 2300, 2700, 2500, 2500, 3000, 3000) записані дані про сукупний дохід сім’ї Лебеденків за минулий рік. В масиві К(12)=(315, 320, 320, 200, 185, 185, 160, 150, 190, 400, 420, 450) записані дані про суми платежів за комунальні послуги цієї сім’ї. Створити масив Р(12), в який записати відсотки, які становлять платежі від доходу. Визначити, чи належить сім’ї Лебеденків субсидія і в які місяці. (Субсидія надається, якщо платежі перевищують 20% доходу).
11. В масиві С(10)=(345.4, 562.6, -437.9, 235.0, -460.3, 239.0, -970.3, -124.5, 548.2, 546.3) записані сальдо на рахунках. Вивести спочатку від’ємні сальдо, потім – додатні. Знайти окремо суми від’ємних і додатніх сальдо.
12. В масиві В(15)=(63.5, 72.8, 93.2, 81.2, 75, 64, 68.7, 74, 90, 91.4, 82, 65, 67.5, 78.3, 64.5) записані середні бали за сесію групи студентів спеціальності АБС. Створити масив С(15), в який записати суми стипендій студентів цієї групи. Студенти, в яких середній бал не нижчий ніж 90, отримують підвищену стипендію 600 грн.; студенти, яких середній бал не нижчий ніж 74, отримують 530 грн.; решта – не отримують стипендію (0 грн.). Порахувати окремо кількість відмінників і кількість студентів, що навчаються добре.
13. На початок дня в банкоматі було 20 тис. грн. В масиві Х(11)=(100, 200, 50, 500, 2000, 20, 1000, 300, 500, 100, 1500) записані суми (грн.), які клієнти взяли з банкомату. Визначити, яка сума залишилась в банкоматі, а також порахувати кількість клієнтів, які взяли суми понад 1000 грн.
14. На початок місяця на банківському рахунку була сума 3257 грн. В масиві В(10)=(500, -5.50, 120, 165.40, -280, -350, -700, 320, 400.70, -38.25) записані суми, які надходили на рахунок (додатні) або були зняті з рахунку (від’ємні). Визначити, яка сума залишилась на рахунку на кінець місяця, а також загальну суму коштів, які надійшли на рахунок і загальну суму коштів, що були зняті з рахунку.
15. В масиві W(10)=(350, 820, 400, 410, 300, 260, 750, 600, 500, 390) записані суми, віднесені на різні статті витрат підприємства “Аеросвіт”. Знайти загальну суму витрат і створити масив Р(10), в який записати питому вагу кожної статті витрат (питома вага – це відсоток, який становить стаття витрат у відношенні до всіх витрат).
IV. Зберегти проект у папці Lab5_z1.
V. Продемонструвати створений проект викладачеві.
VI. Записати отримані результати.
VII. Захистити виконану роботу.
Контрольні запитання
1. Які типи даних називають масивами?
2. Охарактеризуйте статичні та динамічні масиви.
3. Яка змінна використовується для звертання до окремих елементів масиву?
4. Як оголошуються масиви?
5. Як визначається вимірність масивів?
6. Як визначити кількість елементів масиву?
7. Призначення функції InputBox.
8. Організація введення та виведення елементів масивів.
Дата добавления: 2016-07-27; просмотров: 1388;