From f56280123cea7cb59bd0e729607a605f0d40527b Mon Sep 17 00:00:00 2001 From: sova gleb Date: Thu, 13 May 2021 12:05:58 +0300 Subject: [PATCH 1/2] first task --- .../Numbers/FloatNumbers.cs | 20 ++++++++-- .../01-primitive-types/Numbers/Integers.cs | 38 +++++++++++++++---- .../01-primitive-types/Numbers/Program.cs | 6 ++- 3 files changed, 50 insertions(+), 14 deletions(-) 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..1787348a 100644 --- a/course-2021-1/exercises/01-primitive-types/Numbers/FloatNumbers.cs +++ b/course-2021-1/exercises/01-primitive-types/Numbers/FloatNumbers.cs @@ -17,7 +17,8 @@ internal static double GetNaN() Необходимо вернуть значение, не используя непосредственно саму константу. Для этого подумай, какой смысл в себе несет эта константа и где бы она могла стать результатом операции или вычисления функции. */ - throw new NotImplementedException(); + double a = 0; + return a / a; } /// @@ -28,20 +29,31 @@ internal static double GetNaN() 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(decimal a, decimal b) { /* Подумай, почему это задание дано в части про вещественнозначные числа. И почему не дана полная сигнатура метода. Если сходу идей нет, перестань искать подвох и просто реализуй дословно. Теперь еще раз посмотри на код и подумай в чем может быть проблема, сколько должно быть аргументов. */ - throw new NotImplementedException(); + if (a <= b) + { + return -1; + } + else if (a == b) + { + return 0; + } + else + { + return 1; + } } // и все?!! О_о 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..1211415b 100644 --- a/course-2021-1/exercises/01-primitive-types/Numbers/Integers.cs +++ b/course-2021-1/exercises/01-primitive-types/Numbers/Integers.cs @@ -46,7 +46,7 @@ internal static int HalfIntMaxValue() Особенно это касается связки Visual Studio + Resharper, используя которую, если просто набрать return и нажать пробел, то в появившемся списке автодополнения одной из первых будет нужная тебе константа :) */ - throw new NotImplementedException(); + return 1073741823; } /// @@ -55,7 +55,10 @@ internal static int HalfIntMaxValue() internal static int Cube(int x) { // не сомневайся, пиши. Тут без подвохов. - throw new NotImplementedException(); + + int result; + result = x * x * x; + return result; } /// @@ -67,7 +70,15 @@ internal static int CubeWithOverflowCheck(int x) Если спал на лекции, то тут придется погуглить, сорри. И заодно подумай какой режим выставлен по умолчанию. Почему. И почему категорически нельзя надеяться на режим по умолчанию. */ - throw new NotImplementedException(); + + int result; + + checked + { + result = x * x * x; + } + + return result; } /// @@ -76,7 +87,15 @@ И заодно подумай какой режим выставлен по у internal static int CubeWithoutOverflowCheck(int x) { // если сделал предыдущие, то с этим уже должно быть понятно. - throw new NotImplementedException(); + + int result; + + unchecked + { + result = x * x * x; + } + + return result; } /// @@ -93,7 +112,7 @@ internal static string ToString(int x) Подсказка: нужно воспользоваться методом, который есть у абсолютно всех объектов. */ - throw new NotImplementedException(); + return x.ToString(); } /// @@ -107,7 +126,7 @@ internal static int Parse(string s) Продолжай идти простым путем -нужен метод, обратный методу ToString выше, который распарсит дефолтное строковое представление числа. Подсказка: у каждого примитивного типа есть набор статических методов, среди которых есть нужный. */ - throw new NotImplementedException(); + return Int32.Parse(s); } /// @@ -119,7 +138,10 @@ internal static int TenTimes(int x) Реализуй умножение числа на 10 без использования арифметических операций над числами. Воспользуйся реализованными выше методами ToString и Parse. И не думай ни о каких переполнениях - задача не на это :) */ - throw new NotImplementedException(); + + string x_str = ToString(x); + x_str += "0"; + return Parse(x_str); } /// @@ -133,7 +155,7 @@ internal static string ToHexString(int x) У метода ToString числовых типов есть перегрузка, которая принимает строку с одним из заданного набора форматов. В студии дается хорошая и понятная подсказка с этим набором форматов, в других же IDE скорее всего такого не будет, и придется погуглить форматы. */ - throw new NotImplementedException(); + return x.ToString("x8"); } /* diff --git a/course-2021-1/exercises/01-primitive-types/Numbers/Program.cs b/course-2021-1/exercises/01-primitive-types/Numbers/Program.cs index 78460c01..4734af42 100644 --- a/course-2021-1/exercises/01-primitive-types/Numbers/Program.cs +++ b/course-2021-1/exercises/01-primitive-types/Numbers/Program.cs @@ -17,8 +17,10 @@ internal class Program private static void Main() { // твои бро: Console.WriteLine и Console.ReadLine - - Console.WriteLine("Hello World!"); + double a = 0; + double b = 0; + double c = a / a; + Console.WriteLine(double.IsNaN(c)); } } } From 808884aaab553ba74378e7337509246c68ac3ad1 Mon Sep 17 00:00:00 2001 From: sova gleb Date: Tue, 25 May 2021 01:46:32 +0300 Subject: [PATCH 2/2] first task --- .../BoringVector.Tests/BoringVector.Tests.csproj | 15 +++++++++++++++ .../BoringVector/BoringVector.Tests/UnitTest1.cs | 13 +++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 course-2021-1/exercises/03-boring-vector/BoringVector/BoringVector.Tests/BoringVector.Tests.csproj create mode 100644 course-2021-1/exercises/03-boring-vector/BoringVector/BoringVector.Tests/UnitTest1.cs diff --git a/course-2021-1/exercises/03-boring-vector/BoringVector/BoringVector.Tests/BoringVector.Tests.csproj b/course-2021-1/exercises/03-boring-vector/BoringVector/BoringVector.Tests/BoringVector.Tests.csproj new file mode 100644 index 00000000..80fcd5be --- /dev/null +++ b/course-2021-1/exercises/03-boring-vector/BoringVector/BoringVector.Tests/BoringVector.Tests.csproj @@ -0,0 +1,15 @@ + + + + netcoreapp2.1 + + false + + + + + + + + + diff --git a/course-2021-1/exercises/03-boring-vector/BoringVector/BoringVector.Tests/UnitTest1.cs b/course-2021-1/exercises/03-boring-vector/BoringVector/BoringVector.Tests/UnitTest1.cs new file mode 100644 index 00000000..b251f141 --- /dev/null +++ b/course-2021-1/exercises/03-boring-vector/BoringVector/BoringVector.Tests/UnitTest1.cs @@ -0,0 +1,13 @@ +using System; +using Xunit; + +namespace BoringVector.Tests +{ + public class UnitTest1 + { + [Fact] + public void Test1() + { + } + } +} \ No newline at end of file