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

Математические функции (math.h). Построение таблицы значений тригонометрических функций.

Читайте также:
  1. II Цель, задачи, функции и принципы портфолио.
  2. II. Функции школьной формы
  3. II.Синдром дисфункции синусового узла (СССУ) I 49.5
  4. Lt;question>Укажите функции научного стиля?
  5. А) Основные психофизические функции
  6. Б. При гиперфункции уровня
  7. Биоактивная сыворотка, с таурином, восстанавливающая жизненно важные функции кожи

Функции, объявленные в math.h, позволяют проделывать разнообразные арифметические, алгебраические и тригонометрические операции.

Функция Результат
int abs(int x) Абсолютное значение
double pow(double x, double y) x в степени у
double sine(double x) Синус
double sqrt(double x) Квадратный корень
double tan(double x) Тангенс

Использование математических функций будет понятным и простым для тех, кто знаком с соответствующими понятиями алгебры и тригонометрии. Многие из этих функций уже использовались ранее. При использовании тригонометрических функций следует помнить, что значения углов всегда выражены в радианах. Некоторые математические функции приведены в таблице.

sin(x) синус x

cos(x) косинус x

tan(x) тангенс x

asin(x) арксинус x в диапазоне [–p/2, p/2], x О [–1, 1]

acos(x) арккосинус x в диапазоне [0, p], x О [–1, 1]

atan(x) арктангенс x в диапазоне [–p/2, p/2]

atan2(y,x) арктангенс y/x в диапазоне [–p, p]

sinh(x) гиперболический синус x

cosh(x) гиперболический косинус x

tanh(x) гиперболический тангенс x

exp(x) экспоненциальная функция ex

log(x) натуральный логарифм ln(x), x > 0

log10(x) десятичный логарифм lg(x), x > 0

pow(x,y) xy, ошибка области, если x = 0 или y <= 0 или x < 0 и y — не целое

sqrt(x) Цx, x >= 0

ceil(x) наименьшее целое в виде double, которое не меньше x

floor(x) наибольшее целое в виде double, которое не больше x

fabs(x) абсолютное значение |x|

ldexp(x, n) x * 2n

frexp(x, int *еxр) разбивает x на два сомножителя, первый из которых — нормализованная дробь в интервале [1/2, 1), которая возвращается, а второй — степень двойки, эта степень запоминается в *exp. Если x — нуль, то обе части результата равны нулю

modf(x,double *ip) разбивает x на целую и дробную части, обе имеют тот же знак, что и x. Целая часть запоминается в *ip, дробная часть выдается как результат

fmod(x, y) остаток от деления x на y в виде числа с плавающей точкой. Знак результата совпадает со знаком x. Если y равен нулю, результат зависит от реализации

Заголовок функции Назначение Пример вызова
int abs(int x); long labs(long x) double fabs(double x) Модуль (значение без знака) для целого, длинного и вещественного аргументов   int a; long b; float c; float d = abs(a)*labs(b)/fabs(c);
double ceil(double x) Наименьшее целое, не меньшее x, т.е. фактически округление до целого вверх.   x = ceil(1.7/0.5); // x=4
double floor(double x) Наибольшее целое, не большее х, т.е. округление до целого вниз   x = floor(1.7/0.5); // x=3
double sqrt(double x) Квадратный корень из аргумента. Если аргумент окажется отрицательным, программа выдаст ошибку "Divide error" (ошибка деления).   float d=sqrt(S)*sqrt(2); // диагональ квадрата по площади
double pow(double x, double y) double pow10(double x) Функция pow возводит x в степень y, при этом, как видно, и основание, и показатель степени вещественные. pow10 возводит 10 в степень х.   x = pow(1.3, -2.5); // x~=0.519
double cos(double x) double sin(double x) double tan(double x) Тригонометрические функции косинус, синус и тангенс. Угол х для всех этих функций задается в радианах. Для перевода радиан в более привычные пользователю градусы и обратно используются формулы:   x = 180*n/M_PI; // радианы в градусы n = M_PI*x/180; // градусы в радианы где M_PI - константа, определенная в библиотеке math - число Пи типа double.   // a, b - катеты; с - гипотенуза alpha *= M_PI/180; // преобразуем в радианы a = c*sin(alpha); b = c*cos(alpha);
double acos(double x) double asin(double x) double atan(double x) double atan2(double x, double y) Обратные тригонометрические функции арккосинус, арксинус, арктангенс числа x. Результат возвращается в радианах. При этом функция atan2 возвращает арктангенс частного y/x.   alpha = asin(a/c); // угол по катету и гипотенузе

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

#include <iostream>

#include <math.h>

using namespace std;

 

void main()

{

float i,a,b;

setlocale(LC_ALL, "Russian");

cout<<"Введите диапазон чисел от: ";

cin>>a;

cout<<"и до: ";

cin>>b;

 

for(i=a;i<b;i++)

{

cout.width(8); //задаем ширину поля

cout.setf(ios:: left);//выравниваем по левому краю

cout.fill ('0'); // символ заполнения

cout<<"число: "<<i<<"\t";//выравниваем по левому краю

cout.width(18); //задаем ширину поля

cout.setf(ios:: left);//выравниваем по левому краю

cout.fill ('0'); // символ заполнения

cout<<"квадрат числа: "<<i*i<<"\t";

cout.width(28); //задаем ширину поля

cout.setf(ios:: left);//выравниваем по левому краю

cout.fill ('0'); // символ заполнения

cout.precision(4); //задаём точность

cout<<"квадратный корень числа: "<<sqrt(i)<<endl;

}

}

 

55. Функции для работы с датой и временем. Структуры для представления даты/времени и параметры функций. Работа с функциями localtime() и asctlme(). Работа с функциями gmtime() и asctime(). Работа с функцией strftime(). Работа с функцией ctime().

В следующей таблице приведены некоторые функции, объявленные в time.h.

 

Функция Действие
ctime() char * ctime(const time_t * timeptr); Преобразует дату и время в строку Функция преобразует значение типа time_t в Си-строку, которая содержит дату и время в человеко-понятном формате. Возвращаемая строка имеет следующий формат: Www Ммм дд чч: мм: сс гггг В конце строки стоят символы новой строки \n и завершающий нулевой символ \0. Эта функция эквивалентна asctime, единственное их отличие — передаваемый параметр.
difftime() double difftime(time_t timeend, time_t timestart);   Вычисляет интервал времени Вычисляет разность в секундах между timestart и timeend в секундах типа double.
localtime() struct tm * localtime(const time_t * timeptr); Преобразует дату и время в структуру tm, содержащую информацию о текущем времени. Функция преобразовывает текущее значение времени, передаваемое как аргумент, через указатель timeptr на time_t в структуру tm. Время указанное в timeptr используется для заполнения структуры tm значениями текущей даты и времени.
asctime() char * asctime(const struct tm * tmptr); Функция преобразует содержимое структуры tm (календарное время) в Си-строку, которая содержит дату и время в понятной для человека форме. Возвращаемая строка имеет следующий формат: Ннн Ммм дд чч: мм: сс гггг, где:
gmtime() struct tm * gmtime(const time_t * timeptr); Функция принимает значение времени в качестве аргумента через указатель timeptr на time_t, чтобы заполнить элемент-члены структуры tm, дату и время в формате GMT. Указатель на заполненную структуру tm информацией о времени. Структура tm статическая и предоставляется функциям gmtime и localtime.
strftime() size_t strftime(char * stringptr, size_t maxnum, const char * strformat, const struct tm * timeptr); Форматирует дату и время для вывода Из структуры tm извлекаются необходимые значения даты и времени и помещаются в строку strformat, где и подвергаются форматированию с помощью спецификаторов формата. Предварительно отформатированное содержимое строки strformat копируется в строку stringptr, размер копируемой строки ограничивается по количеству символов в параметре maxnum. Если размер копируемой Cи-строки меньше или равен значению в maxnum, включая завершающий нулевой символ, то функция вернет общее количество копируемых символов (не учитывая завершающий нуль-символ). В противном случае возвращается ноль и содержимое строки не определено.
time() time_t time(time_t * timeptr); Возвращает текущее время (системное) Функция возвращает текущее календарное значение времени в секундах. Если аргумент не является нулевым указателем, ей передается значение времени типа time_t.

 

Многие из функций, перечисленных в предыдущем разделе, используют структуру tm, описанную в файле time.h. Структура tm содержит значения даты и времени, все значения хранятся в отдельных полях. Структура состоит из девяти полей типа int:

int tm_sec; // секунды

int tm_min; // минуты

int tm_hour; // часы

int tm_mday; // дни

int tm_mon; // месяца

int tm_year; // года

int tm_wday; // дни недели

int tm_yday; // дней в году

int tm_isdst; // флаг летнего времениВ прикладной программе зачастую приходится использовать значение текущей даты и времени. Следующая программа работает с этими значениями посредством функций localtime() и asctime().

//19TIME.CPP

//Эта программа отображает текущую дату и время

#include <iomanip>

#include <time.h>

using namespace std;

struct tm *date_time;

time_t timer;

main()

{

time(&timer);

date_time = localtime(&timer);

printf("The present date and time is: %s\n", asctime(date_time));

return (0);

}

Эта программа отображает дату и время в виде:

The present date and time is: Fri Oct 14 13:16:20 2005

1. //пример использования функции difftime

 

#include <iostream>

#include <ctime>

 

int main ()

{

time_t start, end;

char name[80];

 

time (&start); // начальное время

std::cout << "Пожалуйста, введите свое имя: ";

std::cin.getline(name,80); // считать имя в name

time (&end); // конечное время

 

std::cout << "Здравствуйте " << name << std::endl;

std::cout << "Вам понадобилось "

<< difftime(end, start)

<< " секунд для ввода своего имени.n";

 

return 0;

}

Результат: Пожалуйста, введите свое имя: Чак Бартовски
Здравствуйте Чак Бартовски
Вам понадобилось 7 секунд для ввода своего имени.

 

2. //пример использования функции time

#include <iostream>

#include <ctime>

 

int main ()

{

time_t seconds;

 

seconds = time (NULL); // получить текущую дату, выраженную в секундах

std::cout << "Количество часов, прошедших с 1 января 1970 года = "

<< seconds/3600 << std::endl;

 

return 0;

}

Результат: Количество часов, прошедших с 1 января 1970 года = 374967


Дата добавления: 2015-09-03; просмотров: 241 | Нарушение авторских прав


Читайте в этой же книге: Специализация шаблонов класса | Схемы отображения шрифтов | Заметки | Недостатки шаблонов | Стандартная библиотека шаблонов (STL). Назначение и состав библиотеки. Контейнеры. Последовательные контейнеры. Векторы. | Структура библиотеки | Последовательные контейнеры поддерживают указанный пользователем порядок вставляемых элементов. | Абстракция | Классы map и multimap | Сортировка. |
<== предыдущая страница | следующая страница ==>
Специальный класс string ( в методичках Белодеда по-другому, поэтому это только для ознакомления и на всякий случай)| Интерфейс вызовов функций в Windows

mybiblioteka.su - 2015-2024 год. (0.015 сек.)