Сайт о телевидении

Сайт о телевидении

» » Math h c функции. Библиотека математических функций math.h

Math h c функции. Библиотека математических функций math.h

Для всех математических функций необходим заголовок . В программах на языке C используется заголовок

1 acos Функция double acos(double arg arg
2 asin Функция double asin(double arg ) возвращает арккосинус аргумента arg . Значение аргумента функции должно лежать в интервале от -1 до 1, иначе произойдет ошибка.
3 atan Функция double atan(double arg ) возвращает арктангенс аргумента arg .
4 atan2 Функция double atan2(double x , double y ) возвращает арктангенс значения y /x .
5 ceil Функция double ceil(double num ) возвращает ближайшее целое число (представленное как действительное число с плавающей точкой), которое не меньше значения аргумента num . Например, ceil(1.02) вернет 2.0. Такое преобразование называется округлением с избытком.
6 cos Функция double cos(double arg ) возвращает косинус аргумента arg
7 cosh Функция double cosh(double arg ) возвращает гиперболический косинус аргумента arg .
8 exp Функция double exp(double arg ) возвращает основание натурального логарифма e, возведенное в степень arg .
9 fabs Функция double fabs(double num ) возвращает абсолютное значение (значение по модулю) аргумента num .
10 floor Функция double floor(double num ) возвращает наибольшее целое число (представленное как действительное число с плавающей точкой), не превышающее значения аргумента num . Например, floor(1.02) вернет число 1.0. Такое преобразование называется округлением с недостатком.
11 fmod Функция double fmod(double x, double y) возвращает остаток от деления x/y.
12 frexp Функция double frexp(double num , int *exp ) раскладывает число num на мантиссу, изменяющуюся в диапазоне от 0.1 до 1, не включая 1, и целый показатель степени, так что num = mantissa . Функция возвращает мантиссу, а значение показателя степени сохраняется в переменной, на которую ссылается указатель exp .
13 log Функция double log(double num ) возвращает натуральный логарифм числа num . Если аргумент num
14 log10 Функция double log10(double num ) возвращает десятичный логарифм числа num . Если аргумент num отрицателен или равен нулю, возникает ошибка.
15 pow Функция double pow(double base , double exp ) возвращает число base , возведенное в степени exp . Если основание степени base равно нулю, а показатель степени exp меньше или равен нулю, может произойти ошибка, связанная с выходом аргумента из области определения функции (domain error). Это ошибка возникает также, если аргумент base отрицателен, а аргумент exp не является целым числом.
16 sin Функция double sin(double arg ) возвращает синус аргумента arg . Значение аргумента должно быть выражено в радианах.
17 sinh Функция double sinh(double arg ) возвращает гиперболический синус аргумента arg .
18 sqrt Функция double sqrt(double num ) возвращает квадратный корень аргумента num . Если значение аргумента отрицательно, возникает ошибка, связанная с выходом из области определения функции.
19 tan Функция double tan(double arg ) возвращает тангенс аргумента arg . Значение аргумента должно быть выражено в радианах.
20 tanh Функция double tanh(double arg ) возвращает гиперболический тангенс аргумента arg .

Math.h — заголовочный файл стандартной библиотеки языка С, разработанный для выполнения простых математических операций. Поскольку С++ также реализует данные функции для обеспечения совместимости (все они содержатся в заголовочном файле cmath) ми будем рассматривать эти языки вместе. Под Linux и FreeBSD математические функции хранятся отдельно в математической библиотеке libm. Таким образом, если любая из этих инструкций используется, при сборке линкеру должна быть передана опция -lm. Так как в результате большинства математических операций получатся дробные числа, все функции библиотеки принимают double. Для работы с типами float и long double используются функции с постфиксами f и l соответственно.

Complex.h — заголовочный файл стандартной библиотеки языка программирования С, в котором объявляются функции для комплексной арифметики. Эти функции используют встроенный тип complex, который появился в стандарте C99. Функции в заголовочном файле complex.h представлены для трёх типов— double, float и long double (значения представлены в радианах): для вычисления тригонометрических значений синуса, косинуса, тангенса и котангенса для комплесных чисел, логарифм и экспонент, корень.

GNU (GSL) — это свободное программное обеспечение под лицензией GNU General Public License. Библиотека предоставляет широкий спектр математических процедур, таких как генераторы случайных чисел, специальных функций и наименьших квадратов. Есть более 1000 функций в общей сложности с обширным набором тестов. В отличие от лицензий собственных численных библиотек лицензия GSL не ограничивает научное сотрудничество. Для подключения библиотеки вы должны написать: $\# include $. Чтобы использовать в C ++ обработку исключений в рамках пользовательских функций, переданных в библиотеку в качестве параметров, библиотека должна быть построена с опцией компиляции -fexceptions. Библиотека может быть использована в многопоточных программах. Все функции поточные в том смысле, что они не используют статические переменные. Память всегда связана с объектами, а не с функциями. Для функций, объекты которых используют рабочее пространство в качестве временного хранилища рабочие области должны быть выделены на основе каждого потока. Для функций, которые используют табличные объекты, память может использоваться несколькими потоками одновременно. Таблица аргументов всегда объявляются константой в прототипах функций, чтобы показать, что они могут быть безопасно доступны из различных потоков.

Вот примерные программы на С++ с использованием математических библиотек:

Найти синус и косинус А

#include // математическая библиотека

using namespace std;

cout << «Input A = »; cin>>a; //ввод а

b=cos(a); //присваивание значений

cout << «Cos A = „<

Вывод программы:

Найти exp от числа А

#include // библиотека ввода-вывода

#include // математичекая библиотека

#include

#include

using namespace std;

SetConsoleOutputCP(1251);

double a,b,c; // переменные типа double

cout << “Input A = »; cin>>a; //ввод а

b=ceil(a); //присваивание значаный

cout << «Большее целое число A = „<

Вывод программы:

Возведите число в степень по заданным значениям

#include // библиотека ввода-вывода

#include // математичекая библиотека

#include

#include

using namespace std;

SetConsoleOutputCP(1251);

double a,b; // переменные типа double

cout << “Введите число = »; cin>>a;

cout << «Введите степень = »; cin>>b;

cout << «Число в степени = „<

Вывод программы:

Решение квадратного уравнения

# include

# include # include

using namespace std;

double a = 1, b = 2, c = 1;

i = gsl_poly_solve_quadratic (a, b, c, &x0, &x1);

if (i == 2) cout << “x0 =»<< x0 << " x1 ="<< x1 << endl;

if (i == 1) cout<< «x0 = » << x0 << endl;

if (i == 0) cout<< «No solve » << endl;

Вывод программы:

Как использовать статистические функции

#include

#include

double data = {17.2, 18.1, 16.5, 18.3, 12.6};

double mean, variance, largest, smallest;

mean = gsl_stats_mean(data, 1, 5);

variance = gsl_stats_variance(data, 1, 5);

largest = gsl_stats_max(data, 1, 5);

smallest = gsl_stats_min(data, 1, 5);

printf («The dataset is \%g, \%g, \%g,\%g, \%g \ n»,

data, data, data, data, data);

printf («The sample mean is \%g\ n», mean);

printf («The estimated variance is \%g\ n», variance);

printf («The largest value is \%g \ n», largest);

printf («The smallest value is \%g \ n», smallest);

Для целых чисел определены операции + , - , * и ** . Операция деления / для целых чисел возвращает вещественное число (значение типа float). Также функция возведения в степень возвращает значение типа float , если показатель степени — отрицательное число.

Но есть и специальная операция целочисленного деления, выполняющегося с отбрасыванием дробной части, которая обозначается // (она соответствует операции div в Паскале). Она возвращает целое число: целую часть частного. Другая близкая ей операция − это операция взятия остатка от деления, обозначаемая % (она соответствует операции mod в Паскале). Например:

Print(17 / 3) # выведет 5.66666666667 print(17 // 3) # выведет 5 print(17 % 3) # выведет 2

Некоторые из перечисленных функций (int , round , abs) являются стандартными и не требуют подключения модуля math для использования.

Функция Описание
Округление
int(x) Округляет число в сторону нуля. Это стандартная функция, для ее использования не нужно подключать модуль math .
round(x) Округляет число до ближайшего целого. Если дробная часть числа равна 0.5, то число округляется до ближайшего четного числа.
round(x, n) Округляет число x до n знаков после точки. Это стандартная функция, для ее использования не нужно подключать модуль math .
floor(x) Округляет число вниз («пол»), при этом floor(1.5) == 1 , floor(-1.5) == -2
ceil(x) Округляет число вверх («потолок»), при этом ceil(1.5) == 2 , ceil(-1.5) == -1
abs(x) Модуль (абсолютная величина). Это — стандартная функция.
Корни, логарифмы
sqrt(x) Квадратный корень. Использование: sqrt(x)
log(x) Натуральный логарифм. При вызове в виде log(x, b) возвращает логарифм по основанию b .
e Основание натуральных логарифмов e = 2,71828...
Тригонометрия
sin(x) Синус угла, задаваемого в радианах
cos(x) Косинус угла, задаваемого в радианах
tan(x) Тангенс угла, задаваемого в радианах
asin(x) Арксинус, возвращает значение в радианах
acos(x) Арккосинус, возвращает значение в радианах
atan(x) Арктангенс, возвращает значение в радианах
atan2(y, x) Полярный угол (в радианах) точки с координатами (x, y).
degrees(x) Преобразует угол, заданный в радианах, в градусы.
radians(x) Преобразует угол, заданный в градусах, в радианы.
pi Константа π = 3.1415...

Все математические функции реализованы как методы класса Math, основные из которых представлены в таблице 4.1

Таблица 4.1 – Основные поля и методы класса Math

Имя метода

Описание

Пояснения

|x|, записывается как Abs(x)

Арккосинус

Acos(double x), угол задается в радианах

Арксинус

Арктангенс

Арктангенс

Atan2(double x,double y) –угол, тангенс которого есть результат деления y на х

Произведение

BigMul(int x,int y)

Округление до большего целого

Celling(double x)

Гиперболический косинус

Деление и остаток

2,71828182845905

Экспонента

Округление до меньшего целого

Floor(double x)

Остаток от деления

IEEERemainder(double x, double y)

Натуральный логарифм

Десятичный логарифм

Максимум из 2-х чисел

Продолжение таблицы 4.1

Имя метода

Описание

Пояснения

Минимум из 2-х чисел

Значение числа пи

3,14159265358979

Возведение в степень

Pow(x,y) – x в степени y

Округление

Round(3.1)=3 Round(3.8)=4

Знак числа

Гиперболический синус

Квадратный корень

Гиперболический тангенс

Пример линейной программы расчета по заданной формуле

namespace ConsoleApplicationl

{ static void Main()

Console.WriteLine(“Введите x”);

buf=Console.ReadLine();

double x=Convert.ToDouble(buf);

Console.WriteLine(“Введите alfa”);

buf=Console.ReadLine();

double a=double.Parse(buf);

double y=Math.Sqrt(Math.PI*x)-

Math.Exp(0.2*Math.Sqrt(a))+

2*Math.Tan(2*a)+

1.6e3*Math.Log10(Math.Pow(x,2));

Console.WriteLine(“Для х= {0} и alfa ={1}”, x,a);

Console.WriteLine(“Результат =” +y); }}}

Лекция 5. Операторы языка c#

Состав операторов языка C#, их синтаксис и семантика унаследованы от языка С++. Любое выражение, завершающееся точкой с запятой является оператором.

Блок или составной оператор

С помощью фигурных скобок несколько операторов языка (возможно, перемежаемых объявлениями) можно объединить в единую синтаксическую конструкцию, называемую блоком или составным оператором:

оператор_1

оператор_N

Синтаксически блок воспринимается как единичный оператор и может использоваться всюду в конструкциях, где синтаксис требует одного оператора. Тело цикла, ветви оператора if, как правило, представляются блоком.

Пустой оператор

Пустой оператор - это "пусто", завершаемое точкой с запятой. Он используется когда по синтаксису оператор требуется, а по смыслу- нет. Иногда полезно рассматривать отсутствие операторов как существующий пустой оператор. Синтаксически допустимо ставить лишние точки с запятой, полагая, что вставляются пустые операторы. Например, синтаксически допустима следующая конструкция:

for (int j=1; j<5; j++) //оператор цикла

{;;;}; //пустой оператор

Она может рассматриваться как задержка по времени, работа на холостом ходе.

Структура программы на языке Си

1. #include cstdlib.h .

2. #include - подключить заголовочный файл iostream.h .

3 . using name space std – использовать стандартное пространство имен

4. int main(int argc, char *argv) – имя функции. Любая программа на языке Си состоит из одной или нескольких функций. В написанном шаблоне функция одна – main(). Функция c именем main обязательно должна быть в любой исполняемой программе .

5. { - начало тела функции

6. system(“pause”) – вызов функции system с аргументом “pause”. Функция реализует ожидание нажатия клавиши.

7. оператор return с аргументом EXIT_SUCCESS – завершение функции main с кодом 0.

8. } – конец функции main.

Простые типы данных Си

Для представления целых величин в Си предусмотрены следующие типы данных:

Тип сhar. Занимает в памяти 1 байт. Используется для представления символов и целых чисел от 0 до 255 (-128 до 127).

Тип int . Занимает в памяти4 байта. Используется для представления целых чисел в диапазоне -2 147 483 648 до 2 147 483 647.

Тип float. Занимает в памяти 4 байта. Используется для представления чисел с плавающей точкой. от 3.4×10 -38 до 3.4×10 38 . Точность вычислений до 7 знаков после запятой.

Тип double. Занимает в памяти 8 байт. Используется для представления чисел с плавающей точкой. от 1.7×10 -308 до 1.7×10 308 . Точность вычислений до 15 знаков после запятой.

Тип void – пустой тип. Используется для описания функций.

Тип bool – логический тип. Может принимать 2 значения true или false.

Основные операторы Си

Оператор - это лексема, которая переключает некоторые вычисления, когда применяется к переменной или к другому объекту в выражении. Язык Си представляет большой набор операторов арифметических и логических операторов.

Таблица 4.1. Унарные операторы языка Си

Таблица 4.2. Бинарные операторы языка Си

Код оператора Название Результат операции
Аддитивные операторы
+ бинарный плюс вычисление суммы, например: int x = 2,y = 1,z; z = x+y;
- бинарный минус вычисление разности, например: int x = 2,y = 1,z; z = x-y;
Мультипликативные операторы
* умножение вычисление произведения, например: int x = 2,y = 1,z; z = x*y;
/ деление вычисление частного, например: int x = 12,y = 2,z; z = x/y;
% остаток вычисление остатка от деления, например: int x = 12,y = 7,z; z = x%y;
Логические операторы
&& логическое AND (И) проверка условий, связанных логическим И
|| логическое OR (ИЛИ) проверка условий, связанных логическим ИЛИ
Операторы присваивания
= присваивание присвоить переменной заданное значение или значение другой переменной
Операторы отношения
< меньше чем x
> больше чем x>y, х больше y
<= меньше чем или равно x<=y, x меньше или равно y
>= больше чем или равно x>=y, x больше или равно y
Операторы эквивалентности
= = равно x= =y, х равно y
!= не равно x!=y, x не равно y
, оператор перечисления выполнить разделенные оператором действия слева направо, например y+=5,x-=4,y+=x;

Библиотека математических функций math.h

Си поддерживает множество математических функций, прототипы которых описаны в файле math.h. Познакомимся с некоторыми из них.

abs(int x) возвращает модуль целого числа x . acos(double x) возвращает арккосинус числа x в радианах. asin(double x) возвращает арксинус числа x в радианах. atan(double x) возвращает арктангенс числа x в радианах. atof(char *s, double x) преобразует строку s в вещественное число x. cos(double x) возвращает косинус числа x (x задано в радианах) ceil(double x) округляет число x в большую сторону exp(double x) возвращает экспоненту числа x. fabs(double x) возвращает модуль вещественного числа x. sin(double x) возвращает синус числа x (x задано в радианах). sqrt(double x) возвращает квадрат числа x. tan(double x) возвращает тангенс числа x (x задано в радианах). floor(double x) округляет число x в меньшую сторону fmod(double x, double y) возвращает остаток от деления числа x на число y. hipot(double x, double y) возвращает квадрат суммы числа x и числа y. log(double x) возвращает натуральный логарифм числа x. log10(double x) возвращает десятичный логарифм числа x. modf(double x,double& y) возвращает дробную часть числа x, по адресу y записывается целая часть исходного числа x. pow(double x, double y) возвращает x в степени y.

Для использования всех вышеперечисленных функций подключите библиотеку