Программа печати предельных констант.

#include <stdio.h>

#include <limits.h>

void main()

{

printf("\nCHAR_BIT=%d", CHAR_BIT);

printf("\nSCHAR_MIN=%d\t\tSCHAR_MAX=%d",

SCHAR_MIN, SCHAR_MAX);

printf("\nUCHAR_MAX=%d", UCHAR_MAX);

printf("\nINT_MIN=%d\t\tINT_MAX=%d", INT_MIN, INT_MAX);

printf("\nLONG_MIN=%ld\tLONG_MAX=%ld", LONG_MIN, LONG_MAX);

}

Результат выполнения программы:

CHAR_BIT=8

SCHAR_MIN=-128 SCHAR_MAX=127

UNCHAR_MAX=255

INT_MIN=-2147483648 INT_MAX=2147483647

LONG_MIN= -2147483648 LONG_MAX=2147483647

Для вывода вещественных значений с мантиссой и порядком в форматной строке функции printf() нужно использовать спецификацию %e. Следующая программа выводит на экран значения некоторых из предельных вещественных констант:

#include <stdio.h>

#include <float.h>

void main()

{

printf("\nFLT_EPSILON=%e", FLT_EPSILON);

printf("\nDBL_EPSILON=%e", DBL_EPSILON);

printf("\nFLT_MIN=%e\tFLT_MAX=%e", FLT_MIN, FLT_MAX);

printf("\n \t \t \tDBL_MAX=%E", DBL_MAX);

printf("\nFLT_MANT_DIG=%d", FLT_MANT_DIG);

printf("\nDBL_MANT_DIG=%d", DBL_MANT_DIG);

}

Результаты выполнения программы:

FLT_EPSILON=1.192093e-07

DBL_EPSILON=2.20446e-16

FLT_MIN=1.175494e-38 FLT_MAX=3.402823e+38

DBL_MAX=1.797693e+308

FLT_MANT_DIG=24

DBL_MANT_DIG=53

FLT_MANT_DIG и DBL_MANT_DIG – максимальные значения типов float и double, сумма каждого из которых со значением 1.0 не отличается от 1.0. Предельные константы называют «машинными нулями» относительно вещественного значения 1.0.

Применимость вещественных данных.Допустим, необходимо вычислить выражение Программа печати предельных констант. - student2.ru .

#include <stdio.h>

void main()

{

float a,b,c,t1,t2,t3;

a=95.0;

b=0.02;

t1=(a+b)*(a+b);

t2=-2.0*a*b-a*a;

t3=b*b;

c=(t1+t2)/t3;

printf("\nc=%f\n", c);

}

Результат выполнения программы:

с=2.441406

Если а=100.0, то результат будет еще хуже 0.000000

Если заменить float на double, то значение выражения будет вычислено точно 1.000000

Приведенный пример и общие положения вычислительной математики заставляют существенно ограничить применение переменных типа float. Тип float можно выбирать для представления исходных данных или окончательных результатов, получаемых в программе. Однако применение данных типа float в промежуточных вычислениях (особенно в итерационных алгоритмах) следует ограничить и всегда использовать double либо long double.

6.2. Элементарные средства программирования

Деление операторов языка Си на группы. Операторы управления работой программы называют управляющими конструкциями программы. К ним относятся:

§ составные операторы;

§ операторы выбора;

§ операторы циклов;

§ операторы перехода.

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

1.2.1. Условный оператор

Условный оператор имеет сокращенную форму:

if (выражение_условие) оператор;

где в качестве выражение_условие могут использоваться арифметическое выражение, отношение и логическое выражение. Оператор, включенный в условный, выполняется только в случае истинности (т.е. при ненулевом значении) выражение_условие.

Программа печати предельных констант. - student2.ru

Рис. 16. Синтаксическая диаграмма условного оператора.

Пример:

if (x < 0 && x > -11) x=-x;

Кроме сокращенной формы, имеется еще и полная форма условного оператора:

if (выражение_условие)

оператор_1;

Else

оператор_2;

Пример использования условного оператора.

Составить программу вычисления значения функции f(x,y) для заданных значений a, b, c и произвольного x с автоматическим выбором необходимой формулы:

Программа печати предельных констант. - student2.ru

где Программа печати предельных констант. - student2.ru .

Наши рекомендации