РАЗРАБОТКА ПРОГРАММ С ИСПОЛЬЗОВАНИЕМ ОПЕРАТОРА ВЫБОРА

  • doc
  • 28.04.2020
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала 81. РАЗРАБОТКА ПРОГРАММ С ИСПОЛЬЗОВАНИЕМ ОПЕРАТОРА ВЫБОРА.doc

РАЗРАБОТКА ПРОГРАММ С ИСПОЛЬЗОВАНИЕМ ОПЕРАТОРА ВЫБОРА

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

 

Теория. Работу оператора множественного выбора switch в C++ мы рассмотрим в решении такой задачи:

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

 

Задание 1. Внимательно изучите код программы и комментарии к нему:

#include <iostream>

using namespace std;

 int main()

{

 setlocale(LC_ALL, "rus");

 int answer = 0; // будет хранить выбор пользователя

 cout << "Введите номер студента по журналу: ";

 switch (answer) // switch принимает переменную answer и ищет подходящий case

 {

 case 1:  // если answer равно 1, на экран выйдут сообщения этого case

 cout << "Гейнович Д.";

 break; // выход из switch. иначе будет переход case(2)  и т.д.

 case 2: // если answer равно 2

 cout << "Демченко В. ";

 break;

 case 3:

 cout << "Диконов А. ";

 break;

 case 4:

 cout << "Маньков Е. ";

 break;

 default: // если ни один case не сработал, сработает default

 cout << "Студента под номером " << answer << " нет! ";

 }

 return 0;

}

Пояснения работы оператора выбора.

Объявление необходимых переменных, вывод вопроса на экран. Получили значение  answer, которое ввёл пользователь. Далее работает switch() : в круглых скобках передаём ему answer и возле каждого слова  case  записываем возможные значения answer, которые может   ввести пользователь (1, 2, 3 …).

После каждого case  вы видите оператор : , он обязателен. За ним следуют команды, которые должны быть выполнены, если значение case  совпадет со значением answer. Оператор break  в конце каждого блока case  так же является обязательным. Он показывает компилятору, что если этот case был выполнен, то надо выйти из switch().  То есть фактически, когда выполняется switch () начинается перебор и поиск необходимого case.

Если  answer  равно 1, сработает case 1 и на экран будет показано то, что в нем прописано до ключевого слова  break, а все остальные case, будут проигнорированы. Если answer  равно 2 – выполнится только case 2 и произойдет выход из switch(). А что если ни одно значение блоков case не совпадет, с тем значением, что принял switch() (в нашем случае answer)? Для этого предусмотрен блок  default. До него доходит дело, как раз тогда, когда ни один case не отработал и, соответственно, не отработал ни один  break  этих блоков.

 

Обобщим полученные знания. Синтаксис операторов множественного выбора:

 

 

Задание 2. Усложним предыдущую задачу. Совместим изучение оператора выбора с операторами цикла и условия.

Дополним предыдущее условие: после ввода номера, надо показать на экране фамилию студента. Если же номер больше числа студентов, то сообщить об этом и предложить ввести номер снова.

Внимательно изучите код программы и комментарии к нему:

 

#include <iostream>

using namespace std;

int main()

{

 setlocale(LC_ALL, "rus");

 int answer = 0;

 bool var = true; // управляющая переменная цикла do while

 cout << "Введите номер студента по журналу: ";

 do{

 cin >> answer;

 switch (answer)

 {

 case 1:  

 cout << "Гейнович Д.";

 break;

 case 2:

 cout << "Демченко В. ";

 break;

 case 3:

 cout << "Диконов А. ";

 break;

 case 4:

 cout << "Маньков Е. ";

 break;

 default:

 cout << "Студента под номером " << answer << " нет! ";

 cout << "Сделайте правильный выбор (от 1 до 4): ";

 }

 // если введено правильное значение (от 1 до 4)

 // в блоке  if  переменная var примет значение false

 // и цикл do while не повторится

 if (answer >= 1 && answer <= 4)

 var = false;  

 } while (var); //цикл повторится, пока var не изменит значение на false

return 0;

 }

Уточним изученный материал:

-   блок  default  можно расположить в любом месте блока switch()  Например, между первым и вторым case . Его код в любом случае выполнится только тогда, если не найдется нужного значения в  блоках case. 

-   в нижнем блоке switch(), будь то  default или case, оператор break   можно не указывать. Но следует помнить, что во всех остальных break обязателен!

-   default  не является обязательным. Его в switch()  может и не быть вовсе. В таком случае, если ни одно значение блоков case  не совпадет с тем, что принял switch() , программа просто перейдет на следующую строку кода, расположенную под switch()

Иногда блоки case  проверяют символьные, а не числовые значения. Тогда эти символы необходимо брать в одинарные кавычки –  case ‘b’: ,  case ‘G’: ,  case ‘+’ и т.д.

 

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

тема, цель, задание, блок-схема, код программы, результаты выполнения, вывод.

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

1. Составить расписание на неделю. Пользователь вводит порядковый номер дня недели и у него на экране отображается то, что запланировано на этот день.