Спеціальна новорічна пропозиція! Детальніше

С++

Якщо Ви бажаєте програмувати, але не можете визначитися з мовою її особливостями і т.д. пропонуємо курси Основ програмування, на яких розглядаються загальні питання по програмуванню. Мета цього курсу дати учневі базові навички програмування та допомогти визначитися який напрям найбільш цікавий для нього! Курси C++ націлені на отримання знань і практичних навиків програмування на мовах C і C++ в рамках процедурно-орієнтованого програмування, об’єктно-орієнтованого програмування (ООП) та узагальненого програмування із використанням шаблонів. Особлива увага приділяється філософії об’єктно-орієнтованого програмування, оволодінню методами ООП в середовищах Visual C++, Eclipse, Code::Blocks із використанням сучасних компіляторів.

C++ є однією з найбільш широко вживаних мов програмування, індустріальним стандартом для створення додатків всілякого роду. Крім того, це дуже виразна та раціональна мова, яка дозволяє використовувати ресурси більш ефективно, ніж Pascal, Visual Basic або Delphi, пишучи при тому високорівневий елегантний код. Для неї існує багато хороших компіляторів, як комерційних (Visual C++ корпорації Microsoft) так і безкоштовних, із відкритими текстами (GCC та Clang від Apple). Мова C++ є базовою для програмування для Windows на Visual C++, для Linux із використанням GCC, широко використовується для програмування під Mac OS із GCC або Clang.

Курси програмування на C++ розраховані на осіб, які мають уявлення про основи програмування та із початковим досвідом написання програм на будь-якій мові. Досвід роботи з мовою С необов’язковий. Даються початкові знання мови C++, навички написання програм в середовищі Visual Studio, Eclipse, Code::Blocks, основи об’єктно-орієнтованого та узагальненого програмування. Всі заняття підкріплюються великою кількістю прикладів. Курс є основою для програмування графічного інтерфейсу користувача на Visual C++ і комп’ютерної графіки DirectX. Запрошуємо на курси програмування C++ у Львові! Дані курси C++ розраховані на новачків.

Програма навчання

Огляд C++:

- Парадигми та ідеологія С++;

- Поняття про роздільну компіляцію;

- Препроцесор, компілятор, лінкер.

Синтаксичні примітиви мови:

- Система типів С++. Фундаментальні типи даних;

- Оголошення та визначення, області видимості;

- Структура оголошень сутностей програми;

- Літерали;

- Змінні та констант, їх ініціалізація;

- Lvalue, rvalue;

- Перерахування (enum);

- Огляд оголошення функцій, структур, об’єднань, класів;

- Принцип роботи інструкцій (statements);

- Оператори С++;

- Пріоритети та асоціативність операторів;

- Інструкції керування потоком виконання. if, оператор вибору ?:, switch;

- Цикли while, do-while, for, команди break та continue;

- Goto;

- Вказівники та масиви;

- Типізовані вказівники та вказівники без типу,;

- Нульовий вказівник;

- Арифметика вказівників;

- C-стрічки;

- Динамічна пам’ять;

- New та delete;

- Успадковані засоби С для роботи з пам’яттю – malloc, calloc, realloc, free;

- Посилання;

- Функції. Оголошення та визначення;

- Формальні параметри та значення, що повертаються;

- Способи передачі аргументів – за значенням, за вказівником, за посиланням;

- Масиви, як аргументи функцій;

- Рекурсивні функції;

- Статичні локальні змінні;

- Статичні функції;

- Inline-функції;

- Перевантаження функцій. Правила вибору функцій для перевантаження.;

- Заплутування імен, extern “C”;

- Аргументи по замовчуванню;

- Функції із змінною кількістю аргументів;

- Вказівники на функції;

- Int main(), доступ до аргументів командного рядка та змінних середовища;

- Препроцесор;

- Макроси (object-like macros);

- Макроси з аргументами (function-like macros);

- # та ##;

- Умовна компіляція;

- Стандартні та специфічні для платформи визначені наперед макроси;

- #error, нестандартна директива #warning;

- #pragma;

- assert.

Структури, об’єднання, класи, динамічне ООП:

- Структури;

- Об’єднання;

- Поняття класу, поля даних та методи;

- Конструктор, деструктор, конструктор по замовчуванню;

- Вказівник this, константні методи;

- Статичні дані та методи класу;

- Інкапсуляція;

- Друзі класу;

- Успадкування, принцип підстановки;

- Публічне (відкрите) успадкування, як реалізація принципу «нащадок є предком»;

- Приватне успадкування – успадкування реалізації, з наданням іншого інтерфейсу;

- Поліморфізм, віртуальні функції;

- Абстрактні класи;

- Принципи побудови ієрархії класів;

- Паттерн проектування NVI (Non-Virtual Interface);

- Ідіома «віртуального конструктора»;

- Множинне успадкування, віртуальні базові класи;

- Неявно створювані методи класу;

- Узгодженість копіювання-створення-знищення-(переміщення для С++11);

- Перевантаження операторів. Синтаксис і правила застосування;

- Конструктори з одним аргументом, explicit;

- Оператори неявного приведення типів.

«Службові» засоби:

- Простори імен;

- Комбінування просторів імен;

- Анонімні простори імен;

- Виключення;

- Ієрархії виключень;

- Стандартні виключення;

- Приведення типів;

- Приведення типів у стилі С++;

- Успадковане приведення типів у стилі С.

Шаблони:

- Шаблони функцій та класів;

- Інстанціювання;

- Параметри шаблонів. Параметри по замовчуванню;

- Перевантаження функцій із врахуванням шаблонів;

- Спеціалізація;

- Часткова спеціалізація;

- Взаємодія шаблонів із рештою засобів мови;

- Успадкування за участю шаблонів;

- Методи-шаблони;

- Статичні методи та дані шаблонів класів;

- Друзі шаблонів;

- Шаблони як параметри шаблонів;

- Типи залежні від параметрів шаблонів, typename I template-«конкретизація»;

- Явне інстанціювання;

- Прості приклади мета-шаблонного програмування;

- Шаблони як засоби статичного (часу компіляції) ООП.

Стандартна бібліотека:

- Потоки вводу-виводу;

- Ієрархія потоків;

- Класи ostream/istream та відповідні наперед створені потоки: cin/cout/cerr/clog;

- Перевантажені оператори << та >>;

- Низькорівневі операції виводу: puts, write;

- Низькорівневі операції вводу: get, getline, ignore, peek, putback, unget, read, readsome, gcount;

- Форматування виводу. Прапорці форматування, маніпулятори;

- Стан потоку, прапорці good, fail, bad, eof; їхня спільна робота, перевірка стану потоку;

- Виключення потоків;

- Буфери потоків;

- Файлові потоки;

- Відкриття файлових потоків, режими відкриття;

- Файлові вказівники;

- Стрічкові потоки (stringstream);

- Std::string;

- Засоби маніпуляції стрічками – створення, пошук, видалення, об’єднання, вставка, тощо;

- Допоміжні засоби – numerical_limits, pair, min, max, swap, тощо;

- STL – стандартна бібліотека шаблонів;

- Контейнер std::vector;

- Ітератори;

- Класи ітераторів згідно їх потужності;

- Інтервали;

- Стандартні алгоритми;

- Алгоритми, що не модифікують послідовність;

- Алгоритми, які модифікують послідовність;

- Об’єкти-функції, (лямбда-функції С++11);

- Адаптери;

- Предикати;

-Генератори ітераторів (back_inserter і компанія);

- Стандартні контейнери;

- Ідіома remove-erase;

- Послідовні контейнери: vector, deque, list;

- Асоціативні контейнери: set, map, multiset, multimap;

- Адаптери: queue, priority_queue, stack.

C++11/C++14:

- Покращення конструкцій, що вже існують;

- Списки ініціалізації;

- Універсальна ініціалізація;

- Виведення типів, auto та decltype;

- For для інтервалів (Range-based for);

- Лямбда-функції;

- Альтернативний синтаксис оголошення функцій;

- Делеговані конструктори;

- Явні перевизначення віртуальних функцій, заборона перевизначення (override і final);

- Nullptr;

- Типізовані перерахування;

- Explicit для операторів перетворення типів;

- Синоніми шаблонів (Template aliases);

- Узагальнені об’єднання;

- Нові можливості ядра мови;

- Нові види стрічкових літералів – «сирі» та Unicode-літерали.;

- Користувацькі літерали;

- Керування методами, що генеруються автоматично --- default і delete.;

- Керування вирівнюванням;

- Атрибути функцій;

- static_assert;

- Огляд шаблонів із змінною кількістю аргументів;

- Зміни, пов’язані із продуктивністю;

- Rvalue-посилання, move-конструктори;

- Constexpr;

- Модифікація та деталізація поняття POD;

- Extern-шаблони;

- Нове у стандартній бібліотеці;

- Tuple;

- Розумні вказівники;

- Хешовані контейнери: unordered_set, unordered_multiset, unordered_map, unordered_multimap;

- Масив фіксованого розміру std::array та однозв’язний список std::forward_list;

- Нові алгоритми;

- Обгортки для функцій (function wrappers);

- Регулярні вирази;

- Просунуті генератори випадкових чисел;

- Властивості типів (type traits);

- Багатопоточність;

- Модель пам’яті С++, з врахуванням багато поточності;

- std::thread;

- Мютекси та умовні змінні;

- Атомарні операції та змінні;

- Std::future і std::promises для більш високорівневої багатопоточності. std::async;

- Thread-local storage.

Вартість

Кількість занять

30

Кількість академ. Годин

60

Ціна індивідуального курсу

20000

ціна групового курсу

6500

Онлайн запис






Деталі курсу

Тривалість одного заняття 90 хв. (2 академічні години)

Можливе написання індивідуальної програми під Вас!

По закінченню курсу видається сертифікат.

Викладачі

Записатися

 






×
Записатися

 







×
Лист директору

 




×