Skip to content

Latest commit

 

History

History
34 lines (18 loc) · 3.18 KB

README.md

File metadata and controls

34 lines (18 loc) · 3.18 KB

NET.S.2017.Zmitrovich.05

  1. Разработать класс, позволяющий выполнять вычисления НОД по алгоритму Евклида для двух, трех и т.д. целых чисел ( http://en.wikipedia.org/wiki/Euclidean_algorithm , https://habrahabr.ru/post/205106/ ). Методы класса помимо вычисления НОД должны определять значение времени, необходимое для выполнения расчета. Добавить к разработанному классу методы, реализующие алгоритм Стейна (бинарный алгоритм Евклида) для расчета НОД двух, трех и т.д. целых чисел ( http://en.wikipedia.org/wiki/Binary_GCD_algorithm ). Методы должны также определять значение времени, необходимое для выполнения расчетов. Разработать unit-тесты для тестирования методов данного типа.

  2. Реализовать метод расширения для получения двоичного представления вещественного числа двойной точности в формате IEEE 754 ( https://habrahabr.ru/post/112953/ ). Разработать модульные тесты.

     [TestCase(-255.255, ExpectedResult = "1100000001101111111010000010100011110101110000101000111101011100")]
    
     [TestCase(255.255, ExpectedResult = "0100000001101111111010000010100011110101110000101000111101011100")]
    
     [TestCase(4294967295.0, ExpectedResult = "0100000111101111111111111111111111111111111000000000000000000000")]
    
     [TestCase(double.MinValue, ExpectedResult = "1111111111101111111111111111111111111111111111111111111111111111")]
    
     [TestCase(double.MaxValue, ExpectedResult = "0111111111101111111111111111111111111111111111111111111111111111")]
    
     [TestCase(double.Epsilon, ExpectedResult = "0001")]
    
     [TestCase(double.NaN, ExpectedResult = "1111111111111000000000000000000000000000000000000000000000000000")]
    
     [TestCase(double.NegativeInfinity, ExpectedResult = "1111111111110000000000000000000000000000000000000000000000000000")]
    
     [TestCase(double.PositiveInfinity, ExpectedResult = "0111111111110000000000000000000000000000000000000000000000000000")]
    
     …
    
  3. Разработать неизменяемый класс Polynomial (полином) для работы с многочленами степени от одной переменной вещественного типа (в качестве внутренней структуры для хранения коэффициентов использовать sz-массив). Для разработанного класса:

     - переопределить необходимые методы класса Object
    
     - перегрузить операции, допустимые для работы с многочленами (исключая деление многочлена на многочлен)
    
     - разработать unit-тесты.