
- •1. Мова програмування. Класифікація мов програмування. Поняття про інтерпретацію та компіляцію. Інтегровані середовища програмування.
- •2. Загальна структура програми. Основні розділи програми і правила їх описання. Директиви препроцесора.
- •3. Поняття змінної. Оголошення змінної. Типи даних. Поняття локальних і глобальних змінних. Час життя змінної. Константи.
- •1. Char - символ
- •3. Float - число з плаваючою комою одинарної точності
- •4. Double - число з плаваючою комою подвійної точності
- •4. Поняття оператора. Різновиди операторів. Вирази. Основні правила запису, обчислення та використання виразів. Надання значень виразів змінним. Пріоритет операцій. Арифметичні операції,
- •5. Оператори введення та виведення: з використанням формату, символів, рядків.
- •Int printf (const char * керуючий_рядок, ...);
- •Int scanf (const char * керуючий_рядок, ...);
- •6. Вказівники та посилання. Адреси об’єктів в пам’яті. Динамічні структури даних.
- •7. Складені типи даних: масиви. Поняття масиву, одновимірні та багатовимірні масиви. Ініціалізація масивів та виведення їх на екран. Класичні алгоритми для роботи з масивами
- •8. Складені типи даних: рядки. Бібліотека функцій обробки рядків. Класичні алгоритми для обробки рядків
- •9. Складені типи даних: структури (записи)
- •10. Файлові типи даних. Файли прямого доступу.
- •11. Файлові типи даних. Файли послідовного доступу.
- •12. Алгоритмічна конструкція розгалуження та її графічне подання. Оператори розгалуження (умовний оператор та оператор вибору). Оператори зміни порядку виконання програми.
- •13. Алгоритмічна конструкція повторення та її графічне подання. Циклічні конструкції в мовах програмування. Оператори циклів. Оператори зміни порядку виконання програми.
- •14. Функціональний підхід в програмуванні. Рекурсія та її програмна реалізація.
- •15. Алгоритми пошуку: послідовний та бінарний пошук.
- •16. Алгоритм впорядкування : вибірка, вставка, обмін.
- •18. Абстрактні типи даних: лінійні списки
- •19. Абстрактні структури даних: стеки та черги
- •20. Абстрактні структури даних: двійкові дерева.
- •21. Наближені методи обчислення визначених інтегралів: метод лівих, правих та середніх прямокутників; метод трапецій; метод Сімпсона.
- •Метод Монте-Карло: зміст, приклади, застосування для обчислення площ складних фігур.
- •Наближені методи розв’язання алгебраїчних рівнянь: метод половинного ділення; метод хорд; метод дотичних.
- •Поняття моделювання та типи моделей. Класифікація моделей, інформаційна модель, математична модель як різновид інформаційної моделі. Основні етапи моделювання.
18. Абстрактні типи даних: лінійні списки
Список – це сукупність елементів, кількість яких може змінюватись в ході виконання програми. При цьому пам’ять для розміщення нового елементу виділяється і вивільняється динамічно по мірі необхідності. Зрозуміло, що для реалізації такого типу даних необхідно використовувати покажчики. Списки можуть реалізовуватись за допомогою одинарних або подвійних зв’язків. В списку з одинарними зв’язками кожен елемент містить покажчик на наступний елемент списку. В списку з подвійними зв’язками кожен елемент містить покажчики на попередній і наступний елемент списку. На сьогодняшній день найбільш часто використовуються списки з подвійними зв’язками. Це визвано тим, що список з подвійними зв’язками можна читати в обох напрямках, такий список легше відновлювати при пошкодженні і при використанні таких списків операції обробки інформації реалізуються простіше. Виходячи із сказаного ми будемо розглядати лише списки з подвійними зв’язками.
Основними операціями при роботі з списками є:
- додавання елементу до списку;
- вилучення елементу із списку;
- сортування елементів списку;
- пошук елемента списку, що відповідає заданому критерію пошуку.
Лінійний список в інформатиці та програмуванні визначається як екземпляр абстрактного типу даних, що формалізує концепцію впорядкованої множини елементів. Наприклад, абстрактний тип даних для безтипових, змінних списків можна визначити із допомогою конструктора та чотирьох операцій:
конструктор для створення порожнього списка;
операція визначення порожності списка;
операція для додавання елемента в початок списка (cons в Лісп);
операція отримання першого елемента списка (або «голови») списка (car в Лісп);
операція для визначення списка, що складається із всіх елементів списка окрім першого (або його «хвоста») (cdr в Лісп)
отримання k-го елемента списку для читання чи запису в нього нового значення;
додавання нового елемента в будь-яку позицію в списку;
видалення елемента списку;
об'єднання в одному списку двох або більше лінійних списків;
розбиття списку на два або більше фрагментів;
створення копії списку;
визначення кількості елементів в списку;
сортування елементів списку;
пошук елемента, що задовільняє певним критеріям.
Важливими окремими випадками лінійних списків, в яких операції додавання та вилучення певних значень можуть бути виконані лише для першого чи останнього елементу, є: стек – лінійний список, в якому операції додавання та вилучення виконуються лише на одному кінці списку (верхівці стеку). Принцип побудови стеку називають LIFO(англ. last in, last out).черга (однобічна черга)– лінійний список, в якому усі операції додавання виконується на одному кінці (в голові черги), а операції вилучення — на іншому кінці списку (в хвості черги). Принцип побудови черги називають FIFO (англ. first in, first out). дек або двобічна черга (англ. double-ended queue, deq)–лінійний список, в якому всі операції вставки та видалення виконуються на обох кінцях списку.
Не менш важливим окремим випадком лінійного списку є зв'язаний список, в якому кожний елемент окрім поля даних зберігає також вказівник на наступний. Така структура дозволяє зняти обмеження на зберігання лінійного списку в безперервній області пам'яті.
Важливим узагальненням лінійного списку є багатовимірний масив.