Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Лабораторна робота №5. Розв’язування задач економічного змісту з використанням одновимірних масивів

Поиск

Мета: Навчитись використовувати засоби Visual Basic для розв’язування задач економічного характеру з використанням одновимірних масивів.

 

Поняття масиву. Правила запису індексованої змінної

 

У попередніх лабораторних роботах при розв’язуванні задач ми обмежувались використанням простих типів даних. Тут кожна змінна являла собою одне значення. Використання лише простих даних суттєво обмежує можливості програмування. Тому у Visual Basic, як і в інших алгоритмічних мовах, введені структуровані типи змінних, які можуть набувати не одне значення, а сукупність значень. Найпоширенішим структурованим типом даних є масив.

Масивом називають впорядковану скінченну сукупність однотипних елементів з одним іменем. Наприклад, рядок тексту можна подати у вигляді масиву символів, вектор – у вигляді масиву чисел, а матрицю – у вигляді масиву векторів.

За визначенням усі елементи масиву мають однаковий тип. Однак бувають винятки. Зокрема, коли тип даних масиву Variant, то окремі елементи можуть містити дані різних типів (об’єкти, рядки, числа).

Кількість різних індексів визначає вимірність масиву. Масиви можуть бути одновимірними (вектори), двовимірними (матриці), тривимірними і т.д.

Нижні та верхні межі зміни індексу масиву визначають кількість його елементів і називаються граничною парою. Елементи масиву послідовно розташовуються в заданих межах.

У мові Visual Basic розрізняють статичні (з фіксованими межами) та динамічні масиви.

Межі статичного масиву встановлюються на етапі розроблення і можуть змінюватися тільки у новій версії програми.

Динамічні масиви змінюють свої межі в ході виконання програми. Розмір масиву можна задавати відповідно до конкретних умов. Однак потрібно враховувати, що робота з динамічними масивами потребує додаткових засобів програмування.

Для звертання до окремих елементів масиву використовується індексована змінна – змінна, значенням якої є елемент масиву.

 

Правила запису індексованої змінної у мові 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 Base 1, який змінює початок нумерації індексів кожного виміру з 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-08-12; просмотров: 413; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.59.73.248 (0.007 с.)