Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ internal static double GetNaN()
Необходимо вернуть значение, не используя непосредственно саму константу.
Для этого подумай, какой смысл в себе несет эта константа и где бы она могла стать результатом операции или вычисления функции.
*/
throw new NotImplementedException();
double zero = 0.0;
return 0 / zero;
}

/// <summary>
Expand All @@ -28,20 +29,20 @@ internal static double GetNaN()
internal static bool IsNaN(double d)
{
// Подсказка: по аналогии с константами типа int, у типа double тоже есть свой набор констант.
throw new NotImplementedException();
return d.Equals(double.NaN);
}

/// <summary>
/// Возвращает результат сравнения двух вещественнозначных чисел.
/// </summary>
/// <returns>-1 - первое меньше второго, 0 - значения равны, 1 - первое больше второго.</returns>
internal static int Compare(/* дополни сигнатуру метода как считаешь правильным */)
internal static int Compare(double x, double y, double eps)
{
/*
Подумай, почему это задание дано в части про вещественнозначные числа. И почему не дана полная сигнатура метода.
Если сходу идей нет, перестань искать подвох и просто реализуй дословно. Теперь еще раз посмотри на код и подумай в чем может быть проблема, сколько должно быть аргументов.
*/
throw new NotImplementedException();
return (Math.Abs(x - y) < eps ? 0 : x < y ? -1 : 1);
}

// и все?!! О_о
Expand Down
16 changes: 8 additions & 8 deletions course-2021-1/exercises/01-primitive-types/Numbers/Integers.cs
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ internal static int HalfIntMaxValue()
Особенно это касается связки Visual Studio + Resharper, используя которую, если просто набрать return и нажать пробел,
то в появившемся списке автодополнения одной из первых будет нужная тебе константа :)
*/
throw new NotImplementedException();
return int.MaxValue / 2;
}

/// <summary>
Expand All @@ -55,7 +55,7 @@ internal static int HalfIntMaxValue()
internal static int Cube(int x)
{
// не сомневайся, пиши. Тут без подвохов.
throw new NotImplementedException();
return x * x * x;
}

/// <summary>
Expand All @@ -67,7 +67,7 @@ internal static int CubeWithOverflowCheck(int x)
Если спал на лекции, то тут придется погуглить, сорри.
И заодно подумай какой режим выставлен по умолчанию. Почему. И почему категорически нельзя надеяться на режим по умолчанию.
*/
throw new NotImplementedException();
return checked(x * x * x);
}

/// <summary>
Expand All @@ -76,7 +76,7 @@ И заодно подумай какой режим выставлен по у
internal static int CubeWithoutOverflowCheck(int x)
{
// если сделал предыдущие, то с этим уже должно быть понятно.
throw new NotImplementedException();
return unchecked(x * x * x);
}

/// <summary>
Expand All @@ -93,7 +93,7 @@ internal static string ToString(int x)

Подсказка: нужно воспользоваться методом, который есть у абсолютно всех объектов.
*/
throw new NotImplementedException();
return x.ToString();
}

/// <summary>
Expand All @@ -107,7 +107,7 @@ internal static int Parse(string s)
Продолжай идти простым путем -нужен метод, обратный методу ToString выше, который распарсит дефолтное строковое представление числа.
Подсказка: у каждого примитивного типа есть набор статических методов, среди которых есть нужный.
*/
throw new NotImplementedException();
return int.Parse(s);
}

/// <summary>
Expand All @@ -119,7 +119,7 @@ internal static int TenTimes(int x)
Реализуй умножение числа на 10 без использования арифметических операций над числами.
Воспользуйся реализованными выше методами ToString и Parse. И не думай ни о каких переполнениях - задача не на это :)
*/
throw new NotImplementedException();
return Parse(ToString(x) + "0");
}

/// <summary>
Expand All @@ -133,7 +133,7 @@ internal static string ToHexString(int x)
У метода ToString числовых типов есть перегрузка, которая принимает строку с одним из заданного набора форматов.
В студии дается хорошая и понятная подсказка с этим набором форматов, в других же IDE скорее всего такого не будет, и придется погуглить форматы.
*/
throw new NotImplementedException();
return x.ToString("X");
}

/*
Expand Down
17 changes: 17 additions & 0 deletions course-2021-1/exercises/01-primitive-types/Numbers/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,23 @@ private static void Main()
// твои бро: Console.WriteLine и Console.ReadLine

Console.WriteLine("Hello World!");
Console.WriteLine(Numbers.Integers.HalfIntMaxValue());
Console.WriteLine(Numbers.Integers.Cube(3));
// Console.WriteLine(Numbers.Integers.CubeWithOverflowCheck(1234567891));
// Console.WriteLine(Numbers.Integers.CubeWithoutOverflowCheck(1234567891));
Console.WriteLine(Numbers.Integers.ToString(1234));
Console.WriteLine(Numbers.Integers.Parse("38216283"));
Console.WriteLine(Numbers.Integers.TenTimes(54321));
Console.WriteLine(Numbers.Integers.ToHexString(1234));
Console.WriteLine(Numbers.FloatNumbers.GetNaN());
Console.WriteLine(Numbers.FloatNumbers.IsNaN(Numbers.FloatNumbers.GetNaN()));
Console.WriteLine(Numbers.FloatNumbers.IsNaN(double.NaN));
Console.WriteLine(Numbers.FloatNumbers.IsNaN(7.55));
double x = 33.5321;
double y = 33.5320;
Console.WriteLine(Numbers.FloatNumbers.Compare(x, y, 0.001));
Console.WriteLine(Numbers.FloatNumbers.Compare(x, y, 0.0001));
Console.WriteLine(Numbers.FloatNumbers.Compare(y, x, 0.0001));
}
}
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,74 @@
namespace AdventureTime
using System;

namespace AdventureTime
{
internal class Program
{
private static void Main()
{
Console.WriteLine(Time.WhatTimeIsIt());
Console.WriteLine(Time.WhatTimeIsItInUtc());

Console.WriteLine(Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Local));
Console.WriteLine(Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Utc));
Console.WriteLine(Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Unspecified));

Console.WriteLine(Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Local).ToLocalTime());
Console.WriteLine(Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Utc).ToLocalTime());
Console.WriteLine(Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Unspecified).ToLocalTime());

Console.WriteLine(Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Local).ToUniversalTime());
Console.WriteLine(Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Utc).ToUniversalTime());
Console.WriteLine(Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Unspecified).ToUniversalTime());

Console.WriteLine(Time.ToRoundTripFormatString(Time.WhatTimeIsIt()));
Console.WriteLine(Time.ToRoundTripFormatString(Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Local)));
Console.WriteLine(Time.ToRoundTripFormatString(Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Utc)));
Console.WriteLine(Time.ToRoundTripFormatString(Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Unspecified)));

Console.WriteLine(Time.ParseFromRoundTripFormat(Time.ToRoundTripFormatString(Time.WhatTimeIsIt())));
Console.WriteLine(Time.ParseFromRoundTripFormat(Time.ToRoundTripFormatString(Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Local))));
Console.WriteLine(Time.ParseFromRoundTripFormat(Time.ToRoundTripFormatString(Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Utc))));
Console.WriteLine(Time.ParseFromRoundTripFormat(Time.ToRoundTripFormatString(Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Unspecified))));

Console.WriteLine(Time.ToUtc(Time.WhatTimeIsIt()));
Console.WriteLine(Time.ToUtc(Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Local)));
Console.WriteLine(Time.ToUtc(Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Utc)));
Console.WriteLine(Time.ToUtc(Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Unspecified)));

Console.WriteLine(Time.AddTenSeconds(Time.WhatTimeIsIt()));
Console.WriteLine(Time.AddTenSeconds(Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Local)));
Console.WriteLine(Time.AddTenSeconds(Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Utc)));
Console.WriteLine(Time.AddTenSeconds(Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Unspecified)));

Console.WriteLine(Time.AddTenSecondsV2(Time.WhatTimeIsIt()));
Console.WriteLine(Time.AddTenSecondsV2(Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Local)));
Console.WriteLine(Time.AddTenSecondsV2(Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Utc)));
Console.WriteLine(Time.AddTenSecondsV2(Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Unspecified)));

Console.WriteLine(Time.GetHoursBetween(Time.WhatTimeIsIt(), new DateTime(2021, 5, 8, 10, 0, 0)));
Console.WriteLine(Time.GetHoursBetween(new DateTime(2021, 5, 8, 10, 0, 0), Time.WhatTimeIsIt()));
Console.WriteLine(Time.GetHoursBetween(Time.WhatTimeIsIt(), Time.WhatTimeIsIt()));
Console.WriteLine(Time.GetHoursBetween(Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Local), Time.SpecifyKind(new DateTime(2021, 5, 8, 10, 0, 0), DateTimeKind.Local)));
Console.WriteLine(Time.GetHoursBetween(Time.SpecifyKind(new DateTime(2021, 5, 8, 10, 0, 0), DateTimeKind.Local), Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Local)));
Console.WriteLine(Time.GetHoursBetween(Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Local), Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Local)));
Console.WriteLine(Time.GetHoursBetween(Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Utc), Time.SpecifyKind(new DateTime(2021, 5, 8, 10, 0, 0), DateTimeKind.Utc)));
Console.WriteLine(Time.GetHoursBetween(Time.SpecifyKind(new DateTime(2021, 5, 8, 10, 0, 0), DateTimeKind.Utc), Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Utc)));
Console.WriteLine(Time.GetHoursBetween(Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Utc), Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Utc)));
Console.WriteLine(Time.GetHoursBetween(Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Unspecified), Time.SpecifyKind(new DateTime(2021, 5, 8, 10, 0, 0), DateTimeKind.Unspecified)));
Console.WriteLine(Time.GetHoursBetween(Time.SpecifyKind(new DateTime(2021, 5, 8, 10, 0, 0), DateTimeKind.Unspecified), Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Unspecified)));
Console.WriteLine(Time.GetHoursBetween(Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Unspecified), Time.SpecifyKind(Time.WhatTimeIsIt(), DateTimeKind.Unspecified)));

Console.WriteLine(Time.GetTotalMinutesInThreeMonths());

Console.WriteLine(Time.AreEqualBirthdays(new DateTime(2000, 6, 7), new DateTime(1995, 3, 5)));
Console.WriteLine(Time.AreEqualBirthdays(new DateTime(1995, 3, 5), new DateTime(1995, 3, 5)));

Console.WriteLine(Time.GetAdventureTimeDurationInMinutes_ver0_Dumb());
Console.WriteLine(Time.GetGenderSwappedAdventureTimeDurationInMinutes_ver0_Dumb());
Console.WriteLine(Time.GetAdventureTimeDurationInMinutes_ver1_FeelsSmarter());
Console.WriteLine(Time.GetAdventureTimeDurationInMinutes_ver2_FeelsLikeRocketScience());
Console.WriteLine(Time.GetGenderSwappedAdventureTimeDurationInMinutes_ver2_FeelsLikeRocketScience());
}
}
}
Loading