Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РГР.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
90 Кб
Скачать
☆

Короткі теоретичні відомості

Загальні положення

Visual Basic дає змогу виокремити фрагменти програми у допоміжні алгоритми програми, завдяки чому виникають добре структуровані програми. Мови програмування, в яких передбачені допоміжні алгоритми, називають процедурно-орієнтованими. Структоровані програми зазвичай простіші для розуміння та налагодження.

Наявність допоміжних алгоритмів у мові програмування дає змогу застосовувати спеціальні методи програмування і розробки складних програмних комплексів. Перший називають методом низхідного програмування або розробкою програми "зверху-вниз": спочатку створюють головну програму, в якій передбачено наявність деяких допоміжних алгоритмів, що вирішують певні задачі; потім переходять до детальної розробки перелічених вище допоміжних алгоритмів.

Іншим підходом проектування і розробки програм є метод висхідного проектування або проектування "знизу-вгору". У цьому випадку все розпочинається зі створення невеликих допоміжних алгоритмів, з яких потім створюють більш складні допоміжні алгоритми і, зрештою, головну програму.

У Visul Basic допоміжні алгоритми оформляють у вигляді процедур або функцій,які за своєю структурою подібні до звичайних програм і мають загальну назву – підпрограми. Підпрограми зазвичай розташовують на початку програми.

Опис підпрограм

Процедури та функції є головними компогнентами модулів VBA. Загальний вигляд процедури:

  • специфікатор – це одне з можливих значень:

[ Private / Public ] [ Static ]

Специфікатор Static означає, що всі локальні змінні процедури будуть статичними.

  • Необов’язковий елемент СписокПараметрів – це послідовність оголошень параметрів процедури, розділених комами:

ОголошенняПараметра1 [, ОголошенняПараметра2]…

Оголошення параметра має вигляд:

[СпецифікаторПараметра] Параметр[( )] [ As Тип ] [ = Значення ]

де СпецифікаторПараметра має вигляд:

[ Optinal ] [ByVal/ByRef] [ParamArray]

  • Параметр – назва змінної. Водночас з виклииком процедури її аргументи (фактичні параметри) можуть бути не тільки назвами змінних, але й виразами. Результати роботи підпрограми (певні значення) передаються у точку виклику процедури за допомогою одного чи декількох параметрів.

  • Якщо після параметра записані круглі дужки, то це означає, що цей параметр є масивом.

  • ТілоПроцедури задає послідовність операторів,серед яких можуть міститися оператори оголошення локальних даних процедури (змінні, константи, масиви тощо).

  • У тіло процедури можуть входити оператори Exit Sub, які ініціюють негайний вихід зпроцедури і передачу керування у викликаючу процедуру/функцію.

Функція відрізняється від процедури тим, що її назву використовують як змінну, що повертає значення функції у точку виклику. Крім того, замість ключового слова Sub вживають слово Function, а після списку параметрів може зазначатися тип результату функції. Якщо тип результату функції не зазначено, то за домовленістю приймається тип Variant. Функція повертає тільки одне значення, на відміну від процедури, що може повертати декілька значень.

  • У тілі функції має бути оператор присвоювання типу:

НазваФункції=Значення

Значення – деякий вираз. Вираз обчислюється, і отримане значення передається у точку виклику функції через її назву. Якщо при виході з функції значення НазвіФункції явно не присвоєно, то функція повертає значення за домовленістю для відповідного типу: для числових типів – нуль, для рядків - порожній рядок і т.д.

  • У ТілоФункції можуть входити оператори Exit Function , які ініціюють негайний вихід з функції та передачу керування у викликаючу підпрограму.

Програму на мові VB сформовано з одного чи декількох модулів. Модулі складаються з підпрогам. Підпрограми можуть викликати інші підпрограми. Коли одна підпрограма викликає іншу, то VB спочатку шукає підпрограму, що викликається, у тому самому модулі, в якому знаходиться підпрограма, що викликає. Якщо VB не знаходить відповідної підпрограми в цьому модулі, то перглядаються усі інші модулі поточного проекту. З метою прискорення процесу виклику підпрограм, розтшованих у різних модулях, можна зазначати назву модуля (через крапку) у вигляді префікса назви підпрограм.

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

Якщо всі підпрограми, що містяться в декількох модулях одного проекту, мають різні назви, то не виникає проблем під час виклику будь-якої підпрограми. Однак інколи необхідно мати дві підпрограми з однаковими назвами, які знаходяться у різних модулях. Під час виклику такої підпрограми треба квазувати назву підпрограми та префікс (через крапку) – назву модуля, в якому підпрограму розташовано.

Фактичними аргументами можуть бути:

  • змінні (прості та з індексами);

  • масив;

  • константа;

  • арифметичний вираз.

Дія:

При зверненні до процедури:

1) формальні параметри визначаються фактичними аргументами;

2) виконується процедура, в якій ім’я приймає значення;

3) значення передається в головний модуль.

Сортування масиву

Метою сортування масиву даних є їх упорядкування у відповідності до заданої умови. Найбільш частою умовою сортування даних є їх розташування за зростанням або за спаданням.

Типові алгоритми сортування:

Метод бульбашки

Ідея методу бульбашки полягає в послідовному порівнянні двох сусідніх елементів масиву. Якщо ці елементи не відповідають умові сортування, то їх значення міняються місцями. Перегляд елементів масиву виконується стільки разів, скільки потрібно для отримання повністю відсортованого масиву.

Метод вибору

Сортування вибором — простий алгоритм сортування лінійного масиву, на основі вставок. Має ефективність n2, що робить його неефективним при сортування великих масивів, і в цілому, менш ефективним за подібний алгоритм сортування включенням. Сортування вибором вирізняється більшою простотою, ніж сортування включенням, і в деяких випадках, вищою продуктивністю.

Сортування вибором

Алгоритм працює таким чином:

  1. Знаходить у списку найменше значення

  2. Міняє його місцями із першим значенням у списку

  3. Повторює два попередніх кроки, доки список не завершиться (починаючи з другої позиції)

Фактично, таким чином ми поділили список на дві частини: перша (ліва) — повністю відсортована, а друга (права) — ні.

Ось приклад сортування масиву з п'яти елементів за даним алгоритмом:

64 25 12 22 11

11 25 12 22 64

11 12 25 22 64

11 12 22 25 64

Сортування вставками також може працювати зі списками, які підтримують операції додавання і видалення, як то зв'язаний список. У такому разі, більш зручно видаляти зі списку найменший елемент, і вставляти його в кінець відсортованої частини масиву. Наприклад:

64 25 12 22 11

11 64 25 12 22

11 12 64 25 22

11 12 22 64 25

11 12 22 25 64

Аналіз

Сортування вибором не є складним в аналізі та порівнянні його з іншими алгоритмами, оскільки жоден з циклів не залежить від даних у списку. Знаходження найменшого елементу вимагає перегляду усіх n елементів (у цьому випадку n − 1 порівняння), і після цього, перестановки його до першої позиції. Знаходження наступного найменшого елементу вимагає перегляду n − 1 елементів, і так далі, для (n − 1) + (n − 2) + ... + 2 + 1 = n(n − 1) / 2 ∈ Θ(n2) порівнянь. Кожне сканування вимагає однієї перестановки для n − 1 елементів (останній елемент знаходитиметься на своєму місці).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]