Операции присваивания
Операции
Операции. Выражения
Идентификаторы
С целью универсализации программ принято все данные, используемые в программе в различных операциях, представлять не их значениями, а именами. В вычислительной технике имена имеют еще и другое название идентификаторы. Эти имена устанавливает разработчик программы. Такой принцип широко используется в алгебре, физике, в других дисциплинах и научных документах.
В языке С++, как впрочем и большинстве других алгоритмических языках, идентификаторы образуются:
– из сочетаний букв, цифр и знака подчеркивания _ , который приравнивается к букве;
– первым знаком должна быть буква или знак подчеркивания;
Максимально распознаваемое количество символов в идентификаторе – 31, хотя язык позволяет их иметь и больше. Просто в этом случае символы, находящиеся правее 31–го, не принимаются во внимание, то есть не распознаются. Это означает, что два имени, состоящих из 40 символов, с одинаковыми первыми 31 символами и различными остальными, воспринимаются как одинаковые. Вместе с тем возможность использовать количество символов более 31 создает дополнительные удобства.
Примером правильных идентификаторов могут быть ЛР1, ЛАБ_2, XY, _8S. Неправильные идентификаторы: 5р, 175, так как здесь имена начинаются с цифры. Следует помнить, что:
– в качестве идентификаторов нельзя использовать ключевые слова языка С++ . Они имеют другое назначение;
– в именах не должно быть пробелов. Имя с пробелом воспринимается как два различных, рядом расположенных имени.
Любая программа, написанная на алгоритмическом языке, представляет собой набор инструкций, предписывающий определенный характер обработки данных. Поэтому в каждом языке имеются свои инструменты их обработки. Язык С++ располагает широкими для этого возможностями.
Одним из видов обработки данных являются операции. Операция – это какое – либо действие над данными. Участник операции называется операндом, независимо от того в какой операции, и в каком качестве он участвует. По количеству участников задействованных в операции различают операции:
– унарные,
– бинарные.
Унарные – это операции с одним операндом. Например, операция по замене знака «плюс» на «минус».
Бинарные – это операции, в которых участвует два операнда. Например, операция сложения, деления, вычитания.
В С++ все операции можно разделить на следующие группы:
– арифметические,
– присваивания,
– отношения,
– логические.
Все они представлены в таблице 10.2.
Операция присваивания означает действие, в результате которого значение, записанное справа от знака операции, устанавливается переменной, имя которой записано слева от знака операции. В операции присваивания слева от знака всегда записывается имя переменной. Справа возможны варианты. Запись справа может быть представлена числом, именем другой переменной или выражением. Например,
a = 3.2;
a = b;
a = k*sin(2*x);
а = в = с = 7.15;
Внимание! Не следует путать операцию присваивания = с операцией сравнения на равенство = =.
Если в операции присваивания участвуют операнды различного типа, то тип операнда справа приводится к типу операнда слева. Например, в операции с приведенными типами
float = short
тип short буден приведен к типу float, и тогда операция присваивания в окончательном виде будет выполняться между данными типа float = float.
Между типами существует субординация. Она имеет следующий вид:
char, short, int, long, float, double.
Здесь тип char имеет наименьший статус, а тип double – наибольший. Эта субординация определяется размером ячеек памяти, отводимой для приведенных типов. Приведение типов в операции присваивания может привести к потере информации, если тип справа по субординации выше, чем тип слева. Например, int = float. Результатом приведения будет int = int . Это означает, что число справа, которое имело тип float и занимало ячейку памяти размером 4 байта, помещается в ячейку памяти размером 2 байта (такой размер выделяется для чисел типа int). В этом случае число, занимающее больший размер памяти, теряет часть своих разрядов.
Таблица 10.2. Операции.
Название операции | Знак | Пример | |
Арифметические операции | |||
Сложение. Вычитание. Умножение. Деление. Выделение остатка при делении целых чисел. Операция инкремент. Увеличение числа на единицу. Операция декремент. Уменьшение числа на единицу. | + – * / % + + – – | А + В А – В А * В А / В А % В ++А или А++ – – А или А – – | |
Операции присваивания | |||
Установление значения переменной, записанной слева от знака операции. Увеличение значения переменной, записанной слева от знака операции, на величину h. Уменьшение значения переменной, записанной слева от знака операции, на величину h. Умножение значения переменной, записанной слева от знака операции, на величину h. Деление значения переменной, записанной слева от знака операции, на величину h. Выделение остатка от деления переменной, записанной слева от знака операции, на величину h. | = + = – = * = / = % = | А = В или А = 5.7 или А = 3*sin(B) А + = h, что идентично А = А + h А – = h, что идентично А = А – h А * = h, что идентично А = А * h А / = h, что идентично А = А / h А % = h, что идентично А = А % h | |
Операции отношения | |||
Сравнение на равенство. Сравнение на неравенство. Сравнение на меньше. Сравнение на меньше равно. Сравнение на больше. Сравнение на больше равно. | = = ! = < < = > > = | А = = В А ! = В A < B A < = B A > B A > = B | |
Логические операции | |||
Логическое отрицание, «НЕ». Логическое сложение, дизъюнкция, «ИЛИ». Логическое умножение, конъюнкция, «И». | ! || & & | А ! В A || B A & & B | |
В конечном итоге это может привести к ошибке вычислений. Компилятор не обнаруживает такие случаи и не выдает никаких сообщений. Поэтому за этим следует внимательно следить самому программисту при составлении программы, чтобы не допустить такой ситуации. Если нет возможности установить тип некоторых данных, участвующих в операциях присваивания слева, то еще на стадии программирования следует для них выбирать тип с наибольшим статусом.