- •Тема 1. Обєктно - орієнтовне програмування 4
- •Тема 2. Основні концепції парадигми програмування 14
- •Тема 7. Універсальна мова моделювання (Unified Modelling Language або uml) 88
- •Тема 8. Бібліотека стандартних шаблонів stl (Standard Template Library) 91
- •Тема 9. Шаблони проектування stl (Standard Template Library) 104
- •Лекція № 1 Тема 1. Обєктно - орієнтовне програмування План лекції
- •Зміст лекції Вступ.
- •1.1. Поняття те визначення ооп.
- •1.2. Об' єктно - орієнтована методологія (оом).
- •1.3. Об' єктно - орієнтовані мови програмування.
- •1.4. Системи і середовища програмування топ.
- •Лекція № 2 Тема 2. Основні концепції парадигми програмування План лекції
- •Зміст лекції
- •2.1. Парадигми програмування: об' єктно - орієнтована парадигма.
- •2.2. Основні концепції топ.
- •2.3. Моделювання. Об' єктна декомпозиція.
- •2.4. Ідеї топ. Топ принцип - поліморфізм.
- •2.5. Інкапсуляція. Наслідування.
- •2.6. Об' єктний рефакторинг.
- •2.7. Системи і середовища програм.
- •Лекція № 3
- •План лекції
- •Зміст лекції
- •3.1. Абстракції даних
- •3.4. Типи, що перераховують
- •3.5. Вирази
- •3.6. Інструкції
- •Лекція № 4
- •План лекції
- •Зміст лекції
- •4.2. Структура програми, функція main без параметрів.
- •4.3. Основні типи даних.
- •4.4. Константи, змінні, вирази та пріоритет операцій.
- •4.5. Базові конструкції структурного програмування - галуження, цикл, передача управління.
- •4.6. Загальні та бітові логічні операції.
- •4.7. Тернарний опертор.
- •4.8. Вказівники і посилання; масиви.
- •Лекція № 5
- •План лекції
- •Зміст лекції
- •5.1. Користувацькі типи - typedef, enum, struct, union. Функції.
- •5.2. Передача параметрів та повернення значень з функцій.
- •5.3. Рекурсія, перевантаження функцій, функція main з параметрами.
- •5.4. Глобальні і локальні визначення, простори імен та їх використання.
- •5.5. Директиви препроцесора.
- •5.6. Стандартний ввід/вивід - бібліотека stdio.H.
- •5.7. Основи потокового введенню/виводу - бібліотека iostream.H.
- •Лекція № 6
- •План лекції
- •Зміст лекції
- •6.2. Екземпляри класів або об' єкти.
- •6.3. Поля (атрибути) та методи.
- •6.4. Специфікатори доступу (private, protected, public).
- •6.5. Вказівник this.
- •6.6. Перевантаження методів.
- •6.7. Конструктори і деструктори класів.
- •6.8. Перевантаження конструкторів.
- •6.9. Конструктори копіювання та перетворення.
- •6.10. Закон Деметри
- •Лекція № 7 Тема 7. Універсальна мова моделювання (Unified Modelling Language або uml) План лекції
- •2.Основні поняття та принципи.
- •3.Зв'язки між класами (асоціація, агрегація, композиція, узагальнення).
- •4.Uml: діаграми класів. Uml: діаграми взаємодії. Uml: діаграми послідовності. Зміст лекції
- •7.1. Сфера застосування.
- •7.2. Основні поняття та принципи.
- •7.3. Зв'язки між класами (асоціація, агрегація, композиція, узагальнення).
- •7.4. Uml: діаграми класів. Uml: діаграми взаємодії. Uml: діаграми послідовності.
- •Лекція № 8 Тема 8. Бібліотека стандартних шаблонів stl (Standard Template Library)
- •План лекції
- •Зміст лекції
- •8.1. Бібліотека стандартних шаблонів - stl (призначення, основні можливості, сфера застосування).
- •8.2. Стандартні потоки і потокові класи.
- •8.3. Стрічки (основні операції та функції; переваги порівняно із c - стрічками).
- •8.4. Поняття про контейнери, ітератори, функціональні об' єкти та алгоритми stl.
- •Лекція № 9 Тема 9. Шаблони проектування stl (Standard Template Library) План лекції
- •1.Шаблони проектування (designpatterns).
- •Зміст лекції
- •9.1. Шаблони проектування (designpatterns).
- •9.2. Класифікація шаблонів проектування stl (creational, structural, behavior, concurrencypatterns).
- •9.3. Можливості застосування шаблонів проектування stl.
4.3. Основні типи даних.
Використання типів даних, визначених програмістом - одна з характерних рис структурного стилю програмування. Саме типізація відрізняє сучасні процедурні мови програмування (Модула, Паскаль, Сі, і т.д.) від своїх попередників. Тому визначення об' єкта як змінної деякого об' єктного типу є розвитком методології структурного стилю програмування.
У об' єктно - орієнтованому програмуванні об' єктні типи звичайно називають класами, а змінні цих типів - екземплярами класів.
Революційною ідеєю об' єктно - орієнтованої методології програмування є використання поняття спадкування як основного методу опису класів.
Під спадкуванням розуміють таке відношення двох класів (об' єктних типів), при якому одному з них (дочірньому) приписуються атрибути, властивості і методи іншого (батьківського).
Типи даних
Вид Назва Діапазон Обсяг байтів
Символьний unsigned char 0 . 255 1
Char - 128 . 127 1
Перелічувальний Enum - 32,768 . 32,767 2
Цілі числа unsigned int 0 . 65,535 2
short int - 32,768 . 32,767 2
Int - 32,768 . 32,767 2
unsigned long 0 . 4,294,967,295 4
Long - 2,147,483,648 . 2,147,483,647 4
long long або __int64 - 9 223 372 036 854 775 808 .
9 223 372 036 854 775 807 8
unsigned __int64 0 . 18446744073709551615 8
Дійсні числа Float 3.4 * (10-38) . 3.4 * (10+38 4
Double 1.7 * (10-308) . 1.7 * (10+308) 8
long double 3.4 * (10-4932) . 1.1 * (10+4932) 10
4.4. Константи, змінні, вирази та пріоритет операцій.
Подібно до змінних, константи є елементами пам' яті, призначеними для зберігання даних. Але, на відміну від змінних, константи не змінюються (про що говорити само назва - константа). Створювану константу треба ініціалізувати, оскільки пізніше їй не можна присвоїти нове значення
У мові C++ передбачено два типи констант: літеральні і символьні.
Літеральні константи
Літеральна константа - це значення, що безпосередньо вводитися в самій програмі. Наприклад, у вираженні
int myAge = 39;
myAge є змінною типу int, а число 39 - літеральною константою. Не можна присвоїти ніяке значення константі 39.
Символьні константи
Символьна константа - це константа, представлена ім 'ям (точно так, як і ім 'ям представляється будь-яка змінна). Проте, на відміну від змінної, значення константи, що ініціалізувала, змінити не можна.
Якщо у вашій програмі є одна цілочисельна змінна з ім 'ям students, а інша - з ім 'ям classes, ви могли б вичислити загальну кількість учнів школи за умови, що вам відомо, скільки класів в школі і скільки учнів в шкірному класі (допустимо, кожен клас складається з 15 учнів) :
students = classes * 15;
Примечание:Символ (*) означає множення.
У даному прикладі число 15 є літеральною константою. Але якщо цю літеральну константу замінити символьною, то вашу програму буде легше читати і змінювати в майбутньому:
students = classes * studentsPerClass
Якщо згодом потрібно буде змінити кількість учнів в шкірному класі, ви зможете зробити це одного разу в тому рядку програми, де визначається константа studentsPerClass, і вам не доведеться вносити зміни в усі рядки програми, де використовується це значення.
У мові C++ існує два способи оголошення символьної константи. Традиційний і нині вже застарілий спосіб полягає у використанні директиви препроцесора #define.
Визначення констант за допомогою директиви #deiine
Для визначення константи традиційним способом введіть наступне вираження :
####define studentsPerClass 15
Зверніть увагу на ті, що константа studentsPerClass не має ніякого конкретного типу (int, char і так далі). Директива #define виконує просту текстову підстановку. Шкірного разу, коли препроцесор зустрічає слово studentsPerClass, він замінює його літералом 15.
Оскільки препроцесор запускається перед компілятором, останній ніколи не побачить константу, а бачитиме тільки число 15.
Визначення констант за допомогою ключового слова const
Хоча директива #define і справляється зі своїми обов'язками, в мові C++ існує новий, зручніший спосіб визначення констант:
const unsigned short int studentsPerClass = 15;
У даному прикладі також оголошується символічна константа з ім 'ям studentsPerClass, але цього разу для цієї константи задається тип unsigned short int. Цей спосіб має декілька переваг, полегшуючи подальшу підтримку вашої програми і запобігаючи появі деяких помилок. Найважливіша відмінність цієї константи від попередньої (оголошеною за допомогою директиви #define) полягає в тому, що вона має тип і компілятор може простежити за її використанням тільки за призначенням (тобто відповідно до оголошеного типу).
Примечание:Во година роботи програми константи змінювати не можна. Якщо ж виникла необхідність в зміні, наприклад, константи studentsPerClass, вам треба змінити відповідне оголошення в програмі і перекомпілювати її.
Рекомендуется:Следите, щоб значення змінних не перевищували допустиму межу. Привласнюйте змінним осмислені імена, що відбивають їх призначення. Використовуйте типи short і long, щоб ефективніше управляти пам'яттю комп'ютера.
Не рекомендується: Не використовуйте як імена змінних ключові слова.
Змінні
У мові C++ змінні використовуються для зберігання інформації. Змінну можна уявити собі як осередок в пам' яті комп'ютера, в якій може зберігатися деяке значення, доступне для використання в програмі.
Пам'ять комп'ютера можна розглядати як ряд осередків. Усі осередки послідовно пронумеровані. Ці номери називають адресами пам' яті. Змінна займає одну або декілька осередків, в яких можна зберігати деяке значення.
Ім 'я змінної (наприклад, MyVariable) можна уявити собі як напис на елементі пам' яті, по якому, не знаючи справжньої адреси пам' яті, можна її знайти. На малий. 3.1 схемний представлена ця ідея. Згідно з цим малюнком, змінна MyVariable починається з осередку з адресою 103. Поклад від свого розміру, змінна MyVariable може займати одну або декілька елементів пам' яті.
Примечание:В ОЗУ забезпечується довільний доступ до елементів пам' яті. Програма, що запускається, завантажується в ОЗУ з дискового файлу. Усі змінні також зберігаються в ОЗУ. Колі програмісти говорять про пам'ять, сморід зазвичай мають на увазі ОЗУ.
