Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Класс Math и его функции






Кроме переменных и констант, первичным материалом для построения выражений являются функции. Большинство их в проекте будут созданы самим программистом, но не обойтись и без встроенных функций. Умение работать в среде Visual Studio.Net предполагает знание встроенных возможностей этой среды, знание возможностей каркаса Framework.Net, пространств имен, доступных при программировании на языке C#, а также соответствующих встроенных классов и функций этих классов. Продолжим знакомство с возможностями, предоставляемыми пространством имен System. Мы уже познакомились с классом Convert этого пространства и частично с классом Console. Давайте рассмотрим еще один класс - класс Math, содержащий стандартные математические функции, без которых трудно обойтись при построении многих выражений. Этот класс содержит два статических поля, задающих константы E и PI, а также 23 статических метода. Методы задают:

  • тригонометрические функции - Sin, Cos, Tan;
  • обратные тригонометрические функции - ASin, ACos, ATan, ATan2 (sinx, cosx);
  • гиперболические функции - Tanh, Sinh, Cosh;
  • экспоненту и логарифмические функции - Exp, Log, Log10;
  • модуль, корень, знак - Abs, Sqrt, Sign;
  • функции округления - Ceiling, Floor, Round;
  • минимум, максимум, степень, остаток - Min, Max, Pow, IEEEReminder.

В особых пояснениях эти функции не нуждаются. Приведу пример:

/// < summary> /// работа с функциями класса Math/// < /summary> public void MathFunctions(){ double a, b, t, t0, dt, y; string NameFunction; Console.WriteLine(" Введите имя F(t)исследуемой функции a*F(b*t)" + " (sin, cos, tan, cotan)"); NameFunction = Console.ReadLine(); Console.WriteLine(" Введите параметр a (double)"); a= double.Parse(Console.ReadLine()); Console.WriteLine(" Введите параметр b (double)"); b= double.Parse(Console.ReadLine()); Console.WriteLine(" Введите начальное время t0(double)"); t0= double.Parse(Console.ReadLine()); const int points = 10; dt = 0.2; for(int i = 1; i< =points; i++) { t = t0 + (i-1)* dt; switch (NameFunction) { case (" sin"): y = a*Math.Sin(b*t); break; case (" cos"): y = a*Math.Cos(b*t); break; case (" tan"): y = a*Math.Tan(b*t); break; case (" cotan"): y = a/Math.Tan(b*t); break; case (" ln"): y = a*Math.Log(b*t); break; case (" tanh"): y = a*Math.Tanh(b*t); break; default: y=1; break; }//switch Console.WriteLine (" t = " + t + "; " + a +" *" + NameFunction +" (" + b + " *t)= " + y + "; "); }//for double u = 2.5, v = 1.5, p, w; p= Math.Pow(u, v); w = Math.IEEERemainder(u, v); Console.WriteLine (" u = " + u + "; v= " + v + "; power(u, v)= " + p + "; reminder(u, v)= " + w); }//MathFunctions

Заметьте, в примерах программного кода я постепенно расширяю диапазон используемых средств. Часть из этих средств уже описана, а часть (например, оператор цикла for и оператор выбора switch) будут описаны позже. Те, у кого чтение примеров вызывает затруднение, смогут вернуться к ним при повторном чтении книги.

Коротко прокомментирую этот код. В данном примере пользователь определяет, какую функцию он хочет вычислить и при каких значениях ее параметров. Некоторые параметры задаются константами и инициализированными переменными, но для большинства их значения вводятся пользователем. Одна из целей этого фрагмента состоит в демонстрации консольного ввода данных разного типа, при котором используется описанный ранее метод Parse.

Функция, заданная пользователем, вычисляется в операторе switch. Здесь реализован выбор из 6 стандартных функций, входящих в джентльменский набор класса Math.

Вызов еще двух функций из класса Math содержится в двух последних строчках этой процедуры. На рис. 7.1 можно видеть результаты ее работы.


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






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.