Alt linux Программирование на языке С++ в среде Qt Creator Е. Р. Алексеев, Г. Г. Злобин, Д. А. Костюк, О. В. Чеснокова, А. С. Чмыхало Москва alt linux 2015



Download 5,27 Mb.
Pdf ko'rish
bet32/193
Sana24.02.2022
Hajmi5,27 Mb.
#227496
1   ...   28   29   30   31   32   33   34   35   ...   193
Bog'liq
Book-qtC


Глава 3. Операторы управления
няется операторы_2 и так далее. Если выражение не принимает ни одно из значе-
ний, то выполняются операторы, расположенные после ключевого слова default.
Альтернативная ветвь default может отсутствовать, тогда оператор имеет
вид:
switch (выражение)
{
case значение_1: Операторы_1; break ;
case значение_2: Операторы_2; break ;
case значение_3: Операторы_3; break ;
...
case значение_n: Операторы_n; break ;
}
Оператор break необходим для того, чтобы осуществить выход из операто-
ра switch. Если оператор break не указан, то будут выполняться следующие
операторы из списка, несмотря на то, что значение, которым они помечены, не
совпадает со значением выражения.
Рассмотрим применение оператора варианта.
Задача 3.8.
Вывести на печать название дня недели, соответствующее заданно-
му числу D, при условии, что в месяце 31 день и 1-е число — понедельник.
Для решения задачи воспользуемся операцией %, позволяющей вычислить
остаток от деления двух чисел, и условием, что 1-е число — понедельник. Если
в результате остаток от деления (обозначим его R) заданного числа D на семь
будет равен единице, то это понедельник, двойке — вторник, тройке — среда и так
далее. Следовательно, при построении алгоритма необходимо использовать семь
условных операторов, как показано рис. 3.19. Решение задачи станет значительно
проще, если при написании программы воспользоваться оператором варианта
switch
:
#include 
using namespace s t d ;
i n t main ( )
{ unsigned i n t D,R; //Описаны целые положительные числа.
cout<<" D = " ; c i n >>D;
//Ввод числа от 1 до 31.
R=D%7;
switch (R)
{
case 1 : cout<<"Понедельник \ n " ; break ;
case 2 : cout<<"Вторник \ n " ; break ;
case 3 : cout<<"Среда \ n " ; break ;
case 4 : cout<<"Четверг \ n " ; break ;
case 5 : cout<<"Пятница \ n " ; break ;
case 6 : cout<<"Суббота \ n " ; break ;
case 0 : cout<<"Воскресенье \ n " ; break ;
}
return 0 ;
}
В предложенной записи оператора варианта отсутствует ветвь default. Это
объясняется тем, что переменная R может принимать только одно из указанных
значений, т.е. 1, 2, 3, 4, 5, 6 или 0. Однако программа будет работать неправиль-
но, если пользователь введёт значение D, превышающее 31. Чтобы избежать
подобной ошибки лучше сделать дополнительную проверку входных данных:
#include 
using namespace s t d ;
Программирование на языке С++ в среде Qt Creator


3.3. Условные операторы
63
Рис. 3.19: Алгоритм решения задачи 3.8
i n t main ( )
{
unsigned i n t D,R;
cout<<" \ n D = " ; c i n >>D;
i f (D<32)
//Проверка введённого значения.
{
R=D%7;
switch (R)
{
case 1 : cout<<"Понедельник \ n " ; break ;
case 2 : cout<<"Вторник \ n " ; break ;
case 3 : cout<<"Среда \ n " ; break ;
case 4 : cout<<"Четверг \ n " ; break ;
case 5 : cout<<"Пятница \ n " ; break ;
case 6 : cout<<"Суббота \ n " ; break ;
case 0 : cout<<"Воскресенье \ n " ; break ;
}
}
//Сообщение об ошибке в случае некорректного ввода.
e l s e cout<<"ОШИБКА! \ n " ;
return 0 ;
}
Задача 3.9.
По заданному номеру месяца m вывести на экран его название.
Для решения данной задачи необходимо проверить выполнение двенадцати
условий. Если m равно единице, то это январь, если двойке, то февраль, тройке
© 2015 Алексеев Е. Р., Злобин Г. Г., Костюк Д. А., Чеснокова О. В., Чмыхало А. С.


64
Download 5,27 Mb.

Do'stlaringiz bilan baham:
1   ...   28   29   30   31   32   33   34   35   ...   193




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish