Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник 357.docx
Скачиваний:
27
Добавлен:
30.04.2022
Размер:
1.75 Mб
Скачать

4.2 Приемы, используемые при вычислениях

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

В выражениях в первую очередь вычисляются обращения к функциям и содержимое круглых скобок, затем – унарные операции изменения знака (-), затем - операции типа умножения (*, /, %) в порядке слева направо, затем – операции типа сложения (+ и -) в порядке слева направо.

Если двуместная операция выполняется над вещественными данными разных типов (float и double), то результат будет иметь тип, представляющий больший диапазон значений (double).На рис. 4.1 представлены арифметические преобразования, гарантирующие сохранение точности и неизменность численного значения.

Таблица 4.2

Приоритет арифметических операций

Приоритет

Операция

Порядок выполнения

1. первичные

вызов функции ()

слева направо

2.унарные 

изменение знака -

справа налево

инкремент ++

декремент --

преобразование типа (тип)

3.мульти-пликативные

умножение *

слева направо

деление /

остаток от деления %

4. аддитивные

сложение +

слева направо

вычитание -

5. присваивание 

= += -= и т.д.

справа налево

long

int

short

signed char

long double

double

float

Рис. 4.1. Корректное преобразование типов

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

res=5+(int) tan(y);

Особое внимание следует обращать на тип аргументов и возвращаемое значение стандартных функций. Так функция pow(..) имеет несколько сочетаний типов параметров, но ни одно не допускает использование в качестве первого аргумента целого типа (рис.4.2.).

Рис. 4.2 Прототипы pow

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

int k = 10, m = 3, n;

double c = –1.3, w = –10.23, s;

Одним выражением можно присвоить значения сразу нескольким переменным:

z=y=x=1;

или

z = (x = y) * 5;

В этом операторе переменной xсначала присваивается значение переменной y (приоритет скобок), далее вычисляется выражение x*5, и его результат присваивается переменной z.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]