Обучение C#

Формула программиста
основатель — Волосатов Евгений Витольдович

Класс Math для работы с математическими функциями

Для математических вычислений в языке C# создан специальный статический класс Math, обладающий набором полей и методов для выполнения основных математических операций.
Полями класса Math являются:
  • PI - число π;
  • E - число e.
Кроме того, класс Math содержит ряд методов, основные из которых рассмотрены ниже.  

Методы определения модуля и получения знака — Abs, Sign

Для вычисления абсолютного значения (модуля) используется метод Abs() класса Math. Возвращаемым значением этого метода является абсолютное значение переданного числа. Для получения знака числа используется метод Sign() класса Math. Возвращает значение
  • -1 для отрицательного числа,
  • 0 для нуля,
  • 1 для положительного числа.
В качестве аргумента этим методам передается число. целого типа со знаком &mdath; sbyte, short, int, ulong или вещественного типа — float, double, decimal.  

Методы определения минимума и максимума — Min, Max

Методы Min() и Max() возвращают соответственно минимальное или максимальное значение из двух чисел, переданных этим методам в качестве аргументов. Эти методы работают со всеми базовыми числовыми типами данных, но при условии, что типы двух передаваемых аргументов совпадают.
Рассмотрим пример поиска минимального элемента в массиве из 10 элементов с использованием метода Min().
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System;
namespace MyProgram
{
  class Program
  {
    static void Main(string[] args)
    {
      int []a = new int[10];
      Random rnd = new Random();
      for (int i = 0; i < 10; i++)
      {
        a[i] = rnd.Next(0, 100);
        Console.Write("{0,2} ",a[i]);
      }
      Console.WriteLine();
      int min = a[0];
      for (int i = 1; i < 10; i++)
        min = Math.Min(min, a[i]);
      Console.WriteLine("Минимальное значение: " + min);
      Console.ReadKey();
    }
  }
}
image articles/523/523_1.png
 

Методы округления

Для округления вещественного числа по правилам арифметики используются методы
  • Round(double Число, int КоличествоРазрядов), Round(decimal Число, int КоличествоРазрядов) — округляет указанное число до указанного числа десятичных разрядов после запятой.
  • Round(double Число), Round(decimal Число) — округляет указанное число до ближайшего целого по правилам арифметики.
  • Round(double Число, int КоличествоРазрядов, MidpointRounding), Round(decimal Число, int КоличествоРазрядов, MidpointRounding) — округляет указанное число до указанного числа десятичных разрядов после запятой. Третий аргумент задает правила округления если значение находится ровно посередине между двумя числами и может принимать значения:
    • MidpointRounding.AwayFromZero - до ближайшего числа в сторону большего по модулю значения;
    • MidpointRounding.ТоEven - до ближайшего четного числа.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System;
namespace MyProgram
{
  class Program
  {
    static void Main(string[] args)
    {
      double a = double.Parse(Console.ReadLine());
      Console.WriteLine("Math.Round(a, 3)"
      + Math.Round(a, 3));
      Console.WriteLine("AvayFromZero    "
      + Math.Round(a, 3, MidpointRounding.AwayFromZero));
      Console.WriteLine("ToEven          "
      + Math.Round(a, 3, MidpointRounding.ToEven));
      Console.ReadKey();
    }
  }
}
image articles/523/523_3.png
image articles/523/523_4.png
image articles/523/523_2.png
В последнем случае число находится не точно посередине между двумя числами, поэтому округление производится по общим правилам, без учета третьего аргумента метода Round(). Также для округления до целого числа могут использоваться методы
  • Ceiling(double число), Ceiling(decimal число) - округление до ближайшего целого числа в большую сторону.
  • Floor(double число), Floor(decimal число) - округление до ближайшего целого числа в меньшую сторону.
  • Truncate(double число), Truncate(decimal число) - отбрасывает дробную часть числа.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using System;
namespace MyProgram
{
  class Program
  {
    static void Main(string[] args)
    {
      double a = double.Parse(Console.ReadLine());
      Console.WriteLine("Ceiling:  " + Math.Ceiling(a));
      Console.WriteLine("Floor:    " + Math.Floor(a));
      Console.WriteLine("Truncate: " + Math.Truncate(a));
      Console.ReadKey();
    }
  }
}
image articles/523/523_5.png
image articles/523/523_6.png
 

Методы тригонометрических функций

Для вычисления тригонометрических функций класс Math предусматривает ряд методов. Все методы оперируют значениями углов типа double, заданными в радианах и возвращают значение типа double.
Если угол задан в градусах, его можно перевести в радианы при помощи формулы:
 
 
double deg = 30; //угол в градусах
double rad = deg * Math.PI/180; //угол в радианах
  • Sin(угол) - вычисление синуса угла.
  • Cos(угол) - вычисление косинуса угла.
  • Tan(угол) - вычисление тангенса угла.
  • Asin(значение) - вычисление арксинуса значения из диапазона [‑1; 1], возвращаемое значение лежит в диапазоне [‑π/2; π/2].
  • Acos(значение) - вычисление арккосинуса значения из диапазона [‑1; 1], возвращаемое значение лежит в диапазоне [0; π].
  • Atan(значение) - вычисление арктангенса значения, возвращаемое значение лежит в диапазоне [‑π/2; π/2].
  • Sinh(угол) - вычисление гиперболического синуса угла.
  • Cosh(угол) - вычисление гиперболического косинуса угла.
  • Tanh(угол) - вычисление гиперболического тангенса угла.
 

Логарифмические функции

Класс Math предусматривает ряд методов для работы с экспонентой и логарифмами:
  • Exp(double степень) - возвращает значение числа e (Math.E) в указанной степени.
  • Log(double число) - возвращает натуральный логарифм указанного числа.
  • Log10(double число) - возвращает десятичный логарифм указанного числа.
  • Log(double число, double основание) - возвращает логарифм указанного числа по указанному основанию.
 

Возведение в степень и извлечение квадратного корня

Для возведения числа в степень предусмотрен метод Pow(double, double), в качестве первого аргумента которого указывается число, возводимое в степень, а в качестве второго аргумента — показатель степени.
Для извлечения квадратного корня из числа типа double можно также использовать метод Sqrt(double).

Автор: Вставская Елена Владимировна

 
Написать комментарий:




Начинаем практику по языку C#




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.