Модуль 1. Основи C++ і модель стану програми
Від задачі та значень до керованої зміни стану, послідовностей і безпечного читання пам’яті
Модуль має один маршрут. Кожен блок завершується дією, яку ви вже можете виконати самостійно.
формалізувати невелику програмну задачу та трасувати її виконання
працювати з базовими типами, умовами та граничними випадками
відрізняти незалежну копію, посилання, адресу та вказівник
будувати цикли як контрольовану зміну стану
обробляти std::vector і std::string з явною перевіркою меж
Детальний маршрут
Від задачі до виконуваного коду
Після блоку. Після блоку ви формулюєте просту задачу, трасуєте стан і запускаєте C++ із базовим налагодженням.
Л1Від задачі до першої програми C++Лекція. Починаємо з нуля: розбираємо задачу, значення, імена та типи `int` і `double`, а потім складаємо першу програму C++.
ЛР1Алгоритм до коду: формалізація і покрокова перевіркаЛабораторна. Сервіс контролює споживання електроенергії пристроєм і обчислює підсумкову вартість сеансу.
ЛР2Перша програма C++ і контрольоване налагодженняЛабораторна. Невелике замовлення має ціну одиниці, кількість, доставку та окрему плату за пакування.
Дані, рішення і межі
Після блоку. Після блоку ви обираєте числове представлення, будуєте умови та перевіряєте граничні значення.
Л2Дані, вирази та вибір: умови й межіЛекція. Розбираємо арифметику різних типів, порівняння, логічні значення, умовні гілки та точні межі правил.
ЛР3Числові типи, перетворення та умовний операторЛабораторна. Система формує статистику партії та вибирає тарифне значення за одним порогом.
ЛР4Умови, `switch` і тести на межахЛабораторна. Контролер класифікує числовий показник у допустимому діапазоні та обробляє код команди.
Копія, спільний об’єкт і адреса
Після блоку. Після блоку ви відрізняєте незалежну копію від посилання, читаєте вказівник і перевіряєте час життя об’єкта.
Л3Копії, спільні дані й адреси в пам'ятіЛекція. Розрізняємо незалежні копії та спільний доступ, а потім вводимо адреси, вказівники й безпечні межі часу життя.
ЛР5Значення, посилання і вказівникЛабораторна. Кілька коротких експериментів показують різницю між копією, псевдонімом і доступом через адресу.
ЛР6Час життя і висячі вказівники: аналіз кодуЛабораторна. Ви виконуєте code review короткого фрагмента з блоками та вказівниками на локальні об’єкти.
Повторення як зміна стану
Після блоку. Після блоку ви визначаєте стан циклу та знаходите помилки меж і завершення.
Л4Цикли й повторення: стан, межі та вибір формиЛекція. Розбираємо `while`, `do-while`, `for` і цикл за елементами як різні форми керованого повторення, пов’язані зі станом та умовою завершення.
ЛР7Алгоритмічні патерни циклів і трасуванняЛабораторна. Послідовність значень утворюється арифметичним правилом, тому її можна опрацьовувати без контейнера.
ЛР8Самостійна задача з циклом і контрприкладомЛабораторна. Лічильник ресурсу збільшується фіксованим кроком, доки поточне значення не перевищить межу.
Послідовності й текст
Після блоку. Після блоку ви переносите циклічні патерни на std::vector і std::string та перевіряєте межі послідовності.
Л5Послідовності C++: масиви, контейнери й текстЛекція. Порівнюємо вбудовані масиви, `std::array`, `std::vector` і `std::string`, вчимося працювати з межами та двовимірними даними.
ЛР9Фіксовані й динамічні послідовності C++Лабораторна. Невеликий набір вимірювань треба прочитати як fixed-size data, сформувати динамічний результат і проаналізувати текстову мітку.
ЛР10Межі, двовимірні дані й побудова результатуЛабораторна. Таблиця вимірювань має рядки й стовпці. Потрібно отримати підсумки та безпечно прочитати одну клітинку.
МК1Модульний контроль 1Модульний контроль. Перевіряємо алгоритмізацію, умови, модель пам’яті, цикли, послідовності та перевірку меж.
Робоче середовище
Лабораторні notebook відкриваються у спільному браузерному середовищі.