Задачи и тесты по программированию | proghub
2.43K subscribers
655 photos
16 videos
23 files
915 links
Публикуем задачи и вопросы для подготовки к собесу.

Сотрудничество: @cyberJohnny
Download Telegram
Рассмотрим две реализации std::make_unique. В каких из трёх случаев контент сконструированных объектов a и b будет разный?
Anonymous Quiz
26%
1
29%
2
26%
3
18%
Ни в одном
👆Пояснение к предыдущему вопросу

👨🏻‍💻 Правильный ответ -- только в первом случае. a создаст объект из пяти шестёрок, а b будет равен {5, 6}. Так происходит из-за list-init initialization.

Во втором случае объект b будет равен просто {"a", "b"}. Объект a мог быть ошибкой, если бы типы Args&&... вывелись бы как указатели на char*, тогда мог бы сработать конструктор от двух указателей но шаблоны выводятся как const char(&)[2] и поэтому этот конструктор не срабатывает. То есть этот пример не скомпилируется и не является правильным ответом.

В третьем примере дефолтные конструкторы сделают одно и тоже.

Задачи и тесты по программированию | proghub
👆Пояснение к предыдущему вопросу

👨🏻‍💻 Мы кидаем SpecialException. Оно унаследовано от GeneralException, но принимается по значению, поэтому динамический тип e будет GeneralException, не SpecialException. В С++ community такой эффект называют ещё slicing.

Мы должны принимать exception по ссылке catch (GeneralException& e), тогда динамический тип будет SpecialException, и программа выведет S.

Задачи и тесты по программированию | proghub
👆Пояснение к предыдущему вопросу

👨🏻‍💻 Казалось бы, мы проинициализировали stream строкой "a" и сначала выведем "a", потом добавим к стриму "b" и выведем "ab" и в итоге должно быть "aab", но нет.

stringstream содержит в себе позицию буффера. И при дефолтном конструкторе от строки, он будет нулём.

operator<< перезаписывает следующую позицию в буффере и поэтому во втором cout выведется b

Чтобы это починить, можно написать так:

std::stringstream ss("a", std::ios_base::out|std::ios_base::ate);
Поэтому многими стайлгайдами запрещено использование stringstream.

Задачи и тесты по программированию | proghub
Имеется кортеж вида T = (4, 2, 3). Какая из операций приведёт к тому, что имя T будет ссылаться на кортеж (1, 2, 3)?
Anonymous Quiz
22%
T[0] = 1
17%
T = (1) + T[1:]
41%
T = (1,) + T[1:]
20%
T.startswith(1)
👆Пояснение к предыдущему вопросу

👨🏻‍💻 Поскольку кортежи неизменяемы, их нельзя модифицировать на месте, но можно создать новый кортеж с желаемым значением. Изменить первый элемент можно за счёт создания нового кортежа из частей имеющегося с помощью срезов и конкатенации: Т = (1,) + Т [1: ].

При этом одноэлементные кортежи требуют хвостовой запятой, иначе число в скобках это всего лишь число.

Задачи и тесты по программированию | proghub
👍3
Scrum без ошибок.pdf
10 MB
📔 Title: Scrum без ошибок. Инструменты, техники и советы для тех, кто работает по Agile

#Book #Scrum #RU

🌐 Lang.: Russian
🧔 Author: Илан Голдштейн
🕘 Year: 2020
📑 Pages: 199
#️⃣ ISBN: 978-5-00146-306-1

📝 Description: Широкое распространение Scrum объясняется его кажущейся простотой,
однако его внедрение проходит далеко не так гладко, как ожидают
многие. Опираясь на свой обширный опыт, сертифицированный scrum-
тренер Илан Голдштейн раскрывает фундаментальные механизмы
Scrum и его сущность как фреймворка. В этой книге каждый найдет
решение своих проблем и конкретных scrum-задач. Даже те, кто
разобрался во всех scrum-тонкостях и держит все под контролем, найдут
для себя новые инструменты и добавят их в свой scrum-арсенал. В этой
книге Илан Голдштейн собрал 30 лайфхаков. Написаны они таким
образом, чтобы их можно было читать и использовать автономно,
независимо от других частей книги. Обращайтесь к тем из них, которые
больше всего отвечают вашим потребностям. И помните, что в этой
книге отражена только реальная scrum-практика, протестированная
в боевых условиях.

@bzd_channel