Операции присваивания
Операции
Операции. Выражения
Идентификаторы
С целью универсализации программ принято все данные, используемые в программе в различных операциях, представлять не их значениями, а именами. В вычислительной технике имена имеют еще и другое название идентификаторы. Эти имена устанавливает разработчик программы. Такой принцип широко используется в алгебре, физике, в других дисциплинах и научных документах.
В языке С++, как впрочем и большинстве других алгоритмических языках, идентификаторы образуются:
– из сочетаний букв, цифр и знака подчеркивания _ , который приравнивается к букве;
– первым знаком должна быть буква или знак подчеркивания;
Максимально распознаваемое количество символов в идентификаторе – 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. Операции.
Название операции | Знак | Пример | |
Арифметические операции | |||
Сложение. Вычитание. Умножение. Деление. Выделение остатка при делении целых чисел. Операция инкремент. Увеличение числа на единицу. Операция декремент. Уменьшение числа на единицу. | + – * / % + + – – | А + В А – В А * В А / В А % В ++А или А++ – – А или А – – | |
Операции присваивания | |||
Установление значения переменной, записанной слева от знака операции.
![]() ![]() ![]() ![]() ![]() | = + = – = * = / = % = | А = В или А = 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 | |
В конечном итоге это может привести к ошибке вычислений. Компилятор не обнаруживает такие случаи и не выдает никаких сообщений. Поэтому за этим следует внимательно следить самому программисту при составлении программы, чтобы не допустить такой ситуации. Если нет возможности установить тип некоторых данных, участвующих в операциях присваивания слева, то еще на стадии программирования следует для них выбирать тип с наибольшим статусом.