13. Основные константы и математические функции. Команда форматированного вывода строки.
M_PI - значение числа пи
M_SQRT2 – значение квадратного корня из 2
Функция |
Синтаксис |
Описание |
Файл |
abs |
int abs(int x) |
абсолютное значение |
stdlib.h |
ceil |
double ceil(double x) |
округление вверх: наи- |
math.h |
div |
div_t div( |
целочисленное деление |
math.h |
exp |
double exp(double x) |
экспонента |
math.h |
floor |
double floor(double x) |
округление вниз: наи- |
math.h |
fmod |
double fmod(double x, double y) |
остаток от деления x / y |
math.h |
log |
double log(double x) |
натуральный логарифм |
math.h |
log10 |
double log10(double x) |
десятичный логарифм |
math.h |
Log10 |
Extended Log10(Extended X) |
десятичный логарифм |
Math.hpp |
log10l |
long double log10l( |
десятичный логарифм |
math.h |
Log2 |
Extended Log2(Extended X) |
логарифм по основа- |
Math.hpp |
logl |
long double logl(long double x) |
натуральный логарифм |
math.h |
LogN |
Extended LogN( |
логарифм X по основа- |
Math.hpp |
pow |
double pow(double x, double y) |
X^Y |
math.h |
sqrt |
double sqrt(double x) |
корень квадратный X |
math.h |
acos |
double acos(double x) |
арккосинус |
math.h |
asin |
double asin(double x) |
арксинус |
math.h |
atan |
double atan(double x) |
арктангенс |
math.h |
cos |
double cos(double x) |
косинус |
math.h |
cosh |
double cosh(double x) |
косинус |
math.h |
Cotan |
Extended Cotan(Extended X) |
котангенс |
Math.hpp |
sin |
double sin(double x) |
синус |
math.h |
sinh |
double sinh(double x) |
синус |
math.h |
tan |
double tan(double x) |
тангенс |
math.h |
tanh |
double tanh(double x) |
тангенс |
math.h |
Для использования описанных в этих файлах функций необходимо вручную вводить директивы
#include <math.h>
#include <Math.hpp>
Форматированный вывод sprintf
Команда sprint используется для записи форматированной строки в указанную строковую переменную.
Для работы необходимо подключить модуль: <stdio.h>
Формат записи команды имеет вид:
sprintf(строковая_переменная, строка_форматирования, арг_1, арг_2 ... );
строка_форматирования состоит из заключенных в двойные кавычки символов и спецификаторов формата. В спецификатор формата можно включать модификатор точности и символы выравнивания.
Спецификатор формата имеет следующую структуру:
%[flags][width][.precision][F|N|h|l|L]type
flags – Флаги выравнивания, управления печатью знака числа, управления пробелами, десятичной точкой, основанием печати (восьмеричная, шестнадцатеричная)
width – Ширина поля — минимальное число выводимых символов
precision - Спецификатор точности — максимальное количество печатаемых символов или минимальное количество разрядов печатаемого целого.
F|N|h|l|L - Модификаторы, изменяющие размер аргумента по умолчанию (N - ближний указатель (near), F - дальний указатель (far), h - short int, l – long,L - long double)
Основные спецификаторы формата (возможные значения type):
с – символ
d – десятичное целое со знаком
i – десятичное целое со знаком
e – экспоненциальное представление со строчной буквой e
E – экспоненциальное представление с заглавной буквой Е
f – значение с плавающей точкой
g – более короткий из двух форматов %e или %f
G – более короткий из двух форматов %E или %F
o – восьмеричное число без знака
s – срока символов
u – десятичное целое без знака
x – строчное шестнадцатеричное число без знака
X – заглавное шестнадцатеричное число без знака
% - вывод символа %
Возможные значения flags:
- - выравнивание влево, оставшееся поле справа заполняется пробела-
ми. Если этот флаг не задан, то производится выравнивание вправо, а оставшееся поле слева заполняется нулями или пробелами.
+ - обязательно перед числом указывается знак плюс (+) или минус (-)
пробел - Если значение не отрицательное, то печать начинается с пробела вместо знака плюс (+). Для отрицательного значения знак минус (-) печатается. Если наряду с этим флагом задан флаг +, то он должен быть указан до флага пробела.
# - в форматах o, x, X добавляется префикс 0, 0x, 0X соответственно. В форматах e, E, f, g, G во всех случаях выводится десятичная точка. Кроме того в форматах g, G не подавляется вывод незначащих нулей.
0 - дополнять поле до ширины, указанной в поле ширина управляющей последовательности, символом 0.
В строке форматирования так же допускается использование управляющих символов. Например: \n – перевод строки, \t – горизонтальная табуляция.
Пример:
sprintf(r1,"%c Сергей мне \t%4.2f\t %s",'Я',2.5,"года");
r1 - строковая переменная которая получает форматированную строку;
%с – выводиться символ ‘Я’;
Сергей мне – строка выводится как есть;
\t – выполняется табуляция;
%4.2f – вывод числа 2.5 с плавающей точкой под которое выделяются 4 позиции из которых 2 после точки;
\t – выполняется табуляция;
%s – вывод символьной строки “года”
Переменная r1 получит выражение:
“Я Сергей мне 2.50 года”