Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛЕКЦІї.docx
Скачиваний:
37
Добавлен:
10.11.2018
Размер:
280.19 Кб
Скачать

1.3. Основні операції над структурами даних

В усіх типах структур даних найзагальнішими є наступні чотири операції.

1. Операція "створити". Присутня в усіх системах обробки даних, але по різному реалізована. Наприклад, у мовах Сі, Фортран, Паскаль та інших змінні можуть бути створені за допомогою операторів описання. Пам'ять для змінних у цих мовах виділяється під час виконання або компіляції програми, в залежності від того, як здійснюється розподіл пам’яті - динамічно або статично. Є й інші способи створення структур даних. Але важливо те, що незалежно від мови програмування всі структури даних, що є в програмі, не можуть виникнути "із нічого", а явно чи неявно оголошуються операторами створення структур.

2. Операція "ліквідувати". Вона не є необхідною, але допомагає ефективно використовувати пам’ять. Деякі мови, наприклад такі, як Фортран, не дають програмісту можливості ліквідувати створені структури даних. У мові Сі структури даних, що є в середині блоку програми, ліквідовуються в процесі виконання програми при виході з цього блоку.

3. Операція "вибрати". Дає програмісту можливість здійснити доступ до даних в середині самої структури. Форма цієї операції у великій мірі залежить від типу структури даних, до якої відбувається звертання, і є однією з найважливіших властивостей структур.

4. Операція "поновити" дозволяє змінювати дані в структурі. Операція присвоєння є наочним прикладом операції поновлення. Для неї існують і інші складніші форми, наприклад, передача параметрів при вході в блок або підпрограму.

Перелічені операції є загальними для всіх структур даних, але форма їх реалізації суттєво залежить від типу самих структур.

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

  1. Що таке об’єкти предметної області та їх атрибути

  2. Що таке дані?

  3. Які існують інформаційні одиниці даних?

  4. Які є структуровані типи даних?

  5. Які бувають сукупності даних?

  6. Які є типи зв’язків між компонентами структур?

  7. Що передбачає ієрархічне відношення між сукупностями?

  8. Які є класи структур даних?

  9. Що відноситься до найпростіших структур даних?

  10. Який тип зв‘язку визначає клас лінійних структур даних?

  11. Який тип зв‘язку визначає клас нелінійних структур даних?

  12. Назвіть основні операції над структурами даних.

Лекція 2 алгоритми. Складність алгоритмів

1. Зображення алгоритмів

Алгоритм – це формально описана обчислювальна процедура, яка отримує вихідні дані та видає результат обчислень на виході. Вихідні дані також називаються входом алгоритму або його аргументом. Алгоритми будуються для розв‘язку тих або інших обчислювальних задач. Формулювання задачі описує, яким вимогам повинен задовольняти розв‘язок задачі. Алгоритм, що розв‘язує цю задачу, знаходить об‘єкт, який задовольняє даним вимогам.

Алгоритм вважається правильним, коректним, якщо для будь-якого входу він закінчує роботу та видає результат, що задовольняє вимогам задачі.. Неправильний алгоритм може зовсім не закінчити роботи або дати невірний результат.

Способи зображення алгоритму різноманітні. Це може бути описана послідовність кроків, блок-схема, псевдокод та інше.

Зображення алгоритмів найкраще пояснити на прикладі. Розглянемо алгоритм знаходження елемента вектора з найбільшим алгебраїчним значенням.

Алгоритм GТ визначає найбільший за значенням елемент вектора А , що містить n елементів, і присвоює його значення величині МАХ . Символ і використовується у ролі індексу елемента вектора А .

GТ1. Перевірка умови - чи вектор не порожній?

Якщо n <1 , то - друк повідомлення;  GТ6.

GТ2. Початок: МАХ = А[1], i=2.

GТЗ. Повторення кроків GТ4 , GТ5 доти, доки i<=n.

GТ4. Заміна значення MAХ , якщо воно менше від значення наступного елемента: якщо МАX <A[i] , то MAX =А[i]

GТ5. i= i + 1.

GТ6. Кінець, вихід.

Алгоритму присвоєно ім'я GТ. За ним іде короткий опис задачі, яку розв'язує алгоритм, і водночас описуються всі змінні, які тут використовуються. Після цього наводиться сам алгоритм у вигляді послідовності кроків. Кожний крок описується фразою, яка коротко пояснює дію, що виконується. Символ "  " замінює оператор переходу go to в мовах програмування . Крок GT3 є аналогом заголовку циклу в мовах програмування. Коли значення індексу і перевершить величину n, відбудеться перехід на крок GT6 (наступний після кінця циклу).

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

В алгоритмах часто зустрічається слово "ініціалізація", що означає призначення деяких початкових значень змінним алгоритму. Слово "трасування" слід розуміти як запис послідовності виконуваних дій алгоритму і їх результатів для конкретних даних задачі.

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