Файл: Pobegaylo_A._C_Cplus_dlya_studenta.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 13.12.2020

Просмотров: 4156

Скачиваний: 28

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

Глава 27. Математические функции <math.h> 

321 

  x = log(y); 
  printf("ln y = %f\n", x); 
 
  return 0; 

27.4. Гиперболические функции 

В стандартной библиотеке определены гиперболические функции 

cosh

sinh

 и 

tanh

, которые имеют следующие прототипы: 

  double cosh(double x);  /* возвращает cosh x */ 
  double sinh(double x);  /* возвращает sinh x */ 
  double tanh(double x);  /* возвращает tanh x */ 

27.5. Степень и квадратный корень 

В  стандартной  библиотеке  определена  степенная  функция 

pow

которая имеет следующий прототип: 

  double pow(double x, double y);  /* возвращает x^y */ 

Также  в  стандартной  библиотеке  определена  функция 

sqrt

  для 

нахождения  квадратного корня  из  числа,  которая имеет  следую-
щий прототип: 

  double sqrt(double x);  /* возвращает квадр. корень из x */ 

В  листинге  27.3  приведен  пример  использования  функций 

pow

 

и 

sqrt

Листинг 27.3. Вычисление степени и квадратного корня числа 

#include <stdio.h> 
#include <math.h> 
int main() 

  double d, r; 
 
  d = pow(2.2, 2); 
  printf("d = %lf\n", d);  /* d = 4.84 */ 


background image

Часть III. Стандартная библиотека языка программирования C 

322 

  r = sqrt(d); 
  printf("r = %lf\n", r);  /* r = 2.2 */ 
 
  return 0; 

27.6. Экспонента и мантисса 

Для  определения  мантиссы  и  экспоненты  числа  с  плавающей 
точкой предназначена функция 

frexp

, которая имеет следующий 

прототип: 

  double frexp(double x, int *p); 

Эта  функция  находит  такие  мантиссу 

m

  и  экспоненту 

e

  числа 

x

что: 

x = m * 2^e

 

и, кроме того, мантисса находится в диапазоне: 

0.5   m < 1.0;

 

После этого функция 

frexp

 возвращает мантиссу 

m

, а по адресу 

p

 

записывает экспоненту 

е

Для  вычисления  числа  с  плавающей  точкой  по  его  мантиссе  и 
экспоненте  предназначена  функция 

ldexp

,  которая  имеет  сле-

дующий прототип: 

  double ldexp(double x, int e);   /* возвращает x*2^e */ 

В листинге 27.4 приведен пример использования функций 

frexp

 и 

ldexp

Листинг 27.4. Работа с мантиссой и экспонентой 

#include <stdio.h> 
#include <math.h> 
int main() 

  int n; 
  double d, e; 
  d = ldexp(3, 2); 


background image

Глава 27. Математические функции <math.h> 

323 

  printf("d = %lf\n", d);  /* d = 12 */ 
  e = frexp(d, &n); 
  printf("m = %d, e = %lf\n", n, e);  /* m = 4, e = 0.75 */ 
 
  return 0; 

27.7. Целая и дробная часть числа  

с плавающей точкой 

Для определения целой и дробной части числа с плавающей точ-
кой предназначена функция 

modf

, которая имеет следующий про-

тотип: 

  double modf(double x, int *a); 

Функция возвращает дробную часть числа 

x

, а по адресу 

a

 запи-

сывает целую часть этого числа. Например: 

  double n, d; 
  d = modf(2.5, &n);  /* n = 2.0, d = 0.5 */ 

27.8. Целые границы числа  

с плавающей точкой 

Для определения наименьшего целого числа, которое больше за-
данного числа с плавающей точкой, используется функция 

ceil

которая имеет следующий прототип: 

  double ceil(double x); 

Для  нахождения  наибольшего  целого  числа, которое  меньше  за-
данного числа с плавающей точкой, используется функция 

floor

которая имеет следующий прототип: 

  double floor(double x); 

Например: 

  double c, f; 
  c = ceil(2.5);   /* c= 3.0 */ 
  f = floor(2.5);  /* f = 2.0 */ 


background image

Часть III. Стандартная библиотека языка программирования C 

324 

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

Для нахождения остатка от деления двух чисел с плавающей точ-
кой предназначена функция 

fmod

, которая имеет следующий про-

тотип: 

  double fmod(double x, double y); 

Функция возвращает остаток от деления 

x

 на 

y

. Например: 

  double r; 
  r = fmod(3.5, 1.1);  /* r = 0.2 */ 

27.10. Абсолютное значение числа 

Для определения абсолютного значения числа с плавающей точ-
кой предназначена функция 

fabs

, которая имеет следующий про-

тотип: 

  double fabs(double x); 

Например: 

  double m; 
  m = fabs(-3.5);  /* m = 3.5 */ 

Заметим, что в стандартной библиотеке языка программирования 
С++  также  перегружена функция 

abs

,  которая  находит  абсолют-

ное  значение  числа  с  плавающей  точкой  для  значения  любого 
типа с плавающей точкой. 

 


background image

  

 
 

Г Л А В А  

28 

 
 
 

Функции классификации 

символов <ctype.h> 

28.1. Определение типа символа 

Множество символов, каждый из которых удовлетворяет некото-
рому  условию,  называется  классом  символов.  Условие,  которое 
определяет класс символов, называется правилом классификации 
символов.  Определение  класса  символов,  используя  заданное 
правило  классификации,  называется  классификацией  символов.  
В стандартной библиотеке языка программирования  C для клас-
сификации символов определены следующие функции: 

  int isalnum(int c);  /* буква или цифра? */ 
  int isalpha(int c);  /* буква? */ 
  int isupper(int c);  /* прописная буква? */ 
  int islower(int c);  /* строчная буква? */ 
  int iscntrl(int c);  /* управляющий символ? */ 
  int isdigit(int c);  /* десятичная цифра? */ 
  int isxdigit(int c); /* шестнадцатеричная цифра? */ 
  int isspace(int c);  /* пробельный символ? */ 
  int ispunct(int c);  /* знак препинания? */ 
  int isprint(int c);  /* печатный символ? */ 
  int isgraph(int c);  /* буква, цифра, знак препинания? */ 

Единственный  параметр 

c

  каждой  из  этих  функций  должен  со-

держать символ, тип которого проверяется. Все эти функции воз-
вращают ненулевое значение — если условие проверки выполня-
ется, а в противном случае они возвращают нулевое значение.  

  

 


Смотрите также файлы