Основы и методология программирования 2016/2017 пилотный поток — различия между версиями
(→Домашняя работа) |
|||
Строка 47: | Строка 47: | ||
Для всех остальных: примените вот такую функцию к своему логину в Яндекс.Контесте: | Для всех остальных: примените вот такую функцию к своему логину в Яндекс.Контесте: | ||
− | + | std::vector<size_t> get_variants(const std::string& login, size_t problems_count = 3) { | |
− | + | size_t hash = 0; | |
− | + | ||
for (char c : login) { | for (char c : login) { | ||
hash += static_cast<unsigned int>(c); | hash += static_cast<unsigned int>(c); | ||
− | hash %= | + | hash %= (1 << problems_count); |
} | } | ||
− | + | std::vector<size_t> variants(problems_count); | |
+ | for (size_t i = 0; i != problems_count; ++i) | ||
+ | variants[i] = ((hash >> i) & 1) + 1; | ||
+ | return variants; | ||
} | } | ||
− | |||
== Формулы оценок == | == Формулы оценок == |
Версия 15:59, 3 октября 2016
Содержание
Основы и методология программирования, пилотный поток, 2016-2017, 1 модуль
Лектор: А. И. Зобнин
Лекции: понедельник (еженедельно), 1-я пара (9:00-10:20), ауд. 205;
среда (7 и 21 сентября, 5 и 19 октября), 2-я пара (10:30-11:50), ауд. 205.
Консультации лектора: среда, 3-я пара (12:10 - 13:30), ауд. 618.
Краткое содержание прочитанных лекций
05.09.2016. C++: ввод и вывод, условный оператор, циклы, оператор switch. [Код, написанный на лекции.]
07.09.2016. Шаблон std::vector. [Код, написанный на лекции.]
12.09.2016. Выражения. Приоритет операторов. Функции. Передача параметров в функции. [Код, написанный на лекции.]
19.09.2016. Структуры. Ассоциативные массивы. [Код, написанный на лекции.]
21.09.2016. Алгоритмы стандартной библиотеки. [Код, написанный на лекции.]
Используемое ПО
Мы будем работать в Linux, использовать текстовый редактор Vim и компилятор clang 3.8.
На занятия можно приносить свой ноутбук.
Преподаватели и ассистенты
Подгруппа | Преподаватель | Учебные ассистенты | Семинары | Страница подгруппы |
---|---|---|---|---|
161-1 | Константин Бажанов | Александр Тиунов | вторник, 2-я пара, ауд. 513; среда, 1-я пара, ауд. 327 | |
161-2 | Павел Мельничук | Александр Тиунов | понедельник, 2-я пара, ауд. 513; среда, 1-я пара, ауд. 513 | 161-2 |
163-1 | Алексей Зобнин | Александр Зойкин | понедельник, 2-я пара, ауд. 501; среда, 1-я пара, ауд. 503 | |
163-2 | Алексей Панов | Александр Зойкин | понедельник, 2-я пара, ауд. 327; среда, 1-я пара, ауд. 505 |
Домашняя работа
Ссылка на контест (начало - 12:00 3 октября, конец - 23:59 10 октября).
Как узнать свой вариант: Если вы из подгруппы 161-2 - обратитесь к своему преподавателю.
Для всех остальных: примените вот такую функцию к своему логину в Яндекс.Контесте:
std::vector<size_t> get_variants(const std::string& login, size_t problems_count = 3) { size_t hash = 0; for (char c : login) { hash += static_cast<unsigned int>(c); hash %= (1 << problems_count); } std::vector<size_t> variants(problems_count); for (size_t i = 0; i != problems_count; ++i) variants[i] = ((hash >> i) & 1) + 1; return variants; }
Формулы оценок
Итоговая оценка за I модуль = 0,12 * Аудиторная_работа + 0,18 * Домашняя_работа + 0,3 * Контрольные + 0,4 * Экзамен
Требования к оформлению кода программ
Мы используем cpplint для проверки стиля. Вот список требований.
Полезные ссылки
Bandit - игра для освоения консольных команд Linux
Practical Vim - хороший учебник по Vim
.vimrc - файл с найстроками Vim (от Алексея Зобнина)