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


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

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

Программа для поиска экстремума функции. Информация прошлых лет (но актуальная и сейчас)

Слайды по оптимизации

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

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

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

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

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

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

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

C++ advanced

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

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

Литература

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

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

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

TODO

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

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 по контейнеру.

2017:

  1. 22/09/2017 (две пары). Множественное наследование. Виртуальный базовый класс. RTTI (typeid, dynamic_cast). «Виртуальный конструктор».
  2. 29/09/2017 (одна пара). Исключения: семантика, исключения в конструкторе, stack unwinding, set_terminate, noexcept, «голые» и «одетые» указатели.
  3. 06/10/2017 (две пары). Умные указатели, стандартные исключения, RAII. Move semantics. Введение в шаблоны.
  4. 13/10/2017 (одна пара). Конкретизация шаблонов, специализация шаблонов, typename внутри шаблона, template template parameter.
  5. 20/10/2017 (две пары). Паттерны с traits и policy, policy через SFINAE, type_traits. Метапрограммирование, вычисления на этапе компиляции через шаблоны/constexpr (C++ 11 и C++ 14). Решение задач метапрограммирования на ≤11 версии.
  6. 27/10/2017 (одна пара). Форматирование в C++. Потоковый ввод-вывод: создание своих манипуляторов, fstream (режимы открытия, ошибочные состояния, getline, get, копирование файлов: посимвольное, построковое, поблочное, через streambuf и rdbuf()), stringstream.
  7. 03/11/2017 (одна пара+). Немного про Qt. STL: общая структура, обзор контейнеров с трудоемкостью операций, иерархия концепций итераторов, итераторы прямой и обратный, итераторы вставки, итераторы для потоков ввода-вывода. Алгоритм copy.
  8. 10/11/2017 (1.5 пары). Общая структура алгоритмов STL. Умение написать свой copy. Лямбды, лямбды как замыкания. Алгоритмы для работы с числовыми последовательностями, упорядоченными множествами, перестановками. Общее представление о коде адапторов, примеры работы с (multi)set, (multi)map. Задание про словарь.
  9. 17/11/2017 (1 пара). Алгоритмы поиска, сортировки, бин. поиска, и т.п. Контейнеры: bitset, valarray. Заголовочные файлы <limits>, <complex>.
  10. 24/11/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 по контейнеру

Архив за 2017 год


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

  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.

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

26.09 03.10 10.10 17.10 24.10 31.10 07.11 14.11 21.11 28.11 05.12 12.12 19.12 (???) 26.12 (???)
1. Горшечникова Влада
2. Магдич Лиза
3. Абильдаев Темирлан
4. Капаца Дейвид
5. Полшков Виталий
6. Барсуков Егор
7. Заляев Тимур

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

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

  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) Домашка (многопоточность) Зачёт
Горшечникова Влада 3
Магдич Лиза 1
Абильдаев Темирлан 4
Капаца Дейвид 2
Полшков Виталий 7
Барсуков Егор 5
Заляев Тимур 6
study/fall2019/4cpp_pract.1568275432.txt.gz · Последнее изменение: 2019/09/12 11:03 — nikita
Наверх
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0