
- •Вирази і оператори.
- •Логічні оператори.
- •Оператор розгалуження.
- •Оператор вибору.
- •Арифметичні операції. Пріоритет виконання.
- •Вказівники константи.
- •Вказівники змінні.
- •Функції.
- •Функція для роботи з файлами.
- •Передача аргументів у функцію.
- •Значення, яке повертає функція.
- •Рекурсивні функції.
- •Блоки і область видимості змінних.
- •Оператори повторення.
- •Структури. Вкладені структури.
- •Створення класів.
- •Управління виконанням програм.
- •Одновимірні масиви даних.
- •Двовимірні масиви даних.
- •Створення масивів з використанням вказівників.
- •Алгоритми сортування масивів.
- •Рядки і операції над ними.
- •Функції введення-виведення.
- •Конструктори, деструктори.
- •Класи. Успадкування.
- •Класи. Поліморфізм.
- •Класи. Інкапсуляція.
- •Вказівник this.
- •Перевантаження операцій та операторів.
- •Поліморфізм і віртуальні функції.
- •Стандартний клас string.
- •Стандартний клас queue.
- •Стандартний клас vector.
- •Стандартний клас list.
- •Стандартний клас stack.
- •Створення і використання шаблонів функцій та класів.
- •Стандартна бібліотека шаблонів (stl)
- •Доступність методів класу.
- •Конструктор та деструктор класів.
- •Наслідування класів.
- •Використання просторів імен.
- •Шаблони функцій.
- •Шаблони класів.
- •Алгоритми стандартної бібліотеки stl.
- •Динамічні структури типу стек.
- •Динамічні структури типу однонаправлений список.
- •Динамічні структури типу двонаправлений список.
- •Сортування масивів із використанням вказівників.
Двовимірні масиви даних.
Двовимірний масив — це масив, що містить елементи, в яких номер складається з двох індексів. Перший індекс вказує номер рядка, а другий – номер стовпця, в якому знаходиться елемент. Двовимірний масив іноді ще називають матрицею. У програмуванні про двовимірний масив говорять як про структуру, що утворена з одновимірного масиву, у якому кожен елемент сам є одновимірним масивом. Двовимірний масив містить в собі n х m елементів (n – кількість рядків, m – кількість стовпчиків). Подібно до цього задаються тривимірні, чотиривимірні і т.д. масиви.
Для обробки даних, поданих масивом, найчастіше використовують цикли. При такій обробці часто виникає потреба відшукати певний елемент масиву, впорядкувати елементи за певними ознаками тощо.
Масив називається двовимірним, якщо для задання місцеположення елемента в масиві необхідно вказати значення двох індексів. у двовимірних масивах перший індекс завжди вказує на номер рядка, а другий - на номер стовпчика в цьому рядку!
Двумерный массив
int b[2][2];
//Ввод
for(int i=0;i<2;i++)
for(int j=0;j<2;j++)
{printf("Input b[%d][%d] ", i, j);
Створення масивів з використанням вказівників.
Ім'я масиву без індексу є вказівником-константою, тобто адресою першого елемента масиву (a[0]).
*a = = a[0] ;
*(a+1) = = a[1];
. . . . . . . . .
*(a+і) = =a[і];
Відповідно до синтаксису в С існують тільки одномірні масиви, але їх елементами , у свою чергу, теж можуть бути масиви.
int a[5][5];
Для двовимірного масиву:
a[m][n] = = *(a[m]+n) = = *(*(a+m)+n);
Динамічним називається масив, розмірність якого стає відомою в процесі виконання програми.
В С++ для роботи з динамічними об’єктами використовують спеціальні операції new і delete. За допомогою операції new виділяється пам’ять під динамічний об’єкт (який створюється в процесі виконання програми), а за допомогою операції delete створений об’єкт видаляється з пам’яті.
Вказівники використовуються для роботи з масивами. розглянемо оголошення двовимірного масиву:
int mas[4][2];
int *ptr;
Тоді вираз ptr=mas вказує на першу колонку першого рядка матриці. Записи mas і &mаs[0][0] рівносильні. Вираз ptr+1 вказує на mas[0][1], далі йдуть елементи: mas[1][0], mas[1][1], mas[2][0] і т. д.; ptr+5 вказує на mas[2][1].
Алгоритми сортування масивів.
Методи сортування масивів класифікують за часом їх роботи, який залежить від числа необхідних порівнянь ключів та числа пересилок елементів. У найбільш простих методах сортування потрібно порядку O(n2) операцій, а у найкращих – порядку O(n·log2n).
Як і для пошуку, будемо вважати, що маємо тип даних масив та змінну цього типу:
тип t = масив [1..n] із t;
змін a: t;
де для типу елементів масиву t визначені стандартні відношення: {=, <>, <, >, >=, <=}.
Покладемо тепер k(a[i])=a[i], i=1, 2, ..., n. Для демонстрації виконання сортування будемо вважати, що n=8, а масив складається з елементів (23,55,47,35,10,90,84,30).
Сортування включенням
Сортування включенням передбачає (n-1) кроків. На кожному кроці, починаючи з i=2 та збільшуючи i кожного разу на одиницю, з вихідної послідовності беремо i-й елемент та переносимо його у готову послідовність елементів з індексами від 1 до i, вставляючи його на своє місце.
Сортування вибором
При сортуванні вибором на кожному кроці, для i від 1 до (n-1), знаходимо найменший елемент серед a[i], a[i+1], ..., a[n] з номером k, після чого міняемо місцями елементи a[i] та a[k].
Обмінне сортування
Алгоритм основано на порівнянні пар сусідніх елементів масива. При необхідності елементи у парі міняються місцями. Так продовжується до впорядкування всіх елементів. Цей метод також відомий як „бульбашкове” сортування, оскільки за один крок зовнішнього циклу найменший („найлегший”) елемент серед розглянутих елементів масива переміщується до початку масива (немов би „спливає” нагору).
Сортування злиттям
При сортуванні злиттям на i-му кроці масив a розбивається на впорядковані підмасиви (послідовності елементів масиву, що йдуть підряд) довжини Size=2i-1. Пари сусідніх підмасивів зливаються у впорядковані підмасиви довжини Size*2 у допоміжному масиві b. Після присвоєння a значення b та збільшення Size вдвічі злиття повторюється для підмасивів більшого розміру. Процес завершується, коли Size стає більшим або рівним n. Оскільки при i=1 підмасиви з 1 елемента впорядковані за означенням, в результаті отримуємо впорядкований масив a.