Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
posibnuk VB 2011.doc
Скачиваний:
14
Добавлен:
07.11.2019
Размер:
3 Мб
Скачать
☆

Лабораторна робота №6. Вкладені цикли. Використання двовимірних масивів при розв’язуванні задач економічного характеру

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

Вкладені цикли. Приклади використання вкладених циклів.

В області дії одного циклу можуть бути організовані один або декілька інших циклів. В цьому випадку охоплюючий цикл називається зовнішнім, а вкладені в нього цикли – внутрішніми. Правила організації як зовнішнього, так і внутрішніх циклів аналогічні правилам організації простих циклів.

Параметри зовнішнього і внутрішнього циклів змінюються наступним чином: при одному значенні параметра зовнішнього циклу параметр внутрішнього циклу набуває всіх можливих значень. При організації вкладених циклів необхідно слідкувати за тим, щоб область дії внутрішнього циклу не виходила за область дії зовнішнього циклу.

Обробка елементів двовимірних масивів вимагає, зазвичай, використання вкладених циклів.

Розглянемо детальніше використання двовимірних масивів при розв’язуванні задач економічного характеру.

Приклад 1.

Місячні сальдо М рахунків за перший квартал (дебетові сальдо задані додатними величинами, кредитові – від’ємними) задані у вигляді таблиці 6.1:

Таблиця 6.1

Місячні сальдо за перший квартал

Січень

Лютий

Березень

S11

S12

S13

Місячне сальдо по 1-рахунку

…

…

…

Sm1

Sm2

Sm3

Місячне сальдо по m-рахунку

а) Необхідно визначити та вивести на екран кількість та суму всіх дебетових сальдо.

Можливий варіант розміщення об’єктів на формі показаний на рис. 6.1.

Рис. 6.1. Зразок розташування об’єктів на формі

Пропонується наступний програмний код розв’язку даної задачі:

Private Sub Command1_Click()

Const m% = 4

Const n% = 3

Dim Sum As Single

Dim S(1 To m%, 1 To n%) As Single

Debug.Print " Масив місячних сальдо S"

For i% = 1 To m%

For j% = 1 To n%

Title$ = "Введіть значення елементів масиву S"

Prt$ = "елемент S(" & i% & "," & j% & ")"

S(i%, j%) = Val(InputBox(Prt$, Title$))

Debug.Print Format(S(i%, j%), "00.00"); " ";

Next j%

Debug.Print

Next i%

Debug.Print

Sum = 0: Kil% = 0

For i% = 1 To m%

For j% = 1 To n%

If S(i%, j%) > 0 Then

Sum = Sum + S(i%, j%)

Kil% = Kil% + 1

End If

Next j%

Next i%

Debug.Print "Сума дебетових сальдо= "; _

Format(Sum, "###.000")

Debug.Print "Кількість дебетових сальдо= "; _

Format(Kil%, "###")

End Sub

Результати виконання програмного коду показані на рис. 6.2.

Рис. 6.2. Результати виконання програми

б) Необхідно запам’ятати в одновимірному масиві та вивести на екран всі дебетові сальдо.

Пропонується наступний програмний код розв’язку даної задачі:

Private Sub Command1_Click()

Const m% = 2, n% = 3

Dim S(1 To m%, 1 To n%) As Single

Dim SD(1 To m% * n%) As Single

Title$ = "Введіть елементи масиву S"

Debug.Print "Масив сальдо S"

For i% = 1 To m%

For j% = 1 To n%

Prt$ = "S(" & i% & "," & j% & ")"

S(i%, j%) = Val(InputBox(Prt$, Title$))

Debug.Print Format(S(i%, j%), "00.00"); " ";

Next j%

Debug.Print

Next i%

kild% = 0

For i% = 1 To m%

For j% = 1 To n%

If S(i%, j%) > 0 Then

kild% = kild% + 1

SD(kild%) = S(i%, j%)

End If

Next j%

Next i%

Debug.Print "Масив дебетових сальдо"

For i% = 1 To kild%

Debug.Print Format(SD(i%), "###.00"); " ";

Next i%

Debug.Print

End Sub

Результати виконання програмного коду розміщені на рис. 6.3.

Рис. 6.3. Результати роботи програми

Приклад 2.

Зразок програмного коду задачі виведення результатів екзаменаційної сесії в табличній формі:

Private Sub Command1_Click()

Const n% = 2

Const m% = 4

Dim PRZV(1 To n%) As String * 20

Dim BAL(1 To n%, 1 To m%) As Integer

'Введення масиву прізвищ та ін.

For I% = 1 To n%

Title$ = "Введіть прізвище та ініціали " & I% & "- го студента"

Prt$ = "PRSV(" & I% & ")"

PRZV(I%) = InputBox(Prt$, Title$)

Next I%

'Введення балів студентів з іспитів

For I% = 1 To n%

For j% = 1 To m%

Title$ = "Введіть бали " & I% & "-го " & "студента"

Prt$ = "з " & j% & "-го іспиту "

BAL(I%, j%) = Val(InputBox(Prt$, Title$))

Next j%

Next I%

'Побудова горизонтальної лінії

For I% = 1 To 74

Debug.Print "_";

Next I%

Debug.Print

'Побудова шапки таблиці

Debug.Print "I № I I";

Debug.Print " Екзаменаційна оцінка(бал) I"

Debug.Print "I з/п I Прізвище та I";

Debug.Print Tab(26);

For I% = 1 To 48

Debug.Print "_";

Next I%

Debug.Print "I"

Debug.Print "I I ініціали I";

Debug.Print " Інформатика I Вища I БЖД I Історія I"

Debug.Print "I I I ";

Debug.Print " I математикаI I України I"

For I% = 1 To 74

Debug.Print "_";

Next I%

Debug.Print

'Виведення даних таблиці

For I% = 1 To n%

Debug.Print Tab(3); I%; Tab(8); Format(PRZV(I%), _ "####################"); _

Tab(31); Format(BAL(I%, 1), "########"); Tab(45); _ Format(BAL(I%, 2), "########"); _

Tab(56); Format(BAL(I%, 3), "########"); Tab(67); _ Format(BAL(I%, 4), "########")

Next I%

For j% = 1 To 74

Debug.Print "_";

Next j%

Debug.Print

End Sub

Завдання для виконання лабораторної роботи №6

I. Завантажити середовище візуального програмування Visual Basic.

II. Розглянути зразок форми та програмних кодів (кнопка ОБЧИСЛИТИ) прикладу 1 (ст. 96) та прикладу 2 (ст. 100).

III. Використовуючи наведені зразки, побудувати алгоритм розв’язку, спроектувати форму та ввести програмний код розв’язування наведених нижче задач.

В таблиці наведені результати екзаменаційної сесії студентів групи ОіА-17

№ з/п

Прізвище, ініціали

Екзаменаціна оцінка (бал)

Інформатика

Вища математика

БЖД

Історія України

1

Афонова П.К.

60

60

60

63

2

Бур Д. Ж.

65

69

60

75

3

Волов К.Т.

76

74

65

81

4

Генок В.Ю.

90

85

82

100

5

Дермін Ф.З.

84

85

87

82

6

Крас К.М.

74

74

74

74

7

Лузь Ц.П.

63

60

60

68

8

Марінюк О.Т

60

64

60

72

Створити двовимірний масив BAL(8,4), в який записати оцінки (бали) студентів, отримані ними на іспитах. Вивести дані з масиву BAL на екран у вигляді таблиці (див. приклад 2). Виконати обчислення згідно варіанта:

  1. Знайти мінімальну і максимальну оцінки студентів групи за сесію. Обчислити середній бал кожного студента.

  1. Обчислити середній бал другого за списком студента. Знайти його мінімальну і максимальну оцінки.

  1. Обчислити середній бал студентів групи з інформатики.

  1. Обчислити кількість оцінок “задовільно” за сесію усіх студентів групи. (Оцінка “задовільно” відповідає кількості балів в межах від 60 до 73).

  1. Обчислити середній бал студентів групи з вищої математики.

  1. Обчислити кількість оцінок “В” за сесію усіх студентів групи. (Оцінка “В” відповідає кількості балів в межах від 82 до 89).

  1. Обчислити середній бал студентів групи з БЖД.

  1. Обчислити кількість оцінок “С” за сесію усіх студентів групи. (Оцінка “С” відповідає кількості балів в межах від 74 до 81).

  1. Обчислити середній бал останнього за списком студента. Знайти його мінімальну і максимальну оцінки.

  1. Обчислити середній бал студентів групи з історії України.

  1. Обчислити кількість оцінок “Е” за сесію усіх студентів групи. (Оцінка “Е” відповідає кількості балів в межах від 60 до 63).

  1. Обчислити середній бал четвертого за списком студента. Знайти його мінімальну і максимальну оцінки.

  1. Обчислити кількість оцінок “D” за сесію усіх студентів групи. (Оцінка “D” відповідає кількості балів в межах від 64 до 73).

  1. Обчислити середній бал першого за списком студента. Знайти його мінімальну і максимальну оцінки.

  1. Обчислити максимальний і мінімальний бали групи студентів за сесію.

IV. Зберегти проект в папці Lab6_z1.

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

Продемонструвати створений проект викладачеві.

VI. Записати отримані результати.

VI. Захистити виконану роботу.

Контрольні запитання

  1. Які цикли називають вкладеними?

  2. Назвіть правила організації вкладених циклів.

  3. Як здійснюється обробка елементів двовимірних масивів?

  4. Оголошення двовимірних масивів.

  5. Організація введення-виведення елементів двовимірних масивів.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]