Читайте также:
|
|
Самостійна робота 26
Унарні та бінарні операції мови С
Завдання: Вивчити теоретичний матеріал, законспектувати у зошит. Виконати практичне завдання
Выражение строится из одной или нескольких операций. Объекты этих операций называются операндами. Операции бывают унарные - которые действуют на один операнд - например унарный минус (-x) и бинарные - которые действуют на два операнда (сложение и т.п. - x+y).
Вычисление выражения состоит в выполнении одной или нескольких операций, приводящих к результату. Тип данных выражения обычно определяется типами его операндов. Когда в выражении присутствует более одного типа данных, то происходит преобразование типа в соответствии с определенными правилами.
Выражение, в котором участвуют две или более операции, называется составным (например, x+y-z). Порядок применения операций определяется приоритетом операции (какая операция выполняется раньше, а какая позже) и ее ассоциативностью (слева направо она выполняется или справа налево).
Простейшее выражение - просто операнд без операции - т.е. константа или переменная. Например 3.14159 или index. Тип выражения соответствует типу данной константы или переменной.
Операции присваивания
Еще одним коренным и чрезвычайно важным отличием С++ от Паскаля, которое обуславливает компактность программ на С++ является то, что здесь присваивание является не оператором, а операцией, которая может находиться на любом месте в выражения. Об этом всегда нужно помнить.
В С различаются простое и составное присваивание.
Вот пример: int i; i = 0;
Результат операции присваивания есть значение того выражения, которое присваивается левому операнду. Тип результата - тип левого операнда. Т.е. присваивание действует "насквозь" справа налево.
Что следует из того, что присваивание является операцией?
1)В одном операторе можно сцеплять несколько операций присваивания при условии, что все операнды имеют один и тот же тип. Например:
int i,j,k;
i = j = k = 0;
i,j и k присваивается 0. Порядок выполнения присваиваний - справа налево.
2) можно короче записывать выражения
Например в фрагменте программы
char ch; // получаемый символ
char next_char(); // выдает следующий символ
if ((ch = next_char())!= '\n')...
присваивание значения символьной переменной ch совмещается с проверкой.
Вообще здесь нужно знать меру, чтобы не запутать программу.
Составное присваивание позволяет записывать выражения короче. Общий вид составного присваивания следующий:
a op= b
где op - одна из десяти операций (одни из них вы уже знаете, о других мы еще будем говорить):
+ - * / % << >> & ^ |
Каждая составная операция эквивалентна следующему присваиванию: a = (a) op (b); за тем исключением, что здесь a вычисляется два раза, а при использовании составного присваивания - один раз.
Например
i *= 4 эквивалентно i = i * 4
Обратите внимание на скобки вокруг b: запись i *= y+1 эквивалентна записи
i = i * (y+1) а не i = i * y + 1
Приоритет операций присваивания очень низкий, ниже, чем у арифметических и логических операций.
Таблица приоритетов операций в С (в порядке уменьшения приоритета)
Операция | Назначение |
++ -- ~ ! + - | инкремент, декремент побитовое НЕ логическое НЕ унарные минус и плюс |
* / % | умножение, деление, взятие остатка |
+ - | сложение и вычитание |
<< >> | сдвиги влево и вправо |
< <= > >= | операции отношения |
= =!= | равно, не равно |
& | побитовое И |
^ | побитовое исключ. ИЛИ |
| | побитовое ИЛИ |
&& | логическое И |
|| | логическое ИЛИ |
= | присваивание |
Практическое задание для выполнения
int a=3, b=4, c, d, x, y;
Выражение | Значение переменных | |||||||||||
a | b | c | d | x | y | |||||||
a++ | ||||||||||||
b = b + 4 | ||||||||||||
c = a++ | ||||||||||||
d = --b | ||||||||||||
a += b | ||||||||||||
a % 10 | ||||||||||||
d = c / d | ||||||||||||
x = a && b | ||||||||||||
y = c ||!d | ||||||||||||
a *= (a / 4) | ||||||||||||
x = y = 10 | ||||||||||||
a = d = x * a / 4 | ||||||||||||
2. Написать выражения на языке С
1) 2) 3)
4) 5)
Література:
1. Глинський Я.М., Анохін В.Є., Ряжська В.А. С++ і С++ Builder. – Львів: Деол, СПДГлинський, 2003.
2. Подбельский В.В.. Фомин С.С. Программирование на языке Си. – Москва «Финансы и статистика». 1999 г.
Дата добавления: 2015-10-21; просмотров: 62 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Специфікатори типу int мови С | | | Значения переменных в памяти хранятся в двоичной системе счисления. Например |