Похожие презентации:
Классы Math, Random, Numerics и DateTime
1. ЛК 5. Классы для работы с числами и датами
БГУИР кафедра ИнформатикиИ.И. ГЛАМАЗДИН
1
2. Класс Math
БГУИР кафедра ИнформатикиИ.И. ГЛАМАЗДИН
2
3. Класс Math
Класс Math предоставляет константы и статическиеметоды для тригонометрических, логарифмических и
других общих математических функций.
БГУИР кафедра Информатики
И.И. ГЛАМАЗДИН
3
4. Класс Math
ПоляE
Представляет основание натурального логарифма, заданное
константой e.
PI
Представляет отношение длины окружности к ее диаметру,
определяемое константой π.
Tau
Представляет количество радианов за один оборот, определяемое
константой τ.
БГУИР кафедра Информатики
И.И. ГЛАМАЗДИН
4
5. Класс Math
Некоторые методыAbs
Возвращает абсолютное значение числа.
Ceiling
Возвращает наименьшее целое значение, которое больше или равно
указанному числу.
Clamp
Результат ограничен диапазоном значений min и max.
Floor
Возвращает наибольшее целое значение, меньшее или равное
указанному числу.
Log
Возвращает натуральный (основание e) логарифм указанного числа.
Max
Возвращает большее из двух чисел
Pow
Возвращает указанное число в указанной степени.
Round
Округляет десятичное значение до ближайшего целого значения или до
указанного количества десятичных знаков
Sin
Возвращает синус указанного угла.
БГУИР кафедра Информатики
И.И. ГЛАМАЗДИН
5
6. Класс Math
var result = Math.Pow(2, 4);БГУИР кафедра Информатики
И.И. ГЛАМАЗДИН
6
7. Класс Random
БГУИР кафедра ИнформатикиИ.И. ГЛАМАЗДИН
7
8. Класс Random
Конструктор Random(Int32) использует указанное вамиявное начальное значение.
Конструктор Random() использует начальное значение
по умолчанию. Это наиболее распространенный способ
создания экземпляра генератора случайных чисел.
БГУИР кафедра Информатики
И.И. ГЛАМАЗДИН
8
9. Класс Random
В .NET Framework начальное значение по умолчанию зависит отвремени.
В .NET Core начальное значение по умолчанию создается
генератором статических псевдослучайных чисел потока.
Если одно и то же начальное число используется для
отдельных объектов Random , они будут генерировать одну и ту
же серию случайных чисел.
В большинстве систем Windows объекты Random, созданные с
интервалом в 15 миллисекунд, скорее всего, будут иметь
идентичные начальные значения.
БГУИР кафедра Информатики
И.И. ГЛАМАЗДИН
9
10. Класс Random
Next()Next(Int32)
Возвращает неотрицательное случайное целое число.
Возвращает неотрицательное случайное целое число,
меньшее указанного максимума.
Next(Int32, Int32)
Возвращает случайное целое число в указанном
диапазоне.
Заполняет элементы указанного массива байтов
случайными числами.
NextBytes(Byte[])
NextDouble()
БГУИР кафедра Информатики
Возвращает случайное число с плавающей запятой,
которое больше или равно 0,0, но меньше 1,0.
И.И. ГЛАМАЗДИН
10
11. Сложные типы
БГУИР кафедра ИнформатикиИ.И. ГЛАМАЗДИН
11
12. BigInteger
Пространство имен System.NumericsСтруктура BigInteger - это неизменяемый тип,
представляющий произвольно большое целое число,
значение которого теоретически не имеет верхней или
нижней границы.
БГУИР кафедра Информатики
И.И. ГЛАМАЗДИН
12
13. BigInteger
BigInteger bigIntFromDouble = new BigInteger(179032.6541);BigInteger bigIntFromInt64 = new BigInteger(934157136952);
BigInteger assignedFromDouble = (BigInteger)179032.6541;
byte[] byteArray = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
BigInteger newBigInt = new BigInteger(byteArray);
string negativeString = "-90315837410896312071002088037140000";
BigInteger negBigInt = 0;
try
{
negBigInt = BigInteger.Parse(negativeString);
}
catch (FormatException)
{
}
BigInteger.TryParse(negativeString, out negBigInt);
БГУИР кафедра Информатики
И.И. ГЛАМАЗДИН
13
14. BigInteger
BigInteger bigIntFromDouble = new BigInteger(179032.6541);BigInteger bigIntFromInt64 = new BigInteger(934157136952);
var result = bigIntFromDouble + bigIntFromInt64;
var newBigInt = BigInteger.Add(int.MaxValue, 123456);
БГУИР кафедра Информатики
И.И. ГЛАМАЗДИН
14
15. Complex
Пространство имен System.NumericsСтруктура Complex представляет комплексное число.
БГУИР кафедра Информатики
И.И. ГЛАМАЗДИН
15
16. Complex
Комплексное число - это число, состоящее издействительной и мнимой числовой частей.
Комплексное число z обычно записывается в форме
z = x + yi,
где x и y - действительные числа, а i - мнимая единица,
обладающая свойством i2 = -1.
Действительная часть комплексного числа представлена x,
а мнимая часть комплексного числа представлена y.
БГУИР кафедра Информатики
И.И. ГЛАМАЗДИН
16
17. Complex
Способы создания объекта класса Complex:Передавая два значения Double в конструктор. Первое значение
представляет действительную часть комплексного числа, а второе
значение представляет его мнимую часть.
Вызов статического метода Complex.FromPolarCoordinates для
создания комплексного числа из его полярных координат.
Назначая значение Byte, SByte, Int16, UInt16, Int32, UInt32, Int64,
UInt64, Single или Double для комплексного объекта. Значение
становится действительной частью комплексного числа, а его
мнимая часть равна 0.
БГУИР кафедра Информатики
И.И. ГЛАМАЗДИН
17
18. Complex
Способы создания объекта класса Complex:Путем преобразования значения Decimal или BigInteger в объект
Complex. Значение становится действительной частью
комплексного числа, а его мнимая часть равна 0.
Путем присвоения комплексного числа, возвращаемого методом
или оператором, объекту Complex . Например, Complex.Add - это
статический метод, который возвращает комплексное число,
которое является суммой двух комплексных чисел, а оператор
Complex.Addition складывает два комплексных числа и возвращает
результат.
БГУИР кафедра Информатики
И.И. ГЛАМАЗДИН
18
19. Complex
Структура Complex в .NET Framework включает элементы, которыеобеспечивают следующие функции:
Методы сравнения двух комплексных чисел, чтобы определить, равны
ли они.
Операторы для выполнения арифметических операций над
комплексными числами. Комплексные операторы, позволяющие
выполнять сложение, вычитание, умножение, деление и унарное
отрицание с комплексными числами.
Методы выполнения других числовых операций над комплексными
числами (возвести комплексное число в указанную степень, найти
квадратный корень из комплексного числа и получить абсолютное
значение комплексного числа).
Методы выполнения тригонометрических операций над комплексными
числами.
БГУИР кафедра Информатики
И.И. ГЛАМАЗДИН
19
20.
var cResult = Complex.Add((Complex)1, (Complex)2);БГУИР кафедра Информатики
И.И. ГЛАМАЗДИН
20
21. Класс DateTime
БГУИР кафедра ИнформатикиИ.И. ГЛАМАЗДИН
21
22. DateTime
Структура DateTime представляет дату и время со значениями вдиапазоне
от 00:00:00 (полночь), 1 января 0001 г., Anno Domini (наша эра)
до 23:59:59, 31 декабря 9999 г. н.э. (н.э.) по григорианскому
календарю.
БГУИР кафедра Информатики
И.И. ГЛАМАЗДИН
22
23. DateTime
Значения времени измеряются в единицах 100наносекунд, называемых тактами (tick). Конкретная дата это количество тактов с 12:00 до полуночи 1 января 0001
года нашей эры в григорианском календаре.
БГУИР кафедра Информатики
И.И. ГЛАМАЗДИН
23
24. DateTime
var date1 = new DateTime(2008, 5, 1, 8, 30, 52);var dateString = "5/1/2008 8:30:52 AM";
DateTime date2 = DateTime.Parse(dateString,
System.Globalization.CultureInfo.InvariantCulture);
var iso8601String = "20080501T08:30:52Z";
DateTime dateISO8602 = DateTime.ParseExact(iso8601String,
"yyyyMMddTHH:mm:ssZ",
System.Globalization.CultureInfo.InvariantCulture);
БГУИР кафедра Информатики
И.И. ГЛАМАЗДИН
24
25. DateTime
DateTime date1 = DateTime.Now;DateTime date2 = DateTime.UtcNow;
DateTime date3 = DateTime.Today;
БГУИР кафедра Информатики
И.И. ГЛАМАЗДИН
25
26. DateTime
DateTime date1 = DateTime.Now;var year = date1.Year;
var month = date1.Month;
Console.WriteLine(date1.ToShortDateString());
БГУИР кафедра Информатики
И.И. ГЛАМАЗДИН
26
27. DateTime
Форматирование даты(см. https://metanit.com/sharp/tutorial/19.1.php )
БГУИР кафедра Информатики
И.И. ГЛАМАЗДИН
27
28. DateTime
Функции работы с датойAdd(TimeSpan value): добавляет к дате значение TimeSpan
AddDays(double value): добавляет к текущей дате несколько дней
AddHours(double value): добавляет к текущей дате несколько часов
AddMinutes(double value): добавляет к текущей дате несколько минут
AddMonths(int value): добавляет к текущей дате несколько месяцев
AddYears(int value): добавляет к текущей дате несколько лет
БГУИР кафедра Информатики
И.И. ГЛАМАЗДИН
28
29. Класс TimeSpan
БГУИР кафедра ИнформатикиИ.И. ГЛАМАЗДИН
29
30. TimeSpan
Структура TimeSpan представляет временной интервал(продолжительность времени или прошедшее время),
который измеряется как положительное или отрицательное
число дней, часов, минут, секунд и долей секунды.
Структура TimeSpan также может использоваться для
представления времени дня, но только если время не
связано с определенной датой.
БГУИР кафедра Информатики
И.И. ГЛАМАЗДИН
30
31. TimeSpan
Самаябольшая
единица
времени,
которую структура TimeSpan использует для измерения
продолжительности, - это день.
БГУИР кафедра Информатики
И.И. ГЛАМАЗДИН
31
32. TimeSpan
TimeSpan interval2 = new TimeSpan(2, 14, 18);DateTime departure = new DateTime(2010, 6, 12, 18, 32, 0);
DateTime arrival = new DateTime(2010, 6, 13, 22, 47, 0);
TimeSpan travelTime = arrival - departure;
БГУИР кафедра Информатики
И.И. ГЛАМАЗДИН
32
33. Классы DateOnly, TimeOnly
БГУИР кафедра ИнформатикиИ.И. ГЛАМАЗДИН
33
34. DateOnly (с версии .Net 6)
Тип DateOnly является структурой , котораяпредназначена для представления только даты.
Другими словами, только год, месяц и день.
БГУИР кафедра Информатики
И.И. ГЛАМАЗДИН
34
35. TimeOnly (с версии .Net 6)
Тип TimeOnly представляет собой структуру,предназначенную для представления только времени
суток.
Если DateOnly –это одна половина DateTime, то TimeOnly
- вторая половина.
БГУИР кафедра Информатики
И.И. ГЛАМАЗДИН
35
36. StopWatch
Пространство имен System.DiagnosticsКласс StopWatch предоставляет набор методов и свойств,
которые можно использовать для точного измерения
прошедшего времени.
БГУИР кафедра Информатики
И.И. ГЛАМАЗДИН
36
37. StopWatch
Stopwatch stopWatch = new Stopwatch();stopWatch.Start();
.
.
.
stopWatch.Stop();
TimeSpan ts = stopWatch.Elapsed;
БГУИР кафедра Информатики
И.И. ГЛАМАЗДИН
37
38. StopWatch
Stopwatch stopWatch = Stopwatch.StartNew();.
.
.
stopWatch.Stop();
TimeSpan ts = stopWatch.Elapsed;
БГУИР кафедра Информатики
И.И. ГЛАМАЗДИН
38
Программирование