
- •§ 1. Поняття про інформаційне моделювання
- •Опорний конспект
- •§ 2. Етапи розв’язання задач на комп’ютері
- •§ 3. Середовища розробки проектів
- •§ 4. Властивості елементів керування
- •§ 1. Поняття про інформаційне моделювання 2
- •Контрольна робота № 1
- •§ 5. Створення проектів
- •§ 6. Основні поняття мови програмування
- •9. Процедура кнопки «Обчислити» для задачі про калькулятор.
- •§ 7. Алгоритм та його властивості
- •Запитання
- •§ 8. Різновиди алгоритмів
- •Запитання
- •§ 9. Типи даних
- •§ 10. Лінійні програми
- •Запитання та вправи
- •Контрольна робота № 2
- •§11. Введення даних і виведення результатів
- •§ 12. Текстові файли даних
- •§ 13. Програми з розгалуженням
- •§ 1. Поняття про інформаційне моделювання 2
- •Запитання
- •§ 14. Елементи керування прапорці і перемикачі
- •§ 15. Алгоритмічна конструкція вибір
- •Контрольна робота № 3
- •§ 16*. Списки
- •§ 17. Підпрограми. Функції користувача
- •§ 18. Підпрограми. Процедури користувача
- •§ 19. Цикли. Цикл з параметром
- •§ 20. Задачі пошуку даних. Цикл «доки»
- •§ 21. Застосування циклів
- •Контрольна робота № 4
- •Розділ 2. Складені структури даних
- •§ 22. Одновимірні масиви. Створення масивів
- •§ 23. Пошук даних в одновимірному масиві
- •1. Пошук даних у масиві за заданим критерієм.
- •5. Проект «На метеостанції». Застосування масивів і процедур користувача у vb.
- •§ 24. Впорядкування одновимірного масиву
- •§ 1. Поняття про інформаційне моделювання 2
- •4. Моделювання предметних областей за допомогою масивів.
- •§ 25. Двовимірні масиви. Створення масивів
- •§ 26*. Опрацювання двовимірних масивів
- •1. Елементи керування DataGridView (vb) та DataGrid (vba).
- •Контрольна робота № 5
- •§ 27. Опрацювання текстових даних
- •§ 28. Структури даних (записи)
- •§ 1. Поняття про інформаційне моделювання 2
- •§ 29. Файли даних прямого доступу
- •5. Vb. Команди для роботи з файлами даних прямого доступу.
- •§ 30. Застосування файлів даних послідовного доступу
- •§ 31. Графіка у vb
- •§ 32. Поняття про об’єктно-орієнтоване програмування
- •Розділ 3. Задачі
- •Складніші задачі*
- •Розділ 4. Vba у програмах пакету ms office
- •§ 33. Застосування vba у ms word
- •§ 34. Vba у програмі ms excell
- •§ 35. Задача про облік товарів на складі
- •§ 36. Розв’язування математичних задач
- •§ 37. Робота 3 базами даних
- •Список літератури
- •§ 1. Поняття про інформаційне моделювання 2
§ 24. Впорядкування одновимірного масиву
Опрацювавши цей параграф, ви зможете виконувати складний пошук даних у масиві та впорядковувати елементи масиву за зростанням чи спаданням значень.
1. Застосування допоміжних змінних для розв’язування складніших задач пошуку даних у масиві за заданим критерієм. Розглянемо задачу, для розв’язування якої вводиться додаткова змінна flag,, яка сигналізує про настання деякої події.
Задача 1. У заданій числовій послідовності знайти третій додатний елемент або вивести повідомлення, що такого значення немає. Числову послідовність занести в структуру даних — масив.
Розв’язування. Розглянемо такі значення числової послідовності: -3, 5, 4, -5, 7, 9.
Третім елементом є число 4, а ось третім додатним є число 7. лже, очікувана відповідь — 7.
Розглянемо іншу числову послідовність: -3, 5, 4, -5, -7, -9.
У ній немає третього додатного елемента. Очікувана відповідь — повідомлення «Такого елемента немає».
Вважатимемо, що числову послідовність занесено у масив А. Розглянемо код розв’язування задачі 1.
Dim А(6) As Integer
Dim flag As Integer, і As Integer
A(1) = -3 : A(2) = 5 : A(3) = 4 : A(4) = -5 : A(5) = 7 : A(6) = -9
flag = 0
For і = 1 To 6
If A(i) > 0 Then flag = flag + 1
If flag = 3 Then b = A(i): Exit For
Next
If flag = 3 Then
<вивести b>
Else
<вивести "Такого елемента немає">
End If
Зверніть увагу, якщо третій додатний елемент знайдено, то переглядати масив далі немає сенсу. У цьому випадку для завчасного оду з циклу застосовано команду Exit For.
Завдання 1. Скласти код пошуку другого від’ємного елемента сиву (послідовності). У масиві А другий від’ємний елемент — число -5.
Завдання 2*. У масиві А другий від’ємний елемент (тут -5) посияйте місцями з другим елементом (за розташуванням). Другим розташуванням у масиві А є елемент зі значенням 5.
2. Упорядкування масиву методом обміну. Розглянемо невпорядкований набір з шести чисел: 3, 5, 6, 4, 2, 1. Ці числа введемо в одновимірний масив А.
Задача 2. Упорядкувати елементи масиву А за зростанням (1, і 3, 4, 5, 6) або за спаданням (6, 5, 4, 3, 2, 1) значень.
Метод обміну. Складемо алгоритм упорядкування елементів масиву за зростанням методом обміну. Цей метод інакше називають методом «бульки».
У методі обміну спочатку розглядають перші два елементи масиву. Якщо 1-й елемент більший, ніж 2-й, то їх міняють місцями далі 2-й елемент порівнюють з 3-м і, якщо потрібно, застосовують обмін, і т. д. Максимальний елемент (значення 6) розташується і кінці масиву, тобто там, де потрібно.
Після цього знову розглядають масив, але вже без останньої? елемента, і застосовують до його елементів метод обміну — другий за величиною елемент (значення 5) опиниться в масиві на передостанній позиції і т. д.
Якщо масив має п елементів, то метод треба застосувати п - разів (кожного разу до меншої кількості елементів). Упорядковані елементи будуть нагромаджуватися в кінці масиву. Кількість порівнянь і обмінів на кожному кроці утворює спадну арифметичну прогресію з елементами від п-1 до 1. Суму цих чисел — загальну кіль кість порівнянь — називають складністю алгоритму. Сума дорівнює (п2 — п) /2. Кажуть, що складність описаного алгоритму пропорційна до квадрата елементів, що в математиці позначають так: 0(n2).
Наведемо більш формальний словесний опис алгоритму розв’язування задачі 2. Нагадаємо, що елементів є шість (п=6).
1.j=1.
1.1. Порівняти 1-й елемент з 2-м. Якщо 1-й елемент більший, то поміняти їх місцями.
1.2. Порівняти 2-й елемент з 3-м. Якщо 2-й більший, то поміняти їх місцями.
…
1. n—j. Порівняти два останні елементи. Якщо передостанній більший, то поміняти їх місцями.
Після такого процесу найбільший елемент розташується в кінці масиву, але попередні елементи ще не будуть упорядковані. Тому тре ба застосувати описаний вище алгоритм до перших п - j елементів:
2. j = 2. Застосувати пункти 1.1—1.n—j для п’яти перших елементів.
3. j = 3. Застосувати 1.1—1.n—j для чотирьох перших елементів.
4. j = 4. Застосувати 1.1—1.n—j для трьох перших елементів.
5. j = n-1. Застосувати 1.1—1.n—j для двох перших елементів.
Переконайтеся, що описаному вище алгоритму відповідає код:
' Упорядкування чисел
Dim А(6) As Integer
Dim n, і, j. с As Integer
A(1 ) = 3: A(2) = 5 : A(3) = 6
A(4) = 4 : A(5) = 2 : A(6) = 1
n = 6
For j = 1 To n – 1
For i = 1 To n -j
If A(i) > A(i + 1) Then 'Обмін місцями
с = A(i)
A(i) = A(i + 1)
A(i + 1) = с
End If
Next і
'Виведемо проміжні результати
For і = 1 То n
<вивести у список або в рядок А(і); >
Next і
<вивести (перейти на новий рядок)>
MsgBox”Далі”)
Next j
Виконаємо програму. Розглянемо зовнішній цикл. Спочатку j=1. Після виконання внутрішнього циклу (для і від 1 до 5) масив буде таким: 3, 5, 4, 2, 1, 6. Далі матимемо:
Розділ 1. ОСНОВИ ПРОГРАМУВАННЯ 2