Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015

Здесь есть возможность читать онлайн «Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Год выпуска: 0101, Издательство: Вильямс, Жанр: Старинная литература, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Язык программирования C. Лекции и упражнения (6-е изд.) 2015: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Язык программирования C. Лекции и упражнения (6-е изд.) 2015»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Язык программирования C. Лекции и упражнения (6-е изд.) 2015 — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Язык программирования C. Лекции и упражнения (6-е изд.) 2015», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

#pragma STDC FENV_ACCESS ON

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

#pragma STDC FENV_ACCESS OFF

Можно также записать следующую прагму:

#pragma STDC FENV_ACCESS DEFAULT

Это восстановит стандартное состояние компилятора, которое зависит от реализации.

908 Приложение Б

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

прагма stdc fp_contract

Некоторые процессоры с плавающей запятой могут объединять выражения с плавающей запятой, содержащие множество операций, в единую операцию. Например, процессор может быть в состоянии выполнить оценку следующего выражения за один шаг:

х*у - Z

Это увеличивает скорость вычислений, но может привести к снижению их предсказуемости. Прагма STDC FP CONTRACT позволяет включать и отключать данное средство. Стандартное состояние зависит от реализации.

Чтобы отключить это средство сжатия для определенного вычисления, а затем включить его снова, можно поступить так:

#pragma STDC FP_CONTRACT OFF

val = x * у - z;

#pragma STDC FP_CONTRACT ON

дополнения библиотеки math.h

В математической библиотеке С90 функции по большей части объявлены с аргументами double и типом возвращаемого значения double:

double sin(double);

double sqrt(double);

Библиотеки C99 и СП предоставляют версии float и long double для всех этих функций. Имена такие функций содержат суффиксы f и 1:

float sinf(float); /* версия float функции sin() */

long double sinlllong double); /* версия long double функции sin() */

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

В С99 также добавлено несколько функций, часто используемых в научных, инженерных и математических вычислениях. Такие дополнения С99 продемонстрированы в табл. B.V.16, где перечислены версии double всех математических функций. Во многих случаях эти функции возвращают значения, которые могут быть вычислены существующими функциями, однако новые функции делают это быстрее или с большей точностью. Например, loglp(x) представляет то же значение, что и log (1 +х),но в loglp(x) применяется другой алгоритм, который обеспечивает более точный результат при малых значениях х. Поэтому вы должны использовать функцию log() для вычислений в большинстве случаев, a loglp (х) — в случаях с малыми значениями х, когда важна высокая точность.

В дополнение к этим функциям в математической библиотеке определено несколько констант и функций, связанных с классификацией чисел и их округлением. Например, значение может быть классифицировано как бесконечное, не число (NaN), нормальное, субнормальное и истинный ноль. (NaN — это специальное значение, указывающее на то, что значение не является числом; например, asin (2.0) возвращает NaN,

Справочные материалы 909

т.к. asin() может принимать аргументы от -1 до 1. Субнормальным называется такое число, абсолютная величина которого меньше минимально допустимого значения, которое можно представить с максимальной точностью.) Существуют также специализированные функции сравнения, которые ведут себя иначе, чем стандартные операции отношений, когда один или более аргументов являются ненормальными значениями.

Схемы классификации С99 можно применять для обнаружения разного рода отклонений от нормы в вычислениях. Например, макрос isnormal() из math.h возвращает true, если его аргумент является нормальным числом. Ниже представлен пример кода, в котором эта функция используется для прекращения цикла, когда число становится субнормальным:

#include // для isnormal()

float num = 1.7e-19;

float numprev = num;

while (isnormal(num)) // пока num имеет полную точность float

{

numprev = num; num /= 13.7f;

}

Короче говоря, существует расширенная поддержка детализированного управления выполнением вычислений с плавающей запятой.

поддержка комплексных чисел

Комплексное число — это число, состоящее из действительной и мнимой частей. Действительная часть является обычным вещественным числом, которое может быть представлено типом с плавающей запятой. Мнимая часть представляет мнимое число. Мнимое число, в свою очередь, представляет собой величину, кратную квадратному корню из -1. В математике комплексные числа часто записываются в форме А .2 + 2.01; где i символически представляет квадратный корень из -1.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Язык программирования C. Лекции и упражнения (6-е изд.) 2015»

Представляем Вашему вниманию похожие книги на «Язык программирования C. Лекции и упражнения (6-е изд.) 2015» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Язык программирования C. Лекции и упражнения (6-е изд.) 2015»

Обсуждение, отзывы о книге «Язык программирования C. Лекции и упражнения (6-е изд.) 2015» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x