4383

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

Лабораторная работа

Информатика, кибернетика и программирование

Операторы выбора в С++ Цель: понимать как работают операторы выбора, для чего используются и какой их синтаксис написания. Теоретический материал Операторы выбора — это операторы управления потоком выполнения программы. К операторам выбора отно...

Русский

2012-11-18

96 KB

12 чел.

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

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

Теоретический материал

Операторы выбора — это операторы управления потоком выполнения программы. К операторам выбора относят:

  •  условный оператор с единственным выбором — if(условие){действие};
  •  условный оператор с двойным выбором  — if(условие){действие 1} else {действие 2};
  •  switch-структура с множественным выбором.

Синтаксис условного оператора с единственным выбором [if () {}]:

Запись для одного оператора при выполнении условия

Запись для нескольких операторов при выполнении условия

if ( условие )

оператор_1;

if ( условие )

{

оператор_1;

оператор_2;

оператор_n;

};

Синтаксис условного оператора с двойным выбором [if () {} else {}]:

Запись для одного оператора при выполнении условия

Запись для нескольких операторов при выполнении условия

if ( условие )

оператор_1;

else

оператор_2;

if ( условие )

{

оператор_1;

оператор_2;

оператор_n;

}

else

{

оператор_n+1;

оператор_n+2;

оператор_m;

};

Оператором может быть любая команда или арифметическое выражение. Что касается условия, то оно должно быть логическим. Условие даёт ответ либо ложь, либо истину. Для написания условия необходимо знать, какие допустимы операции для использования, которые представлены в таблице 4.1.

Таблица 4.1: Операции, используемые в задании условия

Операция

Название

<

меньше

>

больше

< =

меньше или равно

> =

больше или равно

= =

равно

! =

не равно

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

Условный оператор с двойным выбором if()else можно записать в следующем виде: ()?():(). В таблице 4.2 приведены аналогичные действия, но различными способами записи.

Таблица 4.2: Пример использования if()else и ()?():()

if()else

()?():()

int x = 0, y = 0;

cin>>x>>y;

if(x>y)

{

cout<<”x больше y \n”;

}

else

{

cout<<”y больше или равно x \n”;

}

(x>y)?(cout<<”x больше y \n”;):(cout<<”y больше или равно x \n”;)

Иногда необходимо написать сложное логическое условие, для этого используются следующие логические операции:

||

логическое ИЛИ

&&

логическое И

Например, необходимо выяснить, попадает ли введенное с клавиатуры число в диапазон [-89, 78]?

int x=0;

cin>>x;

if((x>=-89)&&(x<=78))

cout<<”Число попадает в указанный диапазон \n”;

else

cout<<” Число не попадает в указанный диапазон \n”;

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

Синтаксис записи оператора switch.

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

{

case константное_выражение_1: операторы_1;

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

case константное_выражение_N: операторы_N;

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

}

Ход работы

  1.  Запускаем программы С++.
  2.  Создаем новый проект console application, затем добавляем в него source file.
  3.  Подключаем заголовочный файл для ввода вывода информации, создаем главную функцию программы, затем компилируем и проверяем на ошибки и предупреждения. В случае возникновения ошибок – исправьте их, по возможности избавьтесь от предупреждений.
  4.  Рассмотрим следующую задачу на условный оператор if(): пусть с клавиатуры вводят целое число, если это число равно 10, то на экран вывести слова «Нам это подходит». В конце программы независимо от результата вывести слова «Пока, до скорой встречи».
  5.  Прежде, чем преступить к кодированию, разберёмся с алгоритмом работы программы.

НАЧАЛО

объявление целочисленной переменной

приглашение для ввода числа

ввод числа с клавиатуры

если число == 10

выводим “Да подходит.”

выводим на экран “Пока, до скорой встречи.”

КОНЕЦ

Обратите внимание, что вывод слов «Пока до скорой встречи» должно происходить в любом случае, независимо от результата проверки.

  1.  Объявите целочисленную переменную (пусть переменная имеет имя perem).
  2.  Используя команду cout, выведите на экран приглашение для ввода этой переменной.
  3.  Добавьте команду для ввода с клавиатуры (используйте команду cin).
  4.  Теперь можно делать проверку, код проверки должен выглядеть следующим образом:

if(perem = = 10)

    cout<<”Да подходит.”;

cout<<”Пока, до скорой встречи.”;

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

1

#іnclude <іostream.h>

2

іnt mаіn()

3

{

4

int pеrеm;

5

сout<<”Еntеr perem = ”;

6

сin>>perem;

7

if(perem = = 10)

8

    cоut<<”Да подходит.”;

9

соut<<”Пока, до скорой встречи.”;

10

rеturn (-890);

11

}

  1.  Откомпилируйте код программы, исправьте все ошибки, если они имеются и запустите код на исполнение.
  2.  Теперь измените код следующим образом:

1

#іnclude <іostream.h>

2

іnt mаіn()

3

{

4

int pеrеm;

5

сout<<”Еntеr perem = ”;

6

сin>>perem;

7

if(perem = = 10)

8

{

9

    cоut<<”Да подходит.”;

10

    соut<<”Пока, до скорой встречи.”;

11

}

12

rеturn (-890);

13

}

В 8-й строке добавляем открывающуюся фигурную скобку, а в 11 строке добавляем закрывающуюся фигурную скобку.

  1.  Откомпилируйте код программы и запустите на исполнение. Ответьте на вопрос, чем отличаются результаты в первом и втором случае, если введенное число равно 10, и чем отличаются результаты, если введенное число не равно 10? Объясните почему?
  2.  Рассмотрим задачу на использование условного оператора if/else: с клавиатуры вводится два целых числа (Х и У). Необходимо вывести на экран максимальное из них. В конце программы независимо от результата вывести слова «Пока, до скорой встречи».
  3.  Алгоритм работы программы можно представить в следующем виде:

НАЧАЛО

объявление первого целого числа (Х)

объявление второго целого числа (У)

ввод первого числа

ввод второго числа

если Х больше У, то

вывод на экран “макс = Х =” значение числа Х

иначе

выводим на экран “макс = У =” значение числа У

вывод на экран текста “Пока, до скорой встречи”

КОНЕЦ

  1.  Код следующей программы должен быть примерно таким, как показано ниже:

1

#іnclude <іostream.h>

2

іnt mаіn()

3

{

4

int Х,У;

5

сout<<”Еntеr Х = ”;

6

сin>>perem;

7

сout<<”Еntеr У = ”;

8

сin>>У;

9

if(Х > У)

10

{

11

    cоut<<”МAХ = Х =”;

12

    соut<<Х<<”\n”;

13

}

14

else

15

{

16

    cоut<<”MАХ = У =”;

17

    соut<<У<<”\n”;

18

}

19

соut<<”Пока, до скорой встречи.”;

20

rеturn (-890);

21

}

  1.  Откомпилируйте код программы, выполните и просмотрите результат работы.
  2.  Ответьте на вопрос, что произойдет, если и для Х и для У будут введены одинаковые значения? Объясните почему будет выведен тот или иной результат.
  3.  Самостоятельно, используя вложенный оператор if/else/if, добавьте проверку на то, что числа будут равными. Если они равны, вывести на экран, что число Х и число У равны и вывести значение одного из этих чисел.

Контрольные вопросы

  1.  Какие операторы выбора вам известны? Перечислите их и приведите синтаксис их записи.
  2.  Для чего в условных операторах используют фигурные скобки?
  3.  Какие операции можно использовать в условии операторов с единственным и двойным выбором?
  4.  Какие логические операции можно использовать при написании сложных логических условий?
  5.  Напишите второй способ записи условного оператора с двойным выбором.
  6.  Напишите синтаксис записи switch-структуры с множественным выбором.
  7.  Обязательно ли присутствие default в switch-структуре с множественным выбором?
  8.  Что произойдет, если в switch-структуре с множественным выбором будет отсутствовать команда break?

Содержание отчёта

  1.  Тема и номер лабораторной работы.
  2.  Цель работы.
  3.  Ход работы.
  4.  Код программы, который обязательно должен содержать комментарии и условие задачи.
  5.  Исходный код программы со всем проектом в целом в электронном виде.
  6.  Выводы по проделанной лабораторной работе.


 

А также другие работы, которые могут Вас заинтересовать

19145. Бесконечная решетка. Элементарная ячейка. Распределение нейтронов различных энергий по ячейке 419 KB
  Лекция 9. Бесконечная решетка. Элементарная ячейка. Распределение нейтронов различных энергий по ячейке. Коэффициент размножения бесконечной периодической решетки. Твэлы и ТВС реакторов ВВЭР и РБМК. 9.1. Бесконечная решетка Кроме гомогенной среды топлива и замедлите...
19146. Многогрупповой подход. Многогрупповое уравнение диффузии. Внутренние и внешние итерации. Программы нейтронно-физического расчета 207 KB
  Лекция 10. Многогрупповой подход. Многогрупповое уравнение диффузии. Внутренние и внешние итерации. Программы нейтроннофизического расчета. Коэффициенты чувствительности коэффициента размножения к изменению параметров реактора. 10.1. Многогрупповой подход. Много...
19147. Приближения точечной кинетики. Запаздывающие нейтроны. Время жизни нейтронов в реакторе с учетом запаздывающих нейтронов 148 KB
  Лекция 11. Приближения точечной кинетики. Запаздывающие нейтроны. Время жизни нейтронов в реакторе с учетом запаздывающих нейтронов. Система уравнений точечной кинетики с одной группой запаздывающих нейтронов. Реактивность периоды реактора. Критичность на мгновенных и
19148. Выгорание топлива. Единицы измерения глубины выгорания. Классификация осколков деления 159.5 KB
  Лекция 12. Выгорание топлива. Единицы измерения глубины выгорания. Классификация осколков деления. Отравление и зашлаковывание реактора. Ксеноновая яма. Отравление самарием и неодимом. . Процессы происходящие в топливе во время работы реактора. Уменьшение ядер д
19149. Воспроизводство делящихся материалов. Уравнения выгорания. Расширенное воспроизводство. Оружейный и энергетический плутоний 130 KB
  Лекция 13. Воспроизводство делящихся материалов. Уравнения выгорания. Расширенное воспроизводство. Оружейный и энергетический плутоний. Малые актиноиды. Спонтанное деление. 13.1. Воспроизводство делящихся материалов. На рис. 13.1 приведена схема превращений изотопов т
19150. Радиационные характеристики отработавшего ядерного топлива (ОЯТ). Хранение и транспортировка ОЯТ 221 KB
  Лекция 14. Радиационные характеристики отработавшего ядерного топлива ОЯТ. Хранение и транспортировка ОЯТ. 14.1. Радиационные характеристики отработавшего ядерного топлива ОЯТ К радиационным характеристикам ОЯТ будем относить: активность остаточное энерговыделе
19151. Классификации реакторов АЭС. Особенности легководных, графитовых и тяжеловодных реакторов. Проблемы безопасности АЭС 65.5 KB
  Лекция 15. Классификации реакторов АЭС. Особенности легководных графитовых и тяжеловодных реакторов. Проблемы безопасности АЭС. Перспективные типы реакторов. 15.1. Классификации реакторов АЭС. Рассмотрим три классификации реакторов АЭС: по нейтронному спектру по
19152. ОСНОВНЫЕ ПОНЯТИЯ О ТЕРМОДИНАМИКЕ 73 KB
  ТЕМА 1. Основные понятия о термодинамике 1.1. Роль термодинамики в разработке и исследовании конструкционных материалов ядерных реакторов Высокочистые вещества прецизионные сплавы композиты основные материалы ядерной энергетики. Рафинирование. Термодинамическо...
19153. Внутренняя энергия. Первый закон термодинамики 61 KB
  2.2. Внутренняя энергия. Первый закон термодинамики Понятие энергии. Джоуль и калория. Первый закон термодинамики. Внутренняя энергия. Условность отсчета внутренней энергии. Изохорные процессы. Функции состояния и характеристические функции. Слово €œэнергия€