Лабораторна робота №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; просмотров: 1668;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.016 сек.