diff --git a/course-2021-1/exercises/01-primitive-types/Numbers/FloatNumbers.cs b/course-2021-1/exercises/01-primitive-types/Numbers/FloatNumbers.cs
index 9cb1d053..dc22a64a 100644
--- a/course-2021-1/exercises/01-primitive-types/Numbers/FloatNumbers.cs
+++ b/course-2021-1/exercises/01-primitive-types/Numbers/FloatNumbers.cs
@@ -13,11 +13,8 @@ public static class FloatNumbers
///
internal static double GetNaN()
{
- /*
- Необходимо вернуть значение, не используя непосредственно саму константу.
- Для этого подумай, какой смысл в себе несет эта константа и где бы она могла стать результатом операции или вычисления функции.
- */
- throw new NotImplementedException();
+ double zero = 0;
+ return zero / 0;
}
///
@@ -27,21 +24,17 @@ internal static double GetNaN()
/// True, если число имеет значение "не число", иначе false.
internal static bool IsNaN(double d)
{
- // Подсказка: по аналогии с константами типа int, у типа double тоже есть свой набор констант.
- throw new NotImplementedException();
+ return double.IsNaN(d);
}
///
/// Возвращает результат сравнения двух вещественнозначных чисел.
///
/// -1 - первое меньше второго, 0 - значения равны, 1 - первое больше второго.
- internal static int Compare(/* дополни сигнатуру метода как считаешь правильным */)
+ internal static int Compare(double x, double y)
{
- /*
- Подумай, почему это задание дано в части про вещественнозначные числа. И почему не дана полная сигнатура метода.
- Если сходу идей нет, перестань искать подвох и просто реализуй дословно. Теперь еще раз посмотри на код и подумай в чем может быть проблема, сколько должно быть аргументов.
- */
- throw new NotImplementedException();
+
+ return Math.Sign(y - x);
}
// и все?!! О_о
diff --git a/course-2021-1/exercises/01-primitive-types/Numbers/Integers.cs b/course-2021-1/exercises/01-primitive-types/Numbers/Integers.cs
index b1d90398..d81af14e 100644
--- a/course-2021-1/exercises/01-primitive-types/Numbers/Integers.cs
+++ b/course-2021-1/exercises/01-primitive-types/Numbers/Integers.cs
@@ -41,12 +41,8 @@ public static class Integers
///
internal static int HalfIntMaxValue()
{
- /*
- После C++ вы будете приятно удивлены какое умное в .Net автодополнение (IntelliSense).
- Особенно это касается связки Visual Studio + Resharper, используя которую, если просто набрать return и нажать пробел,
- то в появившемся списке автодополнения одной из первых будет нужная тебе константа :)
- */
- throw new NotImplementedException();
+ uint x = 0;
+ return (int)((x - 1) / 4);
}
///
@@ -54,8 +50,7 @@ internal static int HalfIntMaxValue()
///
internal static int Cube(int x)
{
- // не сомневайся, пиши. Тут без подвохов.
- throw new NotImplementedException();
+ return x * x * x;
}
///
@@ -63,11 +58,7 @@ internal static int Cube(int x)
///
internal static int CubeWithOverflowCheck(int x)
{
- /*
- Если спал на лекции, то тут придется погуглить, сорри.
- И заодно подумай какой режим выставлен по умолчанию. Почему. И почему категорически нельзя надеяться на режим по умолчанию.
- */
- throw new NotImplementedException();
+ return checked((int) (x * x * x));
}
///
@@ -76,7 +67,7 @@ internal static int CubeWithOverflowCheck(int x)
internal static int CubeWithoutOverflowCheck(int x)
{
// если сделал предыдущие, то с этим уже должно быть понятно.
- throw new NotImplementedException();
+ return unchecked((int) (x * x * x));
}
///
@@ -93,7 +84,7 @@ internal static string ToString(int x)
Подсказка: нужно воспользоваться методом, который есть у абсолютно всех объектов.
*/
- throw new NotImplementedException();
+ return x.ToString();
}
///
@@ -107,7 +98,7 @@ internal static int Parse(string s)
Продолжай идти простым путем -нужен метод, обратный методу ToString выше, который распарсит дефолтное строковое представление числа.
Подсказка: у каждого примитивного типа есть набор статических методов, среди которых есть нужный.
*/
- throw new NotImplementedException();
+ return int.Parse(s);
}
///
@@ -119,7 +110,7 @@ internal static int TenTimes(int x)
Реализуй умножение числа на 10 без использования арифметических операций над числами.
Воспользуйся реализованными выше методами ToString и Parse. И не думай ни о каких переполнениях - задача не на это :)
*/
- throw new NotImplementedException();
+ return Parse(ToString(x) + '0');
}
///
@@ -133,7 +124,7 @@ internal static string ToHexString(int x)
У метода ToString числовых типов есть перегрузка, которая принимает строку с одним из заданного набора форматов.
В студии дается хорошая и понятная подсказка с этим набором форматов, в других же IDE скорее всего такого не будет, и придется погуглить форматы.
*/
- throw new NotImplementedException();
+ return x.ToString("X");
}
/*