422 гр., спец. СМ. С++
“Программирование для решения вероятностных задач”
Место и время проведения: четверг, третья пара, ауд. 2412
Преподаватель: Звонарев Никита Константинович
Критерий получения зачёта¶
- “Большая” программа (оптимизация функций), и в графическом, и в консольном исполнении
- Плюсики за все домашки
- Плюсики за посещения пар (сданный тест/вопрос за пропуск)
Программа для поиска экстремума функции¶
Задание на семестр <- здесь дано старое задание в полном виде. Нас интересует п. 2.
Красивые примеры программ прошлых лет. Еще один
Комментарии к стилю программирования
Минимальные требования к программе с MFC
Примеры на combo-box и графику VS2010 Примеры на combo-box и графику VS2013
Список литературы с описанием методов поиска экстремумов
Добавляется очень хорошая книга Nocedal, Jorge, Wright, S. Numerical Optimization.
C++ advanced¶
Примерные темы¶
- Шаблоны
- Исключения
- STL
- Немного Qt
- Современный (насколько?) стандарт: ranges, типобезопасные юнионы (std::variant) и std::optional мэйби?
- ???
Литература¶
Основная книга номер 3, ее можно найти онлайн.
- Бьерн Страуструп. Язык программирования
C++. - Эккель Б. Философия
C++. Введение в стандартныйC++. - Эккель Б. Философия
C++. Практическое программирование.
Занятия по C++ advanced¶
- 26/10/2024 [1]. Множественное наследование. Виртуальный базовый класс. «Виртуальный конструктор». [Слайды](../../assets/study/fall2020/multiple_inheritance.pdf)
- 03/10/2024 [1]. RTTI (''typeid'', ''dynamic_cast''), приведение типов в стиле C++. Исключения: начало. [Слайды](../../assets/study/fall2020/multiple_inheritance.pdf)
- 10/10/2024 [1]. Исключения: семантика, исключения в конструкторе, stack unwinding, ''set_terminate'', ''noexcept'', стандартные исключения. Умные указатели: самодельные и стандартные. [Слайды](../../assets/study/fall2020/exceptions.pdf)
- 17/10/2024 [0.5]. Тест на исключения. Введение в шаблоны, конкретизация шаблонов, специализация шаблонов.
- 24/10/2024 [1]. Тест на шаблоны. Паттерны с traits и policy, policy через SFINAE, type_traits.
- 31/10/2024 [1]. Метапрограммирование, вычисления на этапе компиляции через шаблоны/constexpr (C++ 11 и C++ 14). Решение задач.
- 07/11/2024 [0.75]. STL: общая структура, обзор контейнеров с трудоемкостью операций.
- 14/11/2024 [1]. Иерархия концепций итераторов, итераторы прямой и обратный, итераторы вставки. Итераторы для потоков ввода-вывода. Разбор примеров с итераторами. Алгоритм copy и умение его написать. Для самостоятельного изучения: I/O в C++, манипуляторы, режимы открытия, stringstream. [Обещанные материалы к лекции](../../assets/study/fall2018/io_4_students.zip). Анонс домашки про чтение csv файла.
- 21/11/2024 [1]. Основные алгоритмы из STL. Встроенные функторы, std::bind.
- 28/11/2024 [0]. //Пропуск (командировка)//
- 05/12/2024 [1]. Обзор алгоритмов STL. Лямбды, лямбды как замыкания. Примеры на set/map (без анонса домашки про словарь).
- 12/12/2024 [1]. Немного про Qt. Aнонс задания про словарь. [Обновленная PDF про Qt](../../assets/study/fall2022/qt.pdf). Misc: complex, numeric_limits, valarray…
- 19/12/2024 [1]. Приём задач (удалённо).
Результаты посещения занятий¶
| 26.09 | 03.10 | 10.10 | 17.10 | 24.10 | 31.10 | 07.11 | 14.11 | 21.11 | 28.11 | 05.12 | 12.12 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1. ~~Плоткин Глеб~~ | ||||||||||||
| 2. Погребников Николай | + | +. | + | + | + | + | + | + | + | + | ||
| 3. Поликанин Евгений | + | + | + | +. | + | + | + | + | + | + | ||
| 4. Симоненко Вадим | + | + | + | + | + | + | + | + | + | + | ||
| 5. Яковлев Денис | + | + | + | + | + | + | + | + | + | + |
Результаты сдачи заданий и домашек¶
Варианты задания:
- Покоординатный спуск
- Градиентный спуск (производные аналитически)
- Сопряженные градиенты Fletcher-Reeves или Polak-Ribiere
- Ньютон (поиск по направлению, производные численно)
- Nelder-Mead (метод деформируемого многогранника)
| Вариант | Консольная опт. 1 (17 окт.) | Консольная опт. 2 (21 ноя.) | Графическая опт. | Домашка (I/O) | Домашка (словарь) | Зачёт | |
|---|---|---|---|---|---|---|---|
| 1. ~~Плоткин Глеб~~ | 1 | ||||||
| 2. Погребников Николай | 4 | + | + | + | + | + | + |
| 3. Поликанин Евгений | 3 | + | + | + | + | ||
| 4. Симоненко Вадим | 2 | + | + | + | + | + | + |
| 5. Яковлев Денис | 5 | + | + | + | + |