Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы ОАиП.docx
Скачиваний:
137
Добавлен:
09.03.2016
Размер:
139.71 Кб
Скачать

22.Операции присваивания. Особенности выполнения. Условная операция ?:

Для сокращённой записи выражений в языке программирования С++ есть специальные операции, которые называются операциями присваивания. Рассмотрим фрагмент кода, с использованием операции присваивания.

В С++ существует  пять операций присваивания, не считая основную операцию присваивания:=.

  1. += операция присваивания-сложения;

  2. -= операция присваивания-вычитания;

  3. *= операция присваивания-умножения;

  4. /= операция присваивания-деления;

  5. %= операция присваивания-остатка от деления;

Договоримся называть операции присваивания через дефис,  чтобы было понятно о какой именно операции идёт речь. В таблице 1 наглядно показаны примеры использования операторов присваивания в языке программирования С++.

Терна́рная усло́вная опера́ция (от лат. ternarius — «тройной») (обычно записывается как ?:) — во многих языках программированияоперация, возвращающая свой второй или третий операнд в зависимости от значения логического выражения, заданного первым операндом.

Безотносительно к определённому языку программирования тернарную операцию можно определить так:

логическое выражение ? выражение 1 : выражение 2

Алгоритм работы операции следующий:

  1. Вычисляется логическое выражение.

  2. Если логическое выражение истинно, то вычисляется значение выражениявыражение 1, в противном случае — значение выражениявыражение 2.

  3. Вычисленное значение возвращается.

23.Управляющие конструкции С/С++. Условный оператор if.

Оператор if служит для того, чтобы выполнить какую-либо операцию в том случае, когда условие является верным.Условная конструкция в С++ всегда записывается в круглых скобках после оператора if.

Формат оператора: if <условие> оператор-1; [else оператор-2;] или if < условие> оператор-1;

Внутри фигурных скобок указывается тело условия. Если условие выполнится, то начнется выполнение всех команд, которые находятся между фигурными скобками.

Пример конструкции ветвления

if (num < 10) { // Если введенное число меньше 10.

cout << "Это число меньше 10." << endl;

} else { // иначе

cout << "Это число больше либо равно 10." << endl;

}

Здесь говорится: «Если переменная num меньше 10 — вывести соответствующее сообщение. Иначе, вывести другое сообщение».

Усовершенствуем программу так, чтобы она выводила сообщение, о том, что переменная numравна десяти:

if (num < 10) { // Если введенное число меньше 10.

cout << "Это число меньше 10." << endl;

} else if (num == 10) {

cout << "Это число равно 10." << endl;

} else { // иначе

cout << "Это число больше 10." << endl;

}

Здесь мы проверяем три условия:

  • Первое — когда введенное число меньше 10-ти

  • Второе — когда число равно 10-ти

  • И третье — когда число больше десяти

Заметьте, что во втором условии, при проверке равенства, мы используем оператор равенства — ==, а неоператор присваивания, потому что мы не изменяем значение переменной при проверке, а сравниваем ее текущее значение с числом 10.

  • Если поставить оператор присваивания в условии, то при проверке условия, значение переменной изменится, после чего это условие выполнится.

Каждому оператору ifсоответствует только одиноператор else. Совокупность этих операторов —else ifозначает, что если не выполнилось предыдущее условие, то проверить данное. Если ни одно из условий не верно, то выполняется телооператора  else.

24.Управляющие конструкции С/С++. Переключатель switch.

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

Формат оператора:

switch (выражение){

[case константное выражение 1]: [ список операторов 1];

……………………………………………………..

[ case константное выражение n]: [ список операторов n];

[ default: [ список операторов ];] }

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

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

Константное выражение вычисляется в период компиляции. Никакие две константы в одном операторе-переключателе не могут иметь одинаковые значения.