- •20.Операції над вказівниками
- •21. Розподіл памяті
- •22. Списки
- •23. Лінійні списки
- •25.Моделі памяті
- •26. Двійкова, шістнадцяткова системи. Подання чисел в різних системах числення.
- •Переклад чисел з шістнадцяткової системи в десяткову
- •Переклад чисел із двійкової системи в шістнадцяткову та навпаки
- •27. Константи, змінні, типи даних
- •29. Основні оператори: присвоєння , розгалуження, множинний вибір, цикл.
- •До операторів вибору відносять оператор умовного переходу if та оператор-перемикачswitch.
- •Процес розгалуження при обчисленні функції за першою або другою формулами здійснюється умовним оператором if.
- •30. Типи циклів та принципи їх застосування
22. Списки
Зв'язаний список в програмуванні — одна з найважливіших структур даних, в якій елементи лінійно впорядковані, але порядок визначається не номерами елементів, а вказівниками, які входять в склад елементів списку та вказують на наступний за даним елемент (в однозв'язаних або однобічно зв'язаних списках) або на наступний та попередній елементи (в двозв'язаних або двобічно зв'язаних списках). Список має «голову» — перший елемент та «хвіст» — останній елемент.
В однобічно зв'язаному списку, який є найпростішим різновидом зв'язаних списків, кожний елемент складається з двох полів:data або даних, та вказівника next на наступний елемент. Якщо вказівник не вказує на інший елемент (інакше: next = NULL), то вважається, що даний елемент — останній в списку.
В двобічно зв'язаному списку елемент складається з трьох полів — вказівника на попередній елемент prev, поля даних dataта вказівника next на наступний елемент. Якщо prev=NULL, то в елемента немає попередника (тобто він є «головою» списку), якщо next=NULL, то в нього немає наступника («хвіст» списка).
В кільцевому списку перший та останній елемент зв'язані. Тобто, поле prev голови списка вказує на хвіст списка, а поле nextхвоста списка вказує на голову списка.
Списки інтенсивно застосовуються в програмуванні як самостійні структури. Також на їх основі можуть будуватись складніші структури даних, такі як дерева. На базі списків також можуть бути реалізовані стеки та черги.
23. Лінійні списки
Лінійний список в інформатиці та програмуванні визначається як екземпляр абстрактного типу даних, що формалізує концепцію впорядкованої множини елементів. Наприклад, абстрактний тип даних для безтипових, змінних списків можна визначити із допомогою конструктора та чотирьох операцій[1]:
конструктор для створення порожнього списку;
операція визначення порожності списку;
операція для додавання елемента в початок списку (cons в Лісп);
операція отримання першого елемента списку (або «голови») списку (car в Лісп);
операція для визначення списку, що складається із всіх елементів списку окрім першого (або його «хвоста») (cdr в Лісп).
24.Структура програми на с++ і етапи її обробки
1.1 Етапи розробки програм
1) Постановка задачі (звичайною мовою, можливо, без задіяння ЕОМ)
2) Аналіз, формалізований опис задачі, вибір математичної моделі.
3) Вибір або розробка алгоритму розв’язання.
4) Проектування загальної стурктури програми з використанням від- повідних методологій (напр., «зверху-вниз»).
5) Кодування (переведення алгоритму на обрану мову програмуван- ня).
6) Налагодження та верифікація програми (синтаксичні помилки, як правило, вказує компілятор, логічні помилки потрібно перевіряти на тестових задачах).
7) Одержання результатів, їх інтерпретація і можлива модифікація моделі.
8) Публікація або передача замовнику програми.
9) Супровід програми.
Будь-яка програма на C складається з однієї або декількох функцій. Обов'язково має бути визначена єдина головна функція main(), саме з неї завжди розпочинається виконання програми. У хорошому початковому тексті програми головна функція завжди містить оператори, що відбивають суть вирішуваної задачі, найчастіше це виклики функцій. Хоча main() і не є ключовим словом, відноситися до нього слід як до ключового. Наприклад, не слід використати main як ім'я змінної, оскільки це може порушити роботу транслятора.
Структура програми C зображена на мал. 1.1, тут f1() — fN() означають функції, написані програмістом.
Оголошення глобальних змінних int main(список параметрів) { послідовність операторів } тип_повертаного_значення f1(список п { послідовність операторів } тип_повертаного_значення f2(список п { послідовність операторів } . . . тип_повертаного_значення fN(список п { послідовність операторів } |
Мал. 1.1. Структура програми на мові C |
