Решения задачи с Ulearn

Практика «Статистика» Продолжайте в том же проекте linq-slideviews. В файле StatisticsTask реализуйте метод GetMedianTimePerSlide. Он должен работать так. Обозначим T(U, S) время между посещением пользователем U слайда S и ближайшим следующим посещением тем же пользователем U какого-то другого слайда S2 != S. T(U, S) можно считать примерной оценкой того, сколько времени пользователь U провел на […]

Решения задачи с Ulearn

Практика «Уровни» Продолжайте в том же проекте rocket. В этой задаче в классе LevelsTask нужно добавить в игру ещё несколько уровней. В результате должны быть следующие уровни: Zero. Нулевая гравитация. Heavy. Постоянная гравитация 0.9, направленная вниз. Up. Гравитация направлена вверх и значение её модуля вычисляется по формуле 300 / (d + 300.0), где d — […]

Решения задачи с Ulearn

Практика «Простые команды Brainfuck» Продолжайте работу в том же проекте brainfuck. Изучите класс Brainfuck.cs, в частности то, как он использует реализованный ранее класс VirtualMachine. В классе BrainfuckBasicCommands реализуйте метод, регистрирующий следующие простые команды в виртуальную машину: Символ Значение . Вывести байт памяти, на который указывает указатель, преобразовав в символ согласно ASCII + Увеличить байт памяти, […]

Решения задачи с Ulearn

Практика «Ghosts» Скачайте проект ghost. Неаккуратная реализация Equals и GetHashCode может приводить к тому, что добавленный в Dictionary или HashSet ключ внезапно исчезает. Чтобы не попадаться на подобные ошибки в будущем, в этом задании предлагается поизучать всевозможные подобные ошибки. В проекте вам даны несколько классов с уже реализованными GetHashCode и Equals. Вам нужно придумать, как […]

Решения задачи с Ulearn

Практика «Readonly bytes» Скачайте проект readonly-bytes. Иногда есть смысл в качестве ключей в Dictionary или HashSet использовать массивы байт. Однако по умолчанию массивы сравниваются по ссылкам, а не по содержимому, а часто нужно именно по содержимому. В таких случаях можно написать класс-обёртку над массивом, который переопределит Equals и HashCode так, чтобы сравнение происходило по содержимому. […]