Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Bilety_programmirovanie_1-7.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.4 Mб
Скачать
  1. Оператор присваивания (синтаксис, логика работы, полная и сокращённая форма, порядок выполнения, контекст вычисления, пример).

Синтаксис: переменная=выражение;

Нужен, чтобы сохранить значение некоторого выражения.

x=1;

x=y;

x=y+1;

Порядок выполнения левой и правой частей не определен. В языке С++ имеются другие формы оператора присваивания. Очень часто в программе оператор присваивания изменяет значение некоторой переменной. В общем виде это можно записать следующим образом:

переменная = переменная операция значение;

переменная операция = значение;

Пример: i=i+1; x=x*2; y/=2;

i+=1; x*=2; y=y/2;

Также было замечено, что очень часто выполняются операторы увеличения и уменьшения значения на 1. Первая операция – инкремент, вторая – декремент.

increment decrement

переменная++ переменная--

++переменная --переменная

i++ i--

++i --i

Префиксные и постфиксные формы отличаются контекстом выполнения. В префиксной форме оператора сначала происходит изменение значения переменной и это значение используется выражением. В постфиксной форме – сперва используется значение переменной, а затем оно изменяется.

Пример: int x=5;

cout<<”x= “<<x<<endl; //x=5

cout<<”x= “<<x++<<endl; //x=5

cout<<”x= “<<x<<endl; //x=6

. . . . . . . . . . . . . . . . .

x=5;

cout<<”x= “<<x<<endl; //x=5

cout<<”x= “<<++x<<endl; //x=6

cout<<”x= “<<x<<endl; //x=6

Для операций инкремента и декремента не определено понятие социативности(?); это означает, что в данном выражении нельзя сказать, какой оператор выполняется первым, в зависимости от этого результат будет разный. Стандарт С++ определяет это как “undefined behavior”, то есть «неопределенное поведение», поэтому не следует применять несколько операторов инкремента и декремента подряд в одном выражении и для одной и той же переменной.

Пример: i=1;

j=2;

x=i++ * ++j; //x=1*3

Операторы инкремента и декремента были введены по нескольким причинам:

1). Более компактная запись.

2). В 70-ые годы (когда они и были введены) многие процессоры имели отдельные инструкции для увеличения (уменьшения) переменной на 1, и эта инструкция выполнялась на порядок быстрее, чем оператор увеличения (уменьшения) на единицу.

Результатом выполнения оператора присваивания является присвоенное значение. Это означает, что можно писать выражение следующим образом:

x=y=z=0; x=(y=0)+1; //x=1

  1. Составной оператор (синтаксис, логика работы, пример).

Служит для объединения нескольких операторов в один.

Данную конструкцию можно применять для выполнения нескольких действий в одном условии, то есть если требуется при соответствии условия заданным параметрам произвести сразу несколько вычислений.

Пример: int a=5, b=15;

if (b>a)

{

a=a+1;

b=b-2;

}

Если объявить переменную внутри фигурных скобок, то можно будет обращаться к ней только в данном блоке, то есть внутри этих же фигурных скобок.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]