Лабораторна робота №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
Дата добавления: 2016-07-27; просмотров: 1682;