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



ЗНАЕТЕ ЛИ ВЫ?

Лабораторна робота №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

 

№ з/п Прізвище, ініціали Екзаменаціна оцінка (бал)
Інформатика Вища математика БЖД Історія України
  Афонова П.К.        
  Бур Д. Ж.        
  Волов К.Т.        
  Генок В.Ю.        
  Дермін Ф.З.        
  Крас К.М.        
  Лузь Ц.П.        
  Марінюк О.Т        

 

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

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

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

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

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

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

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

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

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

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

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

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

Тестові завдання

 

1. Ім'я змінної може містити:

 

a. 235 символів

b. 125 символів

c. 255 символів

d. 155 символів

 

2. До числових типів даних належать:

 

a. Integer, Long, Object

b. Double, Integer, Long, String

c. Integer, Long, Date, Double

d. Long, Integer, Single, Double

 

3. Вкажіть правильне оголошення масиву:

 

a. Dim MAS (For i=1 to 10) As Integer

b. Dim MAS (1 to 10) As Integer

c. Dim MAS (i=1 to 10 step 1) As Integer

d. Dim MAS (i=1, 10) As Integer

 

4. До математичних операцій належить:

 

a. mod + - * / \ ^

b.: + - * ^

c. + - * / ^ And

d. Or / + - * ^

 

5. Функція Val(S):

 

a. Перетворює рядок S в числовий вираз

b. Перетворює числовий вираз S в рядок

c. Повертає число символів у рядку S

d. Оголошує змінну S

 

6. Вкажіть правильний варіант застосування суфіксів:

 

Тип Суфікс

a. Integer &

b. Long %

c. Single $

d. Double #

 

7. Функція Str(n):

 

a. Оголошує змінну n

b. Повертає число символів у рядку n

c. Перетворює рядок n в числовий вираз

d. Перетворює числове значення n в рядок

 

8. Логічна функція And повертає значення True, якщо:

 

a. всі вирази, що беруть участь у конструкції, мають значення True

b. всі вирази, що беруть участь у конструкції, мають значення False

c. хоч один з виразів, що беруть участь у конструкції, має значення True

d. хоч один з виразів, що беруть участь у конструкції, має значення False

 

9. Вікно функції InputBox має:

 

a. 3 кнопки керування

b. 2 кнопки керування

c. 4 кнопки керування

d. 5 кнопок керування

 

10. У методі Print для виведення інформації у потрібному форматі використовується:

 

a. функція Str(n)

b. функція Format(<вираз>, <формат>)

c. Spc(<кількість>)

d. функція Tab(<номер позиції>)

 

11. Вкажіть правильний варіант запису конструкції For:

 

a. For <лічильник> = <поч.значення>To<кін.значення> _

Step <крок>

<конструкції>

Next

b. For <лічильник > = <поч.значення> Step <крок>

<конструкції>

Next

c. For <лічильник> = <поч.значення>To<кін.значення> _

Step <крок>

<конструкції>

End

d. For <лічильник>=<поч.значення>To<кін.значення>

Step <крок>

<конструкції>

Еnd For

 

12. Вкажіть правильний варіант застосування суфіксів:

 

Тип Суфікс

a. Long!

b. Single #

c. Double &

d. String $

 

13. Вкажіть правильний варіант запису конструкції Do Until:

 

a. Do Until <умова>

<конструкції>

Loop

b. Do Until <умова>

<конструкції>

End Until

c. Do Until <умова>

<конструкції>

End

d. Do Until <умова>

<конструкції>

End Do

 

14. Вказати правильний запис імені змінної:

 

a. 1Name

b. Ojojoj

c. Meb1.5

d. Object

 

15. Вкажіть правильний варіант застосування суфіксів:

 

Тип Суфікс

a. Integer @

b. Long #

c. Single!

d. Double $

 

16. Вказати правильне оголошення константи:

 

a. Dim Const n%=5

b. Const n%:=5

c. Const=5

d. Const n%=5

 

17. Для запису декількох операторів у одному рядку використовується символ:

 

a. "

b.:

c.;

d.,

 

18. Для продовження запису оператора на наступний рядок використовуються:

 

a. _

b. +

c.:

d.;

 

19. Вкажіть правильний варіант застосування суфіксів:

 

Тип Суфікс

a. Single &

b. Double $

c. String #

d. Currency @

 

20. Для запису коментарів використовується символ:

 

a. '

b. "

c. +

d.:

 

21. У методі Print для виведення значення із заданої позиції поточного рядка використовують:

 

a. функцію Spc(<кількість пропусків >)

b. функцію Tab(<номер позиції>)

c. функцію Format(<вираз>, <формат>)

d. функцію Str(n)

22. Значення True властивості MultiLine:

 

a. дозволяє об'єкту працювати більш ніж з одним стовпчиком

b. дозволяє об'єкту працювати більш ніж з одним рядком

c. дозволяє об'єкту працювати більш ніж з одним об'єктом

d. дозволяє об'єкту працювати більш ніж з одним проектом

 

23. Написи у формі можна розміщувати за допомогою елемента:

 

a. Text

b. Form

c. CommandButton

d. Label

 

24. Вказати команду переривання циклу до його повного завершення:

 

a. End

b. Close

c. Command

d. Exit

 

25. Вкажіть правильний варіант застосування суфіксів:

 

Тип Суфікс

a. Integer %

b. Long!

c. Single &

d. Double $

 

26. У методі Print для виведення заданої кількості пропусків використовують:

 

a. функцію Str(n)

b. функцію Tab(<номер позиції>)

c. функцію Spc(<кількість>)

d. функцію Format(<вираз>, <формат>)

 

27. Логічна функція Or повертає значення False, якщо:

 

a. хоч один з виразів, що беруть участь у конструкції, має значення False

b. хоч один з виразів, що беруть участь у конструкції, має значення True

c. всі вирази, що беруть участь у конструкції, мають значення False

d. всі вирази, що беруть участь у конструкції, мають значення True

 

28. Вкажіть правильний варіант запису конструкції If:

 

a. If <умова> Then <послідовність операторів1>

Else

<послідовність операторів2>

End If

b. If <умова> Then < послідовність операторів1> Else

<послідовність операторів2>

If End

c. If <умова> Then

<послідовність операторів1>

Else

<послідовність операторів2>

End If

d. If <умова> Then <послідовність операторів1>

Else

<послідовністьоператорів2>

EndIf

 

29. Вкажіть правильний варіант запису конструкції Do While:

 

a. Do While <умова>

<конструкції>

Loop

b. Do While <умова>

<конструкції>

End While

c. Do While <умова>

<конструкції>

End

d. Do While <умова>

<конструкції>

End Do

 

30. Вкажіть правильний варіант застосування суфіксів:

 

Тип Суфікс

a. Integer!

b. Long &

c. Single %

d. Double $



Поделиться:


Последнее изменение этой страницы: 2016-08-12; просмотров: 268; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

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