Арифметические выражения.



Арифметические выражения, стоящие в правой части оператора присваивания, могут содержать:

  • целые и вещественные числа
  • знаки арифметических действий
  • + — сложение, вычитание
    * / умножение, деление
    % остаток от деления

  • вызовы стандартных функций
  • abs (i) модуль целого числа i
    fabs (x) модуль вещественного числа x
    sqrt (x) квадратный корень из вещественного числа x
    pow (x, y) вычисляет x в степени y

  • круглые скобки для изменения порядка действий

Особенности арифметических операций

При делении целого числа на целое остаток от деления отбрасывается, таким образом, 7/4 будет равно 1. Если же надо получить вещественное число и не отбрасывать остаток, делимое или делитель надо преобразовать к вещественной форме.

int i, n;
float x;
i = 7;
x = i / 4;   // x=1, делится целое на целое
x = i / 4.;  // x=1.75, делится целое на дробное
x =(float) i / 4;  // x=1.75, делится дробное на целое
n = 7. / 4.;  // n=1, результат записывается в целую переменную
  

Наибольшие сложности из всех действий вызывает взятие остатка. Если надо вычислить остаток от деления переменной a на переменную b и результат записать в переменную ostatok, то оператор присваивания выглядит так:

  ostatok = a % b;
  

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

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

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

Например:

          2   1     5   4      3     8     6   7
  x = ( a + 5 * b ) * fabs ( c + d ) — ( 3 * b — c );
  

В программировании часто используются несколько странные операторы присваивания.

  i = i + 1;
  

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

Инкремент и декремент

В языке Си определены специальные операторы быстрого увеличения на единицу (инкремент)

   i++;
   ++i;
  

и быстрого уменьшения на единицу (декремент)

   i--; 
   --i;
  

Сокращенная запись арифметических выражений

Если мы хотим изменить значение какой-то переменной, то удобно использовать сокращенную запись арифметических выражений:

Сокращенная запись Полная запись
    x += a;         x = x + a;
    x -= a;         x = x - a;
    x *= a;         x = x * a;
    x /= a;         x = x / a;
    x %= a;         x = x % a;
  

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Chinese (Traditional)EnglishJapaneseRussianUkrainian

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: