СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Дополнительные классы и структуры .Net

Категория: Информатика

Нажмите, чтобы узнать подробности

Просмотр содержимого документа
«Дополнительные классы и структуры .Net»

Дополнительные классы и структуры .Net

Дополнительные классы и структуры .Net

  Математические вычисления и класс Math  Для выполнения различных математических операций в библиотеке классов .NET предназначен класс Math. Он является статическим, поэтому все его методы также являются статическими.

Математические вычисления и класс Math

  • Для выполнения различных математических операций в библиотеке классов .NET предназначен класс Math. Он является статическим, поэтому все его методы также являются статическими.
  Рассмотрим основные методы класса Math: Abs(double value): возвращает абсолютное значение для аргумента value double result = Math.Abs(-12.4); // 12.4

Рассмотрим основные методы класса Math:

  • Abs(double value): возвращает абсолютное значение для аргумента value
  • double result = Math.Abs(-12.4); // 12.4
Acos(double value): возвращает арккосинус value. Параметр value должен иметь значение от -1 до 1 double result = Math.Acos(1); // 0
  • Acos(double value): возвращает арккосинус value. Параметр value должен иметь значение от -1 до 1
  • double result = Math.Acos(1); // 0
Asin(double value): возвращает арксинус value. Параметр value должен иметь значение от -1 до 1 Atan(double value): возвращает арктангенс value
  • Asin(double value): возвращает арксинус value. Параметр value должен иметь значение от -1 до 1
  • Atan(double value): возвращает арктангенс value
BigMul(int x, int y): возвращает произведение x * y в виде объекта long double result = Math.BigMul(100, 9340); // 934000
  • BigMul(int x, int y): возвращает произведение x * y в виде объекта long
  • double result = Math.BigMul(100, 9340); // 934000
Ceiling(double value): возвращает наименьшее целое число с плавающей точкой, которое не меньше value double result = Math.Ceiling(2.34); // 3
  • Ceiling(double value): возвращает наименьшее целое число с плавающей точкой, которое не меньше value
  • double result = Math.Ceiling(2.34); // 3
Cos(double d): возвращает косинус угла d Cosh(double d): возвращает гиперболический косинус угла d
  • Cos(double d): возвращает косинус угла d
  • Cosh(double d): возвращает гиперболический косинус угла d
DivRem(int a, int b, out int result): возвращает результат от деления a/b, а остаток помещается в параметр result int result; int div = Math.DivRem(14, 5, out result); //result = 4 // div = 2
  • DivRem(int a, int b, out int result): возвращает результат от деления a/b, а остаток помещается в параметр result
  • int result;
  • int div = Math.DivRem(14, 5, out result);
  • //result = 4
  • // div = 2
Exp(double d): возвращает основание натурального логарифма, возведенное в степень d Floor(decimal d): возвращает наибольшее целое число, которое не больше d double result = Math.Floor(2.56); // 2
  • Exp(double d): возвращает основание натурального логарифма, возведенное в степень d
  • Floor(decimal d): возвращает наибольшее целое число, которое не больше d
  • double result = Math.Floor(2.56); // 2
IEEERemainder(double a, double b): возвращает остаток от деления a на b double result = Math.IEEERemainder(26, 4); // 2 = 26-24
  • IEEERemainder(double a, double b): возвращает остаток от деления a на b
  • double result = Math.IEEERemainder(26, 4); // 2 = 26-24
Log(double d): возвращает натуральный логарифм числа d Log(double a, double newBase): возвращает логарифм числа a по основанию newBase Log10(double d): возвращает десятичный логарифм числа d Max(double a, double b): возвращает максимальное число из a и b Min(double a, double b): возвращает минимальное число из a и b Pow(double a, double b): возвращает число a, возведенное в степень b
  • Log(double d): возвращает натуральный логарифм числа d
  • Log(double a, double newBase): возвращает логарифм числа a по основанию newBase
  • Log10(double d): возвращает десятичный логарифм числа d
  • Max(double a, double b): возвращает максимальное число из a и b
  • Min(double a, double b): возвращает минимальное число из a и b
  • Pow(double a, double b): возвращает число a, возведенное в степень b
Round(double d): возвращает число d, округленное до ближайшего целого числа double result1 = Math.Round(20.56); // 21 double result2 = Math.Round(20.46); //20
  • Round(double d): возвращает число d, округленное до ближайшего целого числа
  • double result1 = Math.Round(20.56); // 21
  • double result2 = Math.Round(20.46); //20
Round(double a, round b): возвращает число a, округленное до определенного количества знаков после запятой, представленного параметром b double result1 = Math.Round(20.567, 2); // 20,57 double result2 = Math.Round(20.463, 1); //20,5
  • Round(double a, round b): возвращает число a, округленное до определенного количества знаков после запятой, представленного параметром b
  • double result1 = Math.Round(20.567, 2); // 20,57
  • double result2 = Math.Round(20.463, 1); //20,5
Sign(double value): возвращает число 1, если число value положительное, и -1, если значение value отрицательное. Если value равно 0, то возвращает 0 int result1 = Math.Sign(15); // 1 int result2 = Math.Sign(-5); //-1
  • Sign(double value): возвращает число 1, если число value положительное, и -1, если значение value отрицательное. Если value равно 0, то возвращает 0
  • int result1 = Math.Sign(15); // 1
  • int result2 = Math.Sign(-5); //-1
Sin(double value): возвращает синус угла value Sinh(double value): возвращает гиперболический синус угла value
  • Sin(double value): возвращает синус угла value
  • Sinh(double value): возвращает гиперболический синус угла value
Sqrt(double value): возвращает квадратный корень числа value double result1 = Math.Sqrt(16); // 4
  • Sqrt(double value): возвращает квадратный корень числа value
  • double result1 = Math.Sqrt(16); // 4
Tan(double value): возвращает тангенс угла value
  • Tan(double value): возвращает тангенс угла value
Tanh(double value): возвращает гиперболический тангенс угла value
  • Tanh(double value): возвращает гиперболический тангенс угла value
Truncate(double value): отбрасывает дробную часть числа value, возвращая лишь целое значение double result = Math.Truncate(16.89); // 16
  • Truncate(double value): отбрасывает дробную часть числа value, возвращая лишь целое значение
  • double result = Math.Truncate(16.89); // 16
Также класс Math определяет две константы: Math.E и Math.PI. Например, вычислим площадь круга:
  • Также класс Math определяет две константы: Math.E и Math.PI. Например, вычислим площадь круга:
Преобразование типов и класс Convert Методы Parse и TryParse Все примитивные типы имеют два метода, которые позволяют преобразовать строку к данному типу. Это методы Parse() и TryParse().

Преобразование типов и класс Convert

  • Методы Parse и TryParse
  • Все примитивные типы имеют два метода, которые позволяют преобразовать строку к данному типу. Это методы Parse() и TryParse().
Метод Parse() в качестве параметра принимает строку и возвращает объект текущего типа. Например:
  • Метод Parse() в качестве параметра принимает строку и возвращает объект текущего типа. Например:
Стоит отметить, что парсинг дробных чисел зависит от настроек текущей культуры. В частности, для получения числа double я передаю строку
  • Стоит отметить, что парсинг дробных чисел зависит от настроек текущей культуры. В частности, для получения числа double я передаю строку "23,56" с запятой в качестве разделителя. Если бы я передал точку вместо запятой, то приложение выдало ошибку выполнения. На компьютерах с другой локалью, наоборот, использование запятой вместо точки выдало бы ошибку.
Чтобы не зависеть от культурных различий мы можем установить четкий формат с помощью класса NumberFormatInfo и его свойства NumberDecimalSeparator:
  • Чтобы не зависеть от культурных различий мы можем установить четкий формат с помощью класса NumberFormatInfo и его свойства NumberDecimalSeparator:
В данном случае в качестве разделителя устанавливается точка. Однако тем не менее потенциально при использовании метода Parse мы можем столкнуться с ошибкой, например, при передачи алфавитных символов вместо числовых. И в этом случае более удачным выбором будет применение метода TryParse(). Он пытается преобразовать строку к типу и, если преобразование прошло успешно, то возвращает true. Иначе возвращается false :
  • В данном случае в качестве разделителя устанавливается точка. Однако тем не менее потенциально при использовании метода Parse мы можем столкнуться с ошибкой, например, при передачи алфавитных символов вместо числовых. И в этом случае более удачным выбором будет применение метода TryParse(). Он пытается преобразовать строку к типу и, если преобразование прошло успешно, то возвращает true. Иначе возвращается false :
Если преобразование пройдет неудачно, то исключения никакого не будет выброшено, просто метод TryParse возвратит false, а переменная number будет содержать значение по умолчанию.

Если преобразование пройдет неудачно, то исключения никакого не будет выброшено, просто метод TryParse возвратит false, а переменная number будет содержать значение по умолчанию.

Convert Класс Convert представляет еще один способ для преобразования значений. Для этого в нем определены следующие статические методы:

Convert

  • Класс Convert представляет еще один способ для преобразования значений. Для этого в нем определены следующие статические методы:
ToBoolean(value) ToByte(value) ToChar(value) ToDateTime(value) ToDecimal(value) ToDouble(value) ToInt16(value) ToInt32(value)
  • ToBoolean(value)
  • ToByte(value)
  • ToChar(value)
  • ToDateTime(value)
  • ToDecimal(value)
  • ToDouble(value)
  • ToInt16(value)
  • ToInt32(value)
ToInt64(value) ToSByte(value) ToSingle(value) ToUInt16(value) ToUInt32(value) ToUInt64(value)
  • ToInt64(value)
  • ToSByte(value)
  • ToSingle(value)
  • ToUInt16(value)
  • ToUInt32(value)
  • ToUInt64(value)
В качестве параметра в эти методы может передаваться значение различных примитивных типов, необязательно строки: Однако опять же, как и в случае с методом Parse, если методу не удастся преобразовать значение к нужному типу, то он выбрасывает исключение FormatException.
  • В качестве параметра в эти методы может передаваться значение различных примитивных типов, необязательно строки:

Однако опять же, как и в случае с методом Parse, если методу не удастся преобразовать значение к нужному типу, то он выбрасывает исключение FormatException.

Класс Array и массивы Все массивы в C# построены на основе класса Array из пространства имен System. Этот класс определяет ряд свойств и методов, которые мы можем использовать при работе с массивами.

Класс Array и массивы

  • Все массивы в C# построены на основе класса Array из пространства имен System. Этот класс определяет ряд свойств и методов, которые мы можем использовать при работе с массивами.
Основные свойства и методы: Свойство Length возвращает длину массива Свойство Rank возвращает размерность массива int BinarySearch (Array array, object? value) выполняет бинарный поиск в отсортированном массиве и возвращает индекс найденного элемента void Clear (Array array) очищает массив, устанавливая для всех его элементов значение по умолчанию

Основные свойства и методы:

  • Свойство Length возвращает длину массива
  • Свойство Rank возвращает размерность массива
  • int BinarySearch (Array array, object? value) выполняет бинарный поиск в отсортированном массиве и возвращает индекс найденного элемента
  • void Clear (Array array) очищает массив, устанавливая для всех его элементов значение по умолчанию
void Copy (Array sourceArray, int sourceIndex, Array destinationArray, int destinationIndex, int length) копирует из массива sourceArray начиная с индекс sourceIndex length элементов в массив destinationArray начиная с индекса destinationIndex bool Exists (T[] array, Predicate match) проверяет, содержит ли массив array элементы, которые удовлеворяют условию делегата match
  • void Copy (Array sourceArray, int sourceIndex, Array destinationArray, int destinationIndex, int length) копирует из массива sourceArray начиная с индекс sourceIndex length элементов в массив destinationArray начиная с индекса destinationIndex
  • bool Exists (T[] array, Predicate match) проверяет, содержит ли массив array элементы, которые удовлеворяют условию делегата match
void Fill (T[] array, T value) заполняет массив array значением value T? Find (T[] array, Predicate match) находит первый элемент, который удовлеворяет определенному условию из делегата match. Если элемент не найден, то возвращается null T? FindLast (T[] array, Predicate match) находит последний элемент, который удовлеворяет определенному условию из делегата match. Если элемент не найден, то возвращается null
  • void Fill (T[] array, T value) заполняет массив array значением value
  • T? Find (T[] array, Predicate match) находит первый элемент, который удовлеворяет определенному условию из делегата match. Если элемент не найден, то возвращается null
  • T? FindLast (T[] array, Predicate match) находит последний элемент, который удовлеворяет определенному условию из делегата match. Если элемент не найден, то возвращается null
int FindIndex (T[] array, Predicate match) возвращает индекс первого вхождения элемента, который удовлеворяет определенному условию делегата match int FindLastIndex (T[] array, Predicate match) возвращает индекс последнего вхождения элемента, который удовлеворяет определенному условию T[] FindAll (T[] array, Predicate match) возвращает все элементы в виде массива, которые удовлеворяет определенному условию из делегата match
  • int FindIndex (T[] array, Predicate match) возвращает индекс первого вхождения элемента, который удовлеворяет определенному условию делегата match
  • int FindLastIndex (T[] array, Predicate match) возвращает индекс последнего вхождения элемента, который удовлеворяет определенному условию
  • T[] FindAll (T[] array, Predicate match) возвращает все элементы в виде массива, которые удовлеворяет определенному условию из делегата match
int IndexOf (Array array, object? value) возвращает индекс первого вхождения элемента в массив int LastIndexOf (Array array, object? value) возвращает индекс последнего вхождения элемента в массив void Resize (ref T[]? array, int newSize) изменяет размер одномерного массива
  • int IndexOf (Array array, object? value) возвращает индекс первого вхождения элемента в массив
  • int LastIndexOf (Array array, object? value) возвращает индекс последнего вхождения элемента в массив
  • void Resize (ref T[]? array, int newSize) изменяет размер одномерного массива
void Reverse (Array array) располагает элементы массива в обратном порядке void Sort (Array array) сортирует элементы одномерного массива
  • void Reverse (Array array) располагает элементы массива в обратном порядке
  • void Sort (Array array) сортирует элементы одномерного массива
Разберем самые используемые методы. Поиск индекса элемента Если элемент не найден в массиве, то методы возвращают -1.

Разберем самые используемые методы.

  • Поиск индекса элемента

Если элемент не найден в массиве, то методы возвращают -1.

Поиск элемента по условию

Поиск элемента по условию

Изменение порядка элементов массива Например, изменим порядок элементов:

Изменение порядка элементов массива

  • Например, изменим порядок элементов:
Также можно изменить порядок только части элементов: В данном случае изменяем порядок только 3 элементов начиная c индекса 1.
  • Также можно изменить порядок только части элементов:

В данном случае изменяем порядок только 3 элементов начиная c индекса 1.

Изменение размера массива Для изменения размера массива применяется метод Resize. Его первый параметр - изменяемый массив, а второй параметр - количество элементов, которые должны быть в массиве. Если второй параметр меньше длины массива, то массив усекается. Если значение параметра, наоборот, больше, то массив дополняется дополнительными элементами, которые имеют значение по умолчанию. Причем первый параметр передается по ссылке:

Изменение размера массива

  • Для изменения размера массива применяется метод Resize. Его первый параметр - изменяемый массив, а второй параметр - количество элементов, которые должны быть в массиве. Если второй параметр меньше длины массива, то массив усекается. Если значение параметра, наоборот, больше, то массив дополняется дополнительными элементами, которые имеют значение по умолчанию. Причем первый параметр передается по ссылке:
Копирование массива Метод Copy копирует часть одного массива в другой : В данном случае копируем 3 элемента из массива people начиная c индекса 1 и вставляем их в массив employees начиная с индекса 0.

Копирование массива

  • Метод Copy копирует часть одного массива в другой :

В данном случае копируем 3 элемента из массива people начиная c индекса 1 и вставляем их в массив employees начиная с индекса 0.

Сортировка массива Отсортируем массив с помощью метода Sort():

Сортировка массива

  • Отсортируем массив с помощью метода Sort():
Этот метод имеет много перегрузок. Например, одна из версий позволяет отсортировать только часть массива:
  • Этот метод имеет много перегрузок. Например, одна из версий позволяет отсортировать только часть массива: