Роздрукувати сторінку
Главная \ Методичні вказівки \ Методичні вказівки \ 1381 Практична робота 9 на тему Робота з масивами

Практична робота 9 на тему Робота з масивами

« Назад

Практична робота №9 Тема: Робота з масивами

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

Хід роботи

Запишіть у зошит тему і мету роботи. Складіть Звіт ПР9_Власне прізвище виконання практичної роботи. Всі завдання повинні бути сформульовані у звіті. Програмний код процедур охайно запишіть у звіті.

Завдання 1. Уважно вивчіть теоретичні відомості. Найнеобхідніше занотуйте у звіті.

Теоретичні відомості

Часто доводиться обробляти великі групи однотипних даних. У програмах дані зберігаються у змінних.

Масив — це впорядкована група змінних одного типу, об'єднаних одним  ім’ям.

Змінні масиву називають елементами масиву. Кількість елементів у масиві називають розмірністю масиву.

У масиві за замовчуванням всі елементи пронумеровані, починаючи з нуля.

У програмі перед створенням масив оголошують, при цьому за­лежно від місця оголошення масив може бути як локальним, так і глобальним.

Якщо розмірність  масиву фіксована, то це масив із фіксованими межами. У випадку коли розмірність масиву змінюється (чи визначається) у програмі створюють динамічний масив.

Для оголошення масиву із фіксованими межами використовують таку конструкцію:

Dim <ім'я масиву> (<число1>[, <число2>,...,<числоN>)] [As <тип даних>],

де ім'я масиву — ім'я змінної типу «масив»; число1 — розмір масиву (число рядків); число2 — розмір масиву (число стовпців), і т.д.; тип даних — тип даних масиву, за замочуванням — тип Variant.

Кожен елемент масиву має свій набір індексів (що визначає його місцерозташування в масиві). У одновимірному масиві кожний елемент має один індекс (i)ціле число, яке є порядковим номером цього елемента у масиві.У двохвимірному масиві, який можна уявити як двохвимірну таблицю, набір індексів складається з номера рядка та номера стовпця  (i,j), причому нумерація починається з 0, що не дуже логічно. Як бачимо, набір індексів складається з індексу по кожному виміру масива.

Наприклад, елементи одновимірного масиву А із п'я­ти елементів мають такі індекси:

 А(0)

А(1)

А(2)

  А(3)

 А(4)  

Оголошення такого масиву у процедурі обробки події має вигляд:

Dim A(4) As Integer ‘тип змінної може бути іншим

Елементи двовимірного масиву, що складається із трьох рядків і чотирьох стовпців, характеризуються та­кими індексами:

А(0,0)

А(0,1)

А(0,2)

А(0,3)

А(1,0)

А(1,1)

А(1,2)

А(1,3)

А(2,0)

А(2,1)

А(2,2)

А(2,3)

Оголошення такого масиву у процедурі обробки події має вигляд:

Dim A(2,3) As Integer ‘тип змінної може бути іншим .

Для встановлення нумерації індексів по кожному виміру з 1  на початку процедури (або в стандартному модулі) використовують оператор

Option Base 1,

який  змінює початок нумерації індексів кожного виміру  з 0 на 1.

Змінювати нижню межу масиву при його оголошенні можна також,  задаючи межі зміни індекса за допомогою ключового слова To. Наприклад, для наведених вище прикладів це буде так:

Dim A(1To 5) As Integer та Dim A(1To 3,1 To 4) As Integer

Оголошення динамічного масиву даних у Visual Basic здійснюється за такими правилами:

  1. При оголошенні масиву його розмірність не вказується у дужках після імені масиву, наприклад:  Dim A() As Integer   .

  2. Перед використанням масиву перепризначається його розмірність за допомогою оператора ReDim, наприклад:  ReDim A(1To 5).   При черговому перепризначенні розмірності масиву вміст елементів масиву може втрачатись. Щоб цього не сталось, використовують ключове слово Preserve. Наприклад: ReDim  Preserve A(1To 5).

  3. Після завершення роботи з динамічним масивом потрібно звільнити пам’ять, виділена для масиву. Для цього використовують команду Erase. Наприклад: Erase A.

Як собі уявити багатовимірний масив даних? Уявіть собі двовимірний масив оцінок студентів 1 курсу фінансового факультету з усіх предметів за 1-й семестр. Третім виміром може бути номер семестру, четвертим - номер курсу, п’ятим  – назва факультету і т.д. Це буде багатовимірна таблиця даних. У сучасних сховищах даних дані якраз і зберігаються у багатовимірних таблицях. Звичайно, дані у пам’яті комп’ютера зберігаються не в якихось там спеціальних таблицях, а у послідовних комірках, але програма при їх опрацюванні розуміє де, наприклад, завершується перший рядок двовимірного масиву завдяки зробленому опису масива.

Під час роботи з масивами дуже часто використовують операто­р циклу For...Next, при цьому змінна-лічильник циклів певним чином пов'язується з індексами елементів.

Типовими діями з масивами є такі:

  • заповнення масиву даними;

  • знаходження найбільшого (найменшого значення);

  • знаходження середнього  значення;

  • впорядкування елементів масиву за зростанням (за спаданням) тощо.

Завдання 2. Розробити додаток, в якому у двовимірний масив вводяться дані і обчислюється максимальне, середнє  значення та сума елементів масиву з застосуванням масиву із фіксованими межами.

1. Для розробки такого додатку активізуйте новий проект  Visual Basic,   створіть  форму з 3 команд­ними  кнопками  з відповідними їх властивостями:

Cominandl — Заповнення елементів масиву (Caption), cmdMas (Name);

Command2 — Розрахувати (Caption), cmdRezult (Name);

Command3 — Вихід (Caption), cmdExit (Name).

2. Збережіть форму з ім’ям F_Масив у папці Мои документы локального комп’ютера.

3. Далі створіть стандартний модуль (команди Project, Add Module, New, Открыть) і введіть такий код:

Option Base 1 'зміна нумерації індексів масиву

Public A(5,2) As Double  'масив доступний у всіх процедурах

4. Збережіть модуль з ім’ям Mod_Масив у папці на сервері.

5. Після цього закрийте вікно Codeі у формі двічі клацніть  на кнопці Заповнення елементів масиву, завдяки чому відкривається вікно коду процедури обробки події (клацання на командній кнопці) СmdMas_Click(), в якій створіть такий код:

Сls   ‘Очищення форми

Dim i,j As Integer

Povid$= "Bведіть значення елементів масиву"

For  і = 1 То 5

For j=1То2

A(i,j) = Val(InputBox(Povid$))

Print A(i,j)

     Next j

    Next і

6. Для створення наступної процедури обробки  події клацання  на кнопці Розраху­нокактивізуйте об'єкт cmdRezuIt із переліку об’єктів у вікні Code. Завдяки цьому відкривається процедура cmdRezult_CIick(), в якій створіть такий код:

Private Sub cmdRezult_CIick()

Dim S, SZ, Max As Double   'оголошення змінних

Dim i%, j%

Cls

Print "Масив А:"

Мах = А(1,1)   ' присвоєння значення першого елемента змінній Мах

S=0

For і = 1 To 5

For j  = 1 To 2

S = S + A(i,j)      ’обчислення  суми

If A(i, j) > Max Then

Max = A(i, j)

Print А(i, j)

 Next j

 Next і

Print "Максимальне значення ="; Max

SZ=S/6

SZ=Round(SZ,2) ‘середнє значення, заокр. до двох знаків післі коми

Print "Середнє значення ="; SZ

Print "Сума всіх елементів ="; S

End Sub

!!!Зверніть увагу на той факт, що опис масиву у цій процедурі не робиться, тому що цей масив описаний у стандартному модулі цього проекту, а тому може використовуватись без опису у всіх процедурах цього проекту.

7. Для створення наступної процедури обробки  події клацання  на кнопці Вихідактивізуйте об'єкт cmdExit із переліку об’єктів у вікні Code. Завдяки цьому відкривається процедура cmdExit_CIick(), в якій створіть такий код:

End

8. Збережіть цей проект у папці Мои документы локального комп’ютера з ім’ям Proj_Масив.

9. Запустіть проект на виконання.

  • У вікні форми натисніть кнопку Заповнення елементів масиву і у вікні введення даних надрукуйте за допомогою клавіатури довільні числа  (у даному випадку їх 10). Натискайте  клавішу Enter після введення у текстове поле кожного числа. Спостерігайте за виведенням чисел у форму.

  • Далі у вікні форми натисніть кнопку Розрахувати. Спостерігайте за виведенням обчислених величин  у форму.

  • Далі у вікні форми натисніть кнопку Вихід. Додаток буде закрито.

Завдання 3. Розробити додаток, в якому у двовимірний масив вводяться дані і обчислюється максимальне, середнє  значення та сума елементів масиву з застосуванням динамічного масиву.

(Можна відредагувати стандартний модуль і процедури подій у попередньому проекті Proj_Масив.vbp)

1. Для розробки такого додатку активізуйте новий проект  Visual Basic,   створіть  форму з 3 команд­ними  кнопками  з відповідними їх властивостями:

Cominand l  — Заповнення елементів масиву (Caption), cmdMas (Name);

Command 2  — Розрахувати (Caption), cmdRezult (Name);

Command 3  — Вихід (Caption), cmdExit (Name).

2. Збережіть форму з ім’ям F_Масив_D у папці Мои документы локального комп’ютера.

3. Далі створіть стандартний модуль (команди Project, Add Module, New, Открыть) і введіть такий код:

Option Base 1 ‘зміна нумерації індексів масиву

Public A() As Double  ‘масив доступний у всіх процедурах

Public m, n As Integer

4. Збережіть модуль з ім’ям Mod_Масив_D у папці Мои документы локального комп’ютера.

5. Після цього закрийте вікно Code і у формі двічі клацніть  на кнопці Заповнення елементів масиву, завдяки чому відкривається вікно коду процедури обробки події (клацання на командній кнопці) СmdMas_Click(), в якій створіть такий код:

Private Sub СmdMas_Click()

Dim i,j As Integer

Cls  'Очищення форми

n = Val(InputBox("Задайте кількість рядків"))

m = Val(InputBox("Задайте кількість cтовпців"))

ReDim A(m, n)

Povid$ = "Bведіть значення елементів масиву"

For і = 1 To m

For j = 1 To n

          A(і, j) = Val(InputBox(Povid$))

          Print A(і, j)

          Next j

          Next і

End Sub 

6. Для створення наступної процедури обробки  події клацання  на кнопці Розраху­нок активізуйте об'єкт cmdRezuIt із переліку об’єктів у вікні Code. Завдяки цьому відкривається процедура cmdRezult_CIick(), в якій створіть такий код:

Dim S, SZ, Max As Double   'оголошення змінних'

Dim i,j As Integer

Cls

Print "Масив А:"

Мах = А(1,1)   ' присвоєння значення першого елемента змінній Мах

S=0

For і = 1 To m

For j  = 1 To n

S = S + A(i,j)      'обчислення  суми

If A(i, j) > Max Then

 Max = A(i, j)  'порівняння значень змінної Max

 ’і значення поточного елемента

End If

Print А(i, j)

 Next j

 Next і

Print "Максимальне значення ="; Max

SZ=S/(m*n)

SZ=Round(SZ,2) ‘середнє значення заокр. до двох знаків післі коми

Print "Середнє значення ="; SZ

Print "Сума всіх елементів ="; S

End Sub

!!!Зверніть увагу на той факт, що опис масиву у цій процедурі не робиться, тому що цей масив описаний у стандартному модулі цього проекту, а тому може використовуватись без опису у всіх процедурах цього проекту.

7. Для створення наступної процедури обробки  події клацання  на кнопці Вихідактивізуйте об'єкт cmdExit із переліку об’єктів у вікні Code. Завдяки цьому відкривається процедура cmdExit_CIick(), в якій створіть такий код:

End

8. Збережіть цей проект у папці Мои документы локального комп’ютера з ім’ям Proj_Масив_D.

9. Запустіть проект на виконання.

  • У вікні форми натисніть кнопку Заповнення елементів масиву і у вікні введення даних надрукуйте за допомогою клавіатури  кількість рядків 2 і кількість стовпців 2, а далі введіть довільні числа  (у даному випадку їх 4). Натискайте  клавішу Enter після введення у текстове поле кожного числа. Спостерігайте за виведенням чисел у форму.

  • Далі у вікні форми натисніть кнопку Розрахувати. Спостерігайте за виведенням обчислених величин  у форму.

  • Далі у вікні форми натисніть кнопку Вихід. Додаток буде закрито.

10. Щоб надати розробленому проекту статусу незалежного додатку, потрібно зберегти цей проект як виконуваний (скомпільований файл) з розширенням ЕХЕ. Для цього потрібно у меню File вікна редактора Visual Basic  клацнути на команді Make Proj_ Масив_D.exe і вказати місце збереження та ім’я файлу. Збережіть додаток у вашій власній папці на сервері.

Завдання 4. Зробіть висновки. Запропонуйте свої варіанти розробки додатків. Захистіть виконану роботу.

Перелік питань  до захисту практичної роботи

  1. Що таке масив у Visual Basic?

  2. Що таке „елемент масиву”, „індекси елементу масиву”?

  3. Які різновиди масивів існують і чим вони відрізняються?

  4. Який синтаксис має опис масиву з фіксованими межами у Visual Basic?

  5. Який синтаксис має опис динамічного масиву  у Visual Basic?

  6. Як зробити масив доступним для всх процедур проекту у Visual Basic?

  7. Яка змінна називається глобальною змінною у Visual Basic? Наведіть приклад глобальних змінних, що використовувались у проетах цієї практичної роботи.

  8. Яке ключове слово використовується для опису глобальних змінних, глобальних масивів, глобальних процедур у Visual Basic?

  9. Яка функція застосовувалась у проектах цієї практичної роботи для заокруглення числових значень з заданою кількістю знаків після коми?

  10. Який засіб використовувався для введення даних у проектах цієї практичної роботи?

  11. Яку структуру має оператор циклу, що застосовувався при роботі з масивами?

  12. Яке призначення має команда Еrase прироботі з динамічними масивами?

  13. Яка команда використовується для призначення розмірності динамічного массиву?

  14. Як задаються межі змінної –лічильника циклу при роботі з динамічними масивами?

  15. Чи можуть бути індекси елементів масиву дійсними числами?

З повагою ІЦ “KURSOVIKS”!