Практика «График» Хорошая визуализация данных — ключ к успеху любого исследования! Вам необходимо научиться визуализировать выход 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 […]
Решения задачи с Ulearn
Практика «Нестатические методы» Вы вдруг поняли, что не очень-то удобно писать имя класса Geometry при выполнении любой операции с векторами и сегментами. Однако, отказаться от этого класса вы не можете, потому что за те несколько минут, пока вы сдавали предыдущую задачу, вашу библиотеку скачали и начали использовать в своих проектах тысячи человек. Поэтому вы решили […]
Решения задачи с Ulearn
Практика «Сегмент» Продолжаем разработку геометрической библиотеки. Создайте класс отрезка Segment с двумя публичными полями, Begin и End, типа Vector. Добавьте метод Geometry.GetLength, вычисляющий длину сегмента, и метод Geometry.IsVectorInSegment(Vector,Segment), проверяющий, что задаваемая вектором точка лежит в отрезке. Вся функциональность предыдущего этапа должна остаться! // Вставьте сюда финальное содержимое файла VectorTask.cs Стоимость решения этой задачи всего 100 […]
Решения задачи с Ulearn
Практика «Вектор» Создайте новый проект в Visual Studio. Выберите в качестве типа проекта Class Library. В этом проекте создайте два класса, Vector и Geometry, в пространстве имен GeometryTasks. В классе Vector должно быть два публичных поля, X и Y, типа double. В классе Geometry должно быть два статических метода: GetLength, который возвращает длину переданного вектора, […]
