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.  Выводы по проделанной лабораторной работе.


 

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

27184. Понятия и содержание новой истор. Дискуссии по проблемам периодизации новой истории 33 KB
  Война: в этот период происходит зарождение и прогрессивное развитие капитализма. прекращается прогрессивное развитие капитализма и ему на смену приходит социализм. Это локальное событие не оказавшее большого значения на развитие как Фр. Голландия Англия развитие буржуазных отношений привело к буржуазной революции.
27185. Технология изготовления коленчатых валов 298 KB
  Коленчатые валы подразделяют на цельные, составные и сборные. Цельные изготавливают длиной до 5000 мм, составные - из двух секций для крупных судовых двигателей, сборные - для двигателей небольшой мощности (например, мотоциклетные двигатели).
27186. Аграрный вопрос в Великой английской и Великой французской революциях. Сравнительная характеристика 39 KB
  До революции в английской деревни было 2 формы собственности: крестьянская копигольд и буржуазно дворянская рыцарское держание. Революции лекция феодализма ко времени ВФР уже не было. Исчез до революции. необходимости в революции не было.
27187. Основные проблемы и особенности войны северо-американских колоний Англии за независимость и образование США 45.5 KB
  Так как в результате завоевания независимости в колонии были приняты демократические преобразования и они выходят на более высокий уровень чем ВФР: церковь отделена от государства; на Севере отменили рабство; доступность к западным З. Северовосточные колонии новая Англия территории с ранним развитием ремесел мануфактуры судостроение и судоходство рыболовство. Это колонии которые пошли по буржуазному пути . Среднеатлантические колонии.
27188. Обмен липидов, аминокислот, простых и сложных белков. Передача генетической информации и биосинтез белка 4.27 MB
  Методические рекомендации составлены в виде билетов, содержащих по пять вопросов, и правильных ответов на них, где изложены изложены вопросы обмена липидов, аминокислот, простых и сложных белков. Уделено внимание механизму синтеза белков и нуклеиновых кислот, передаче генетической информации и молекулярной патологии.