Основы и методология программирования 2016/2017 пилотный поток/161-2 — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
Строка 167: Строка 167:
  
 
[http://pastebin.com/8qePRuw6 Код, написанный на семинаре.]
 
[http://pastebin.com/8qePRuw6 Код, написанный на семинаре.]
 +
 +
===Семинар 05.10.2016===
 +
Дополнительные применения шаблонов, классы типов, sfinae.
 +
 +
[http://pastebin.com/JWdbkdnK Код, написанный на семинаре.]
  
 
===Домашняя работа===
 
===Домашняя работа===

Версия 13:08, 5 октября 2016

Контакты семинариста

Почта finisterra@yandex.ru
VK vk.com/finisterra
Телефон +7(915)004-91-33
Telegram lastearth

Контакты ассистента

Почта tiunovas@mail.ru
VK https://vk.com/id144882148
Telegram astiunov

Контест с дополнительными задачами: https://official.contest.yandex.ru/contest/2868/enter/.

Семинар 05.09.2016

HelloWorld на C++. Знакомство с linux. Основные команды, которые следует освоить:

  • ls
  • cd
  • vim
  • g++

Также стоит посмотреть на команды

  • man
  • cat
  • less
  • grep

и попрактиковаться в перенаправлениях потоков.

Семинар 07.09.2016

Решение задач.

  • числа Фибоначчи
  • ASCII-таблица
  • Треуголник Паскаля
  • Быстрое возведение в степень
  • Непарное число

Типичные ошибки и замечания по style guide'у:

  • именование переменных
  • инициализация переменных при создании

Полезные ссылки

Семинар 12.09.2015

Решение задач.

  • Утилита head (ввод-вывод)
  • gcd (работа с функциями)
  • Частоты символов (ввод-вывод и вектор)
  • Транспонирование матрицы (вектора векторов)

К среде надо подготовиться к контрольной по вводу-выводу, базовым конструкциям языка, циклам и функциям. Также советую познакомится с интерфейсом Яндекс.Контеста на примере тренировочного набора задач.

Семинар 14.09.2015

Контрольная работа №1

Домашнее задание: разбиться на пары и прислать мне на почту ревью кода напарника по всем отправленным на КР задачам. Принимается вплоть до полуночи воскресенья, то есть до конца недели.

ФИО Оценка Прислал ревью
Алейкин Сергей Дмитриевич 10 +
Бобровский Артемий Андреевич 6 +
Васильев Олег Юрьевич 10
Грицаев Матвей Григорьевич 4 +
Дрынкин Роберт Робертович 6
Ершов Олег Владиславович 6 +
Кочергин Владислав Константинович 8 +
Лавренов Николай Артемович 10 +
Лавритов Дмитрий Ильич 6 +
Семенов Михаил Александрович 4 +
Усов Федор Андреевич 6 +
Якунчева Ирина Юрьевна 8 +


Семинар 19.09.2016

Ассоциацивные массивы. Языковая статистическая модель. N-граммы.

Код, написанный на семинаре.

Дома попробуйте обучить модели по словам, а не по буквам. Также можно поэкспериментировать со смешением распределений по разным N.


Семинар 21.09.2016

Написание структур. Специализация std::less, std::equal_to, std::hash для своих структур. Шаблонные параметры std::map, std:set, std::unordered_map, std::unordered_set.

Задачи

  • поиск наиболее популярного квадрата на клетчатой плоскости по набору точек
  • обработка запросов "содержится ли точка хотя в одном отрезке из фиксированного набора"
  • проверка наличия вертикальной оси симметрии у набора точек


Семинар 26.09.2016

Написание шаблонных функций. Специализация шаблонных функций. Шаблонные параметры по умолчанию. Написание алгоритмов, аналогичных <algorithm>.

Задачи

  • transform
  • partition на ForwardIterator'ах
  • merge
  • lower_bound

В среду 28 сентября на первой паре, как всегда, будет контрольная по пройденным материалам.

Семинар 28.09.2015

Результаты контрольной:

ФИО Оценка Прислал ревью
Алейкин Сергей Дмитриевич 8
Бобровский Артемий Андреевич 6
Васильев Олег Юрьевич 0
Грицаев Матвей Григорьевич 6
Дрынкин Роберт Робертович 8
Ершов Олег Владиславович 6
Кочергин Владислав Константинович 8
Лавренов Николай Артемович 6
Лавритов Дмитрий Ильич 6
Семенов Михаил Александрович 8
Усов Федор Андреевич 4


Домашнее задание: как в прошлый раз, разбиться на пары и прислать мне на почту ревью кода напарника по всем отправленным на КР задачам. Принимается вплоть до полуночи воскресенья, то есть до конца недели.

Семинар 03.10.2016

Класс для работы с рациональными числами (не шаблон и шаблон). Конструкторы, список инициализации, const, перегрузка операторов, friend.

Код, написанный на семинаре.

Семинар 05.10.2016

Дополнительные применения шаблонов, классы типов, sfinae.

Код, написанный на семинаре.

Домашняя работа

Распределение по вариантам:

ФИО A B C
Алейкин Сергей Дмитриевич 2 2 2
Бобровский Артемий Андреевич 1 1 1
Васильев Олег Юрьевич 2 1 2
Грицаев Матвей Григорьевич 1 2 2
Дрынкин Роберт Робертович 2 1 1
Ершов Олег Владиславович 1 2 2
Кочергин Владислав Константинович 1 2 2
Лавренов Николай Артемович 1 2 1
Лавритов Дмитрий Ильич 2 2 2
Семенов Михаил Александрович 1 1 2
Усов Федор Андреевич 2 2 1