Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная для ИБ на 1.03.2013.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
210.81 Кб
Скачать

Операции присваивания

В общем случае операция присваивания имеет вид3:

имя_типа идентификатор знак_операции (имя_типа) выражение;

Выполнение операции:

  • вычисляется значение выражения,

  • полученная константа приводится к указанному типу,

  • над содержимым области памяти, поименованной идентификатором, и константой выполняется операция, знак которой находится до “=”,

  • результат помещается в область памяти, поименованной идентификатором.

Примеры.

  • int a = 7; // объявляется переменная a и a ← 74

  • a += (int) 8/3; // a ← 7 + 2

  • int b = a = 9; // объявляется переменная b и a ← 9, b ← 9

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

Так как операция присваивания выполняется справа налево, то в ней может объявляться только одна переменная.

Особо следует отметить две операции присваивания: инкремент ++ и декремент --, каждая из которых бывает двух видов: префиксной и постфиксной, например,

++ c; // префиксный инкремент,

b -- ; // постфиксный декремент,

Префиксная форма ++ (--) увеличивает (уменьшает) операнд на единицу ДО его использования. Постфиксная форма ++ (--) увеличивает (уменьшает) операнд на единицу ПОСЛЕ его использования.

Пример.

int a, b = 5;

a = ++b; // b ← b + 1, a ← b; итог: a ← 6, b ← 6

a += b--; // a ← a + b, b ← b – 1; итог: a ← 12, b ← 5

Операторы ветвления и передачи управления Краткая форма условного оператора

If(выражение) оператоР_1;

Полная форма условного оператора

If(выражение) опреатоР_1; else оператоР_2;

Примечания.

  • Выражение должно быть скалярным и может иметь арифметический тип или тип указатель.

  • Если выражение не равно нулю (не пустой указатель), то оно считается истинным и выполняется оператоР_1.

  • В качестве операторов нельзя использовать описания и объявления.

  • Допускается использование блоков (составных операторов), то есть последовательности операторов и операций, заключенных в { }.

Примеры.

if(x < 0) x = -x; else ++x; // полная форма оператора ветвления

if(j > 0) {int k = 3; j = k;} // блок с объявлением локальной переменной5 k,

Условная операция

Результатом условной операции

выражение_1 ? выражение_2 : выражение_3

является значение выражения_2, если значение выражения_1 не равно нулю, в противном случае результатом условной операции является значение выражения_3.

Например, переменной x можно присвоить абсолютное значение переменной y следующим образом: x = y > 0 ? y : -y;

Оператор выбора

switch (переключающее_выражение)

{ case выражение_1: операторы_1;

case выражение_2: операторы_2;

case выражение_k: операторы_k;

default: операторы; }

Оператор switch передаёт управление тому из помеченных служебным словом case оператору, для которого значение выражения совпадает со значением переключающего выражения.

Если значение переключающего выражения не совпадает ни с одним из выражений, то управление передаётся на метку default, если она есть.

Примечания.

  • Каждый оператор может быть помечен несколькими метками case.

  • Оператор break осуществляет выход из оператора switch.

Пример.

cout << “Введите цифру”; cin >> digit;

switch(digit)

{

case 0: case 1: cout << “ 0 или 1”; break;

case 2: cout << “2”; break;

default: cout << “очень большая цифра

}

Операторы передачи управления

Оператор безусловного перехода: goto метка;

  • метка есть идентификатор, после которого следует ":";

  • метка не объявляется.

Оператор возврата значения из тела функции: return выражение;

Оператор выхода из блока: break;

Оператор перехода к следующему повторению тела цикла: continue;

Операторы цикла

Оператор цикла с параметром

for( инициализация; выражение; модификация) оператоР;

Пример.

for(int i = 0; i < 10; i++) cout << i;

for(float x= -0.5; x < 0.6; x += 0.1) s += x;

Оператор цикла с предусловием

while (выражение) оператоР;

Оператор цикла с постусловием

do оператоР while(выражение);

Потоки ввода-вывода

Для ввода/вывода данных в языке C++ имеется много возможностей.

Наиболее просто ввод данных осуществляется с помощью, так называемого, потока ввода:

cin >> переменная >> переменная… ;

а вывод данных – потока вывода:

cout << выражение << выражение … ;

Прототипы потоков cin6 и cout7 объявлены в заголовочном файле iostream.h.

Для управления форматом ввода/вывода можно использовать манипуляторы:

setprecision(int n), который задаёт максимальное количество n цифр после запятой в записи рационального числа;

setw(int n), который задаёт минимальное количество позиций для вывода данных.

Прототипы манипуляторов объявлены в заголовочном файле iomanip.h.