Операция присвоения: a=B. Если типы левой и правой части совпадают, то переменной, которая указана слева, присваивается значение переменной или выражения, расположенного справа. В противном случае предварительно происходит автоматическое преобразование типа правой части к типу левой.
Пример:
int i =5, j=3, k;
double a = 2.95, d;
k=i+a; // выполняется преобразование к целому типу, k=7
d=i+j; // выполняется преобразование к вещественному типу, d=8.0.
В случае последовательного использования нескольких операций присвоения в одном выражении последние выполняются справа налево, причем, каждый раз происходит необходимое преобразование типов.
Например,
int i=2, j;
float d=3.55, r,s;
s=j=r=i+d; // результат – вещественное значение 5.0 (r=5.55, j=5, s=5.0)
Унарные арифметические операции, совмещенные с присвоением:
1) префиксная форма: ++a, --a – увеличение и уменьшение операнда на 1 соответственно (имеет самый высокий приоритет, т.е. выполняется в первую очередь)
2) постфиксная форма: a++, a-- - увеличение или уменьшение операнда на 1 соответственно (имеет самый низкий приоритет, выполняется в последнюю очередь после операций присвоения).
Например:
Int i=2, j=5, I, J;
I= ++i; J= j++;
printf(“I=%d i=%d : J=%d j=%d”, I, I, J,j)
На экран будет выведено:
I=3 i=3 : J=5 j=6
Т.к. для I сначала – наращивание, потом – присвоение, а для J – указанные действия следуют в обратном порядке.
Примечание: операции ++ и – не могут быть применены к константам. Например, неприменимы такие операции: 5++, (a+b)--
Эти операции обеспечивают некоторую экономию в быстродействии программы.
Бинарные арифметические операции, связанные с присвоением:
Можно увеличивать или уменьшать операнд на любую величину, которая задается в качестве второго операнда с помощью операций += и -=.
Например, a+100 (увеличение a на 100), b-=delta (уменьшение b на величину delta).
*= - умножает значение первого операнда на значение второго;
/= - делит;
%= - определяет остаток от деления (только для операндов целых типов).
Например, n*=3; m%=5.
Эти операции имеют только постфиксную форму, значит, являются низкоприоритетными.
4. Закрепление нового материала.
Задача: написать на языке С++ программу, вычисляющую следующие выражения:
- Что такое унарные и бинарные операции?
- Для каких типов данных определена операция «%»?
- В чем особенность выполнения операций целочисленного деления?
- Как получить вещественный результат операции целочисленного деления?
- Как выполняется операция присвоения?
- В какой последовательности выполняются операции присвоения?
- Чем отличаются префиксные операции от постфиксных?
- Что означает преобразование типов при выполнении различных операций?
- Приведите пример преобразования типов.
5. Самостоятельная работа.
6. Подведение итогов занятия: выводы, оценки за ответы на вопросы.
7. Д/з: [1] стр.79-94, [5] стр.63-70, 116-120, СР№5: в тетради ответить на вопросы № 1-5, 7, 11, 14, 16 из [1] на стр. 90
Do'stlaringiz bilan baham: |