Читайте также:
|
|
Математические функции (math.h)
Функции, объявленные в math.h, позволяют проделывать разнообразные арифметические, алгебраические и тригонометрические операции.
Использование математических функций будет понятным и простым для тех, кто знаком с соответствующими понятиями алгебры и тригонометрии. Многие из этих функций уже использовались ранее. При использовании тригонометрических функций следует помнить, что значения углов всегда выражены в радианах. Некоторые Математические функции приведены в таблице.
Функция | Результат |
int abs(int x) | Абсолютное значение |
double acos(double x) | Арккосинус |
double asin(double x) | Арксинус |
double atan(double x) | Арктангенс |
double atan2(doubte y,double x) | Арктангенс двух чисел |
double ceil(double x) | Округление до целого с избытком |
doubte cos(double x) | Косинус |
double cosh(double x) | Гиперболический косинус |
int _dieeetomsbin(double *,double *) | Преобразование из формата IEEE в формат Microsoft |
int _dmsbintoieee(double *,double *) | Преобразование из формата Microsoft в формат IEEE |
double exp(double x) | Экспонента |
Программисты, которым требуются возможности комплексной арифметики, должны пользоваться объявленными в math.h структурой struct complex и функцией _cabs(). Вот единственная структура для представления комплексного числа, используемая в Visual C++:
struct complex (double x;double у;};
Эта структура используется функцией _cabs(), которая возвращает модуль комплексного числа.
6.1.1. Построение таблицы значений тригонометрических функций
Поскольку мы и раньше широко использовали математические функции, единственным примером в этом разделе будет приложение, которое выдаст таблицу значений синуса, косинуса и тангенса для углов от нуля до 45 градусов.
В этом приложении используются возможности форматирования C++. Посмотрите, как в приведенном тексте производится вывод на экран.
//19MATH.CPP
//Пример использования функций
#include <iostream.h>
#include <iomanip.h>
#include <math.h>
#define PI 3.1415926539
main()
{
int i;
double x,y,z,ang;
for(i=0;i<=45;i++)
{
ang=PI*i/180;
x=sin(ang);
y=cos(ang);
z=tan(ang);
cout << setiosflags(ios::left) << setw(8)
<< setiosflags(ios::fixed) << setprecision(6);
cout << i << "\t" << x << "\t" << y << "\t" << z << "\n";
}
return (0);
}
44. Функции для работы с датой и временем. Структуры для представления даты/времени и параметры функций. Работа с функциями localtime() и asctlme(). Работа с функциями gmtime() и asctime(). Работа с функцией strftime(). Работа с функцией ctime(). Функция задержки.
Функции для работы с датой и временем
В следующей таблице приведены некоторые функции, объявленные в time.h.
Функция | Действие |
asctime() | Преобразует дату и время в строку ASCII, используя структуру tm |
ctime() | Преобразует дату и время в строку |
difftime() | Вычисляет интервал времени |
gmtime() | Приводит дату и время к времени по Гринвичу(GМТ), используя структуру tm |
localtime() | Преобразует дату и время в структуру tm |
strftime() | Форматирует дату и время для вывода |
time() | Возвращает текущее время (системное) |
tzset() | Устанавливает значение часового пояса в переменную окружения TZ |
Эти функции обеспечивают различные способы работы с датой и временем. В следующем разделе рассматривается порядок вызова каждой из функций.
6.1.1. Структуры для представления даты/времени и параметры функций
Многие из функций, перечисленных в предыдущем разделе, используют структуру tm, описанную в файле time.h:
struct tm {
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;};
Ниже приведены параметры вызова функций:
char *asctime(const struct tm *tblock) | Преобразует структуру в строку из 26 символов, например Wed Oct 14 10:18:20 1992. |
char "ctime(const time_t *time) | Преобразует значение времени, на которое указывает time, в 26-символьную строку (см.asctime()) |
double difftime(time_t time2, time_t time1) | Вычисляет интервал между моментами time 1 и time2 и возвращает число с плавающей точкой двойной точности |
struct tm *gmtime(const time_t *timer) | Принимает указатель на значение, полученное отtime(), и возвращает указатель на структуру с информацией о времени по Гринвичу. |
struct tm *localtime(const time_t *timer) | Принимает указатель на значение, полученное отtime() и возвращает указатель на структуру с информацией о местном времени |
time_t time(time_t *timer) | Возвращает время в секундах, прошедшее с 00:00:00 1 января 1970 по Гринвичу |
6.1.1.1. Работа с функциями localtime() и asctlme()
В прикладной программе зачастую приходится использовать значение текущей даты и времени. Следующая программа работает с этими значениями посредством функций localtime() и asctime().
#include <time.h>
#include <stdio.h>
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);}
Эта программа отображает дату и время в виде
6.1.1.2. Работа с функциями gmtime() и asctime()
Есть и другие функции для получения информации о дате и времени. Данный пример похож на предыдущий, но в нем используется функция gmtime().
#include <time.h>
#include <stdio.h>
main()
{ struct tm *date_time;
time_t timer;
time(&timer);
date_time=gmtime(&timer);
printf("%.19s\n",asctime(date_time));
return (0);}
6.1.1.3. Работа с функцией ctime()
Следующая программа на C++ иллюстрирует способ вызова функции ctime(). Программа показывает, насколько просто получать информацию о системной дате и времени.
//19CTIME.CPP
//Пример использования функций
//создание задержки
#include <time.h>
#include <iostream.h>
time_t longtime;
main()
{
time(&longtime);
cout << "The time and date are " <<
ctime(&longtime) << "\n";
return (0);
}
Информация, выдаваемая на экран, будет представлена в следующем виде:
The time and date are Tue Feb 22 14:23:27 1995
Дата добавления: 2015-12-08; просмотров: 106 | Нарушение авторских прав