Задачи по языку С

       

с изучения таблицы приоритетов операций




x = - 3 + 4 * 5 - 6 Начнем с изучения таблицы приоритетов операций приложения 1, двигаясь от высших к низшим.
x = (-3) + 4 * 5 - 6 Наивысший приоритет в выражении имеет унарная операция -. Мы будем пользоваться скобками, чтобы показать порядок применения операций к операндам.
x = (-3) + (4*5) - 6 Следующий по порядку приоритет имеет операция *.
x = ((-3)+(4*5)) - 6 Обе операции + и - имеют один и тот же приоритет. Порядок выполнения операций, имеющих один и тот же приоритет, задается в таблице приложения 1. Для операций + и - этот порядок слева направо, т.е. вначале выполняется +.
x = (((-3)+(4*5))-6) Затем выполняется операция -.
(x = (((-3)+(4*5))-6)) Наконец, в самом низу таблицы приоритетов операций находится операция =. Теперь, когда для каждой операции определены операнды, можно вычислять выражение.
(x = ((-3+(4*5))-6)) Для этого выражения вычисление начинается с самого внутреннего подвыражения.
(x = ((-3+20)-6)) Заменяем каждое подвыражение на его результат
(x = (17-6)) (x = 11) 11, целое Значение выражения, содержащего операцию присваивания, есть значение правой части выражения, приведенное к типу левой части присваивания.
О функции printf. printf - программа форматной печати, которая входит в библиотеку стандартных программ С. Первый аргумент printf - это строка, задающая формат печати. Она показывает, в каком виде следует печатать все остальные аргументы функции. Символ % начинает спецификацию формата для аргумента. В нашей программе спецификация %d указывает, что следующий аргумент надо интерпретировать и печатать как десятичное число. В последующих программах мы увидим примеры других спецификаций печати. printf может также выдавать на печать и просто написанные символы. В этой программе мы "напечатали" символ конца строки, указав его (/n) в строке спецификаций.



x = 3 + 4 % 5 - 6 Выражение очень похоже на предыдущее
x = 3 + (4%5) - 6 x = (3+(4%5)) - 6 x = ((3+(4%5))-6) (x=((3+(4%5))-6)) Вследствие приоритета операций и порядка их выполнения получаем такой результат (Операция взятия остатка % дает остаток от деления 4 на 5)
(x=((3+4)-6)) Опять вычисление выражения начинается "изнутри"
(x=(7-6)) (x=1) 1


x = - 3 * 4 % - 6 / 5 Это выражение сложнее предыдущего, но строгое следование правилу приоритетов операций и порядку их выполнения позволяет распутать его.
x = (-3) * 4 % (-6) / 5 x = ((-3)*4) % (-6) / 5 x = (((-3)*4)%(-6)) / 5 x = ((((-3)*4)%(-6))/5) (x=((((-3)*4)%(-6))/5)) Операции *, %, / имеют один и тот же приоритет и выполняются слева направо.
(x=(((-3*4)%-6)/5)) (x=((-12%-6)/5)) (x=(0/5)) (x=0) 0 Начинаем изнутри вычислять выражение


x = ( 7 + 6 ) % 5 / 2 Конечно, мы не всегда жестко связаны с заранее известными приоритетами операций. Если порядок выполнения нужно изменить или просто "прояснить" структуру выражения, можно использовать скобки.
x = (7+6) % 5 / 2 Вначале вычисляются подвыражения в скобках.
x = ((7+6)%5)/ 2 x = (((7+6)%5)/2) (x=(((7+6)%5)/2)) Теперь, как и раньше, следуем правилу приоритетов операций и порядку их выполнения.
(x=((13%5)/2)) (x=(3/2)) Вычисляем выражение
(x=1) 1 При операциях с целыми числами дробная часть операнда отбрасывается

Содержание раздела