Это старая версия документа!


422 гр., спец. СМ. С++

«Программирование для решения вероятностных задач»
Место и время проведения: четверг, третья пара, ауд. 3381
Преподаватель: Звонарев Никита

Критерий получения зачёта

  1. «Большая» программа (оптимизация функций), в графическом и консольном исполнении
  2. Плюсики за все домашки
  3. Плюсики за посещения пар (сданный тест/вопрос за пропуск)

Оптимизация функции

Слайды с 1 пары

Список литературы с описанием методов поиска экстремумов

Добавляется очень хорошая книга Nocedal, Jorge, Wright, S. Numerical Optimization.

Программа для поиска экстремума функции

Задание на семестр ← здесь дано старое задание в полном виде. Нас интересует п. 2.

Красивые примеры программ прошлых лет. Еще один

Комментарии к стилю программирования

Минимальные требования к программе с MFC

Примеры на combo-box и графику VS2010 Примеры на combo-box и графику VS2013

C++ advanced

Примерные темы

  • Шаблоны.
  • Исключения
  • STL
  • Современный стандарт
  • Многопоточность
  • Немного Qt?
  • ???

Литература

Основная книга номер 3, английский вариант можно найти on-line на сайте автора.

  1. Бьерн Страуструп. Язык программирования C++.
  2. Эккель Б. Философия C++. Введение в стандартный C++.
  3. Эккель Б. Философия C++. Практическое программирование.

Занятия по C++ advanced

2020 год ([x] — x пар потрачено на тему)

TODO


Материалы в виде архивов к занятиям в прошлые годы (+прошлогодняя программа)

2019 год ([x] — x пар потрачено на тему)

  1. 26/09/2019 [1]. Множественное наследование. Виртуальный базовый класс. «Виртуальный конструктор».
  2. 03/10/2019 [1]. RTTI (typeid, dynamic_cast), тот самый пример про UB.
  3. 10/10/2019 [0.75]. Исключения: семантика, исключения в конструкторе, stack unwinding, set_terminate, noexcept, стандартные исключения, «голые» и «одетые» указатели.
  4. 17/10/2019 [1]. Move semantics, умные указатели, RAII.
  5. 24/10/2019 [1]. std::string. Введение в шаблоны, конкретизация шаблонов, специализация шаблонов.
  6. 31/10/2019 [1]. Паттерны с traits и policy, policy через SFINAE, type_traits. Метапрограммирование, вычисления на этапе компиляции через шаблоны/constexpr (C++ 11 и C++ 14).
  7. 07/11/2019 [0.75]. Решение задач метапрограммирования на С++≤11.
  8. 14/11/2019 [1]. STL: общая структура, обзор контейнеров с трудоемкостью операций, иерархия концепций итераторов, итераторы прямой и обратный, итераторы вставки.
  9. 21/11/2019 [1]. Итераторы для потоков ввода-вывода. Алгоритм copy и умение его написать. Общая структура алгоритмов STL.
  10. 28/11/2019 [1]. Немного про Qt. Лямбды, лямбды как замыкания, встроенные функторы и std::function.
  11. 05/12/2019 [0]. Сдача заданий + анонс домашки про словарь.
  12. 12/12/2019 [0.75]. Алгоритмы работы с перестановками, поиска, сортировки, бин. поиска, и т.п. Сдача заданий.

Самостоятельное изучение:

  1. 21/11/2019. Форматирование в C++. Потоковый ввод-вывод: создание своих манипуляторов, fstream (режимы открытия, ошибочные состояния, getline, get, копирование файлов: посимвольное, построковое, поблочное, через streambuf и rdbuf()), stringstream. обещанные материалы к лекции.

2018 год ([x] — x пар потрачено на тему)

  1. 27/09/2018 [1]. Множественное наследование. Виртуальный базовый класс. «Виртуальный конструктор».
  2. 04/10/2018 [0.5]. RTTI (typeid, dynamic_cast).
  3. 11/10/2018 [1]. Исключения: семантика, исключения в конструкторе, stack unwinding, set_terminate, noexcept, стандартные исключения.
  4. 18/10/2018 [1]. «Голые» и «одетые» указатели, умные указатели, RAII, Move semantics.
  5. 25/10/2018 [1]. Конкретизация шаблонов, специализация шаблонов. Метапрограммирование, вычисления на этапе компиляции через шаблоны/constexpr (C++ 11 и C++ 14).
  6. 01/11/2018 [1]. Решение задач метапрограммирования на ≤11 версии.
  7. 08/11/2018 [1]. Паттерны с traits и policy, policy через SFINAE, type_traits. Форматирование в C++. Потоковый ввод-вывод: создание своих манипуляторов, fstream (режимы открытия, ошибочные состояния, getline, get, копирование файлов: посимвольное, построковое, поблочное, через streambuf и rdbuf()), stringstream. обещанные материалы к лекции.
  8. 15/11/2018 [1]. STL: общая структура, обзор контейнеров с трудоемкостью операций, иерархия концепций итераторов, итераторы прямой и обратный, итераторы вставки, итераторы для потоков ввода-вывода. Алгоритм copy и умение его написать.
  9. 22/11/2018 [1]. Общая структура алгоритмов STL. Лямбды, лямбды как замыкания, встроенные функторы и std::function. Алгоритмы для работы с числовыми последовательностями, упорядоченными множествами.
  10. 29/11/2018 [0.25]. Алгоритмы работы с перестановками, поиска, сортировки, бин. поиска, и т.п. Задание про словарь.
  11. 06/12/2017 [1]. Многопоточность в C++11: thread (join(), detach()), mutex (unique_lock, lock_guard), std::lock, std::async, std::future, std::packaged_task, std::promise, std::condition_variable + for по контейнеру.

Совсем старые годы (материалы от НЭ):

  1. (08/09/2010). Множественное наследование. Виртуальный базовый класс. «Виртуальные конструкторы».
  2. (16/09/2009). RTTI (typeid, dynamic_cast), вспомнили static_cast, const_cast, reinterpret_cast. Вспомнили assert. Исключения - начало.
  3. (23/09/2009). Исключения (как выбрасывать, как ловить), исключения в конструкторах, «голые» указатели, set_unexpected, set_terminate, auto_ptr.
  4. (25/09/2013). cleanup, «голые» указатели, auto_ptr, unique_ptr, shared_ptr, weak_ptr.
  5. (30/09/2009). Окончание темы про исключения («одетые» указатели, стандартные классы исключений). Строки (string). Шаблоны - начало.
  6. (07/10/2009). Шаблоны: компиляция программы с шаблонами (зависимые имена, инстанцирование (конкретизация) шаблона), параметр шаблона для задания области видимости, использование typename внутри шаблона, шаблон в качестве параметра шаблона, специализация шаблонов.
  7. (14/10/2009 09/10/201316/10/2013). Шаблоны: специализация шаблонов, паттерны с traits (идея с использованием typedef для задания разным типам одинаковых псевдонимов) и policy, псевдорекурсия при наследовании от шаблонного класса без типо-зависимых элементов, метапрограммирование на этапе компиляции, функции-друзья шаблонные/нешаблонные.
  8. (21/10/2009). Немного о vector из STL: size, capacity, reserve и пр. Потоковый ввод-вывод: общее устройство, флаги форматирования, форматированный вывод, манипуляторы.
  9. (28/10/2009). Потоковый ввод-вывод: создание своих манипуляторов, fstream (режимы открытия, ошибочные состояния, getline, get, копирование файлов: посимвольное, построковое, поблочное, через streambuf и rdbuf()), stringstream (в частности, разбор строки на слова). Домашнее задание - разбор файл с табличными данными.
  10. (11/11/2009 13/11/2013). STL: общая структура, обзор контейнеров с трудоемкостью операций, иерархия концепций итераторов, итераторы прямой и обратный, итераторы вставки, итераторы для потоков ввода-вывода. Общая структура алгоритмов STL (умение самостоятельно написать реализацию алгоритма на примере copy и transform).
  11. (18/11/2009). STL: продолжение про алгоритмы на примере replace, replace_if, replace_copy, replace_copy_if. Также - алгоритм типа remove (принцип неудаления элементов после remove, разница между last и end). Функциональные объекты, стандартные функц.объекты из <functional>. Суммирование элементов контейнера с помощью for_each. Алгоритмы работы с числовыми последовательностями (accumulate, inner_product, partial_sum), алгоритмы для работы с множествами (объединение, пересечение и пр.)
  12. (25/11/2009 20/11/2013). STL: адаптеры стек, очередь, очередь с приоритетами; ассоциативные контейнеры set, multiset, map, multimap. Алгоритмы перестановки, поиска, сортировки и пр.: из книги Эккеля manipulations.cpp, SearchReplace.cpp, Nstring.h
  13. (02/12/2009). STL: Алгоритмы сравнения, бин.поиска, сортировки, удаления и пр. Контейнеры bitset, valarray. Разное: limits, complex.

Результаты посещения занятий

24.09 01.10 08.10 15.10 22.10 29.10 05.11 12.11 19.11 26.11 03.12 10.12 17.12 (???)
1. Шаповал Егор
2. Чемокос Олег
3. Белкова Анна
4. Бощенко Алина
5. Попов Владимир
6. Конищева Злата
7. Лобанова Полина
8. Шешуков Илья
9. Глушков Игорь
10. Сурушкин Иван

Результаты сдачи заданий и домашек

Варианты задания:

  1. Coordinate descent
  2. Gradient descent
  3. Fletcher-Reeves CG
  4. Polak-Ribiere CG
  5. Newton's method (using one-dimensional optimization)
  6. Newton's method (using backtracking)
  7. Nelder-Mead method
Вариант Консольная опт. 1 (? окт.) Консольная опт. 2 (? ноя.) Графическая опт. Домашка (I/O) Домашка (словарь) Зачёт
1. Шаповал Егор
2. Чемокос Олег
3. Белкова Анна
4. Бощенко Алина
5. Попов Владимир
6. Конищева Злата
7. Лобанова Полина
8. Шешуков Илья
9. Глушков Игорь
10. Сурушкин Иван
study/fall2020/4cpp_pract.1599582181.txt.gz · Последнее изменение: 2020/09/08 19:23 — nikita
Наверх
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0