Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_Масиви(1834).doc
Скачиваний:
4
Добавлен:
07.02.2016
Размер:
2.76 Mб
Скачать

4.2 Приклади завдання та розв’язок задач обробки одновимірних масивів

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

Приклад 4.2.1

Задано массив A(n). Знайти середнє арифметичне елементів масиву, які не перевищують задане число m .

Для наданої задачі розглянемо декілька способів рішення.

Спосіб 1

Додаємо до проекту модуль за ім.’ям Приклад1_1. Для відображення початкових значень, значень розрахунків використовуємо вбудовані вікна вводу InputBox , виводу MsgBox .

Приклади цих вікон в процесі роботи наведені на рис. 4.1 та рис. 4.2.

Рисунок 4.1 - Вікна введення

Рисунок 4.2 - Результати роботи програми

Код програми.

Private Sub Prim1()

Dim i As Integer, n As Integer, m As Single, sum As Single

Dim sa As Single, k As Integer, pov As String

Dim a() As Single

n = InputBox("Ввести кількість елементів n=", "Вікно вводу _ початкових даних")

ReDim a(n)

m = InputBox("Ввести число для умови m=", "Вікно вводу _ значень умов")

sum = 0: k = 0

For i = 1 To n

a(i) =InputBox("Ввести à(" & i & ")=", "Вікно введення _ елементів масиву")

If a(i) < m Then

sum = sum + a(i)

k = k + 1

End If

Next i

If k = 0 Then

pov = "таких елементів немає"

Else

sa = sum / k

pov = "середнє арифметичне елементів < " & m & " =" & CStr(sa)

End If

MsgBox pov, , "вікно результатів"

End Sub

Спосіб 2

Для організації введення даних і виведення результатів створимо форму, в якій розмістимо такі елементи керування:

  • написи Label1, Label2, Label3, Label4 , у яких властивості Caption змінені на тексти, що зазначені на рис. 4.3. Крім того, у написів змінена властивість Font - шрифт, його розмір - 10, і жирність – Bold ;

  • текстові поля TextBox1, TextBox2, TextBox3 - для введення початкової інформації. У цих об’єктів також змінена властивість Font;

  • текстове поле TextBox4 розташоване під написом „Відповідь”, призначене для виведення результату. Змінена властивість Font , властивості MultiLine = True , WordWrap=True, щоб виводити в полі текст у декілька рядків;

  • командна кнопка CommandButton1 , з якою зв’язується процедура рішення задачі. Змінена властивість Caption на текст, що зазначений на кнопці, властивості Font: розмір, жирність.

На рис. 4.3 наведена форма в процесі роботи, де введені числа в текстові поля для кількості елементів, числове значення для умови, натиснута командна кнопка „Обчислення” , відображені результати розрахунків.

Рисунок 4.3 - Форма в процесі роботи

Код програми:

Спосіб 3

Для відображення початкових значень та значень розрахунків використовуємо “Лист1” Excel . Елементи масиву розміщуються у першому стовпці, починаючи з четвертого рядка. Значення кількості елементів у клітині В1 , значення m – у клітині В2 . Розмістимо командну кнопку CommanButton1 на цьому листі, як показано на рис. 4.4. Встановимо значення для властивості Caption „Обчислення” , для Font: - „Начертание” значення - „жирный” , „Размер” – 14.

Вивести відповідне повідомлення про результати обчислень у клітині С7 .

Рисунок 4.4 - Інтерфейс Лист1

Код програми:

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

Рисунок 4.5 - Результати роботи програми

Приклад 4.2.2

Заданий масив цілих чисел A(n) . За бажанням користувача знайти або найбільший елемент масиву та його номер, або кількість кратних числу 5 елементів масиву.

Варіант розрахунку вибирається користувачем за допомогою перемикачів (OptionButton) .

Введемо змінну max , в яку будемо записувати найбільший з переглянутих на цю мить елементів масиву, змінну mp – для збереження номера цього елемента . Через k позначимо лічильник кратних числу 5 елементів. Спочатку вважаємо, що максимальний елемент, тобто max , дорівнює (-105) , що не повинно перевищувати елементи масиву A(n) .

Розглянемо два способи рішення задачі.

Спосіб 1

Добавимо форму до проекту. Інтерфейс задачі даний на рис. 4.6.

Змінимо властивості Caption , WordWrap для елементів OptionButton1, OptionButton2, CommandButton1, Label1, Label2, Label3 на відповідні тексти. Для текстового вікна (TextBox1) , в якому буде відображатись масив A(n) змінюємо властивості MultiLine , Scrollbars .

Рисунок 4.6 - Форма до задачі 2 для способу 1

Код програми

Вікна введення в процесі роботи програми показано на рис. 4.7.

Рисунок 4.7 - Вікна введення

На рис. 4.8 наведено приклад форми в процесі роботи.

Рисунок 4.8 - Форма в процесі роботи

Спосіб 2.

Розмістимо на робочому листі два перемикача, командну кнопку, з якою пов’язана процедура рішення відповідної задачі. Інтерфейс задачі наданий на рис. 4.9.

Рисунок 4.9 - Інтерфейс задачі для способу 2

Змінимо властивості Caption, WordWrap, MultiLine для елементів OptionButton1, OptionButton2, CommandButton1 на відповідні тексти та значення. Крім того, змінена властивість Font - шрифт, жирність – Bold .

Значення елементів масиву введемо на Лист1 у перший стовпець.

Код програми:

Результати роботи програми наведено на рис. 4.10.

Рисунок 4.10 - Результати роботи програми

Приклад 4.2.3

Упорядкувати за зростанням масив Х(n) після першого від’ємного елемента.

Існує багато алгоритмів рішення задачі сортування масиву. Розглянемо два варіанти та два способи рішення цієї задачі.

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

Введемо змінну pv, яка визначає номер першого від’ємного елемента.

Спосіб 1

Добавимо форму до проекту. Інтерфейс задачі наданий на рис. 4.11.

Змінимо властивості Caption, WordWrap для елементів CommandButton1, Label1, Label2, Label3 на відповідні тексти та значення True. У текстовому вікні TextBox1 набираємо значення кількості елементів масиву. Для текстових вікон (TextBox2, TextBox3 ), в яких буде відображатись початковий масив X(n) та впорядкований за умовою масив, змінюємо властивості MultiLine, Scrollbars, WordWrap на відповідні значення.

Рисунок 4.11 – Форма для рішення приклада 4.2.3 (спосіб1)

Код програми:

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

Рисунок 4.12 - Результати роботи програми

Спосіб 2.

Значення елементів масиву введемо на Лист2 у перший стовпець, перетворений масив розмістимо у другому стовпці. Розмістимо на цьому листі Excel , командну кнопку CommadButton1, з якою пов’язана процедура рішення відповідної задачі. Інтерфейс задачі наданий на рис. 4.13.

Встановимо значення для властивості Caption – „Упорядкування масиву” , для Font - Начертание значення - „жирный, „Размер” – 10.

Рисунок 4.13 - Інтерфейс задачі до способу 2

Код програми

Протокол рішення задачі наведено на рис. 4.14.

Рисунок 4.14 – Протокол рішення задачі