Рубрика: Статьи

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

Практика «Индексаторы» Реализуйте индексатор T this[int i] у дерева, возвращающий i-ый по порядку ключ, содержащийся в дереве. Сложность этой операции должна быть O(h)O(h)O(h), где hhh — высота дерева. Для решения этой задачи для каждого узла дерева вам придется хранить и поддерживать еще и размер его поддерева. using System; using System.Collections; using System.Collections.Generic; namespace BinaryTrees { […]

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

Практика «Парсер таблиц» Скачайте проект TableParser В классе FieldsParserTask реализуйте метод ParseLine, для которого вы создавали тесты в предыдущей задаче. Создайте модульные тесты на это решение и перенесите разработанные в прошлой задаче тестовые случаи в модульные тесты. При вычленении из строки фрагментов приходится отслеживать 2 вещи: Проинтерпретированное значение, соответствующее фрагменту. Например, значение фрагмента «a\tb» это […]

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

Практика «Второй эксперимент» Проведем еще один эксперимент. Реализуйте метод Generator.GenerateCallRunner() так, чтобы он порождал код следующего вида: Отправьте получившийся генератор. Раскомментируйте вторую строчку в Program.Main. Сделайте выводы. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Profiling { Стоимость решения этой задачи всего 100 рублей, купи решения у меня 🙂

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

Практика «График» Хорошая визуализация данных — ключ к успеху любого исследования! Вам необходимо научиться визуализировать выход IProfiler, который был написан на предыдущем этапе. Для этого в файле ChartBuilder.cs создайте соответствующий класс, реализовав интерфейс IChartBuilder. Из метода Build вы можете возвращать Chart (из System.Windows.Forms.DataVisualization) или ZedChartControl (ZedGraph). Первый класс работает только в Windows из-за лицензионных соглашений. […]

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

Практика «Профайлер» В файле Profiler.cs напишите класс Profiler, реализующий интерфейс IProfiler. Его задача — измерить время вызова методов PS()/PC(). Для этого он должен вызывать метод runner.Call для всех классов и структур всех размеров, указанных в Constants.FieldCounts, с count=repetitionsCount, и замерять время выполнения этого метода с помощью Stopwatch. Не забудьте поделить результат замера на repetitionsCount. Перед […]

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

Практика «Генератор структур» На этой практике мы проведем небольшое научное исследование. Мы выполним замеры времени для некоторых операций над классами и структурами, сравним их, объясним и поймем, в каких случаях использование структур дает выигрыш. Сначала нужно создать типы данных, с которыми мы будем работать. Нам понадобятся классы и структуры с 512 полями! Очевидно, мы не […]

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

Практика «Карманный гугл» Скачайте проект В этом проекте вы создадите структуру данных индекса, который используется для быстрого поиска слов в документах. В файле Indexer.cs реализуйте предложенные методы Add. Этот метод должен индексировать все слова в документе. Разделители слов: { ‘ ‘, ‘.’, ‘,’, ‘!’, ‘?’, ‘:’, ‘-‘,’\r’,’\n’ }; Сложность – O(document.Length) GetIds. Этот метод должен […]

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

Практика «Счет из отеля» Скачайте проект В файле AccountingModel.cs создайте класс AccountingModel, унаследованный от ModelBase, со следующими свойствами. double Price — цена за одну ночь. Должна быть неотрицательной. int NightsCount — количество ночей. Должно быть положительным. double Discount — скидка в процентах. Никаких дополнительных ограничений. double Total — сумма счёта. Должна быть не отрицательна и должна […]

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

Практика «Readonly Vector» Помните класс Vector из позапрошлой практики? Скорее всего, он был написан ужасно, с открытыми полями и всем прочим. Как правило, такие структуры данных делают read-only. В пространстве имен ReadOnlyVectorTask сделайте класс ReadOnlyVector с двумя публичными readonly-полями X и Y, которые устанавливаются в конструкторе. ReadOnlyVector должен содержать метод Add(ReadOnlyVector other), который возвращает сумму […]

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

Практика «256 оттенков серого» Некто хочет использовать вашу геометрическую библиотеку для рисования. Для этого ему необходимо, чтобы у вашего класса Segment появился цвет. Однако, вам кажется, что втаскивать цвета в чисто геометрическую сущность — плохая идея. Скачайте проект, установите в нем reference на вашу библиотеку, и после этого сделайте так, чтобы методы GetColor и SetColor […]