Программирование разветвляющихся алгоритмов (оператор switch) 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Программирование разветвляющихся алгоритмов (оператор switch)



Оператор switch предназначен для организации выбора одного из множества различных вариантов. Формат оператора следующий:

switch (выражение) { [ case константное-выражение1]: [список-операторов1] [ case константное-выражение2]: [список-операторов2]:: [ default: [список операторов]] }

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

Значение этого выражения является ключевым для выбора из нескольких вариантов. Тело оператора switch состоит из нескольких операторов, помечен­ных ключевым словом case с последующим константным выражением. Обычно в качестве константного выражения используются целые или символьные константы. Кроме операторов, помеченных ключевым словом case, может быть, но только один фрагмент, помеченный ключевым словом default.

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

Схема выполнения оператора switch следующая:

— вычисляется выражение в круглых скобках;

— вычисленное значение последовательно сравнивается с константными вы­ра­же­ниями, следую­щими за ключевыми словами case;

— если одно из константных выражений совпадает со значением выражения, то управление передается на оператор, помеченный соответствующим ключевым словом case;

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

Замечание. Все операторы, между начальным оператором и концом тела, выполняются вне зависимости от ключевых слов, если только какой-то из операторов не передаст управления из тела оператора switch. Таким образом, программист должен сам позаботится о выходе из case, если это необходимо. Для этого используется оператор break.

Использование оператора break позволяет в необходимый момент пре­рвать последова­тель­ность выполняемых операторов в теле оператора switch, путем передачи управления оператору, следующему за switch. Оператор break обеспечивает прекращение выполнения самого внутреннего из объединяющих его операторов switch, do, for, while. После выполнения оператора break управление передается оператору, следующему за прерванным.

 

Задача 16. Программа запрашивает у пользователя его оценку по двенадцатибальной шкале и сообщает оценку в виде: отлично, хорошо, удовлетворительно или плохо, a если введённая оценка не попадает в диапазон 2-12, выдаёт сообщение об ошибке.

#include <iostream.h>#include <conio.h> int main(){ unsigned short int number; clrscr(); cout<<"Enter your mark between 2 and 12: "; cin>>number; switch (number) { case 0: case 1: cout<<"Too small, sorry!\n"; break; case 12: case 11: case 10: cout<<"Exellent!\n"; break; case 9: case 8: case 7: cout<<"Good!\n"; break; case 6: case 5: case 4: cout<<"Sufficient!\n"; break; case 3: case 2: cout<<"Bad!\n"; break; default: cout<<"Too much! Try again!\n"; } getch(); return 0;}

Задача 17. Программа по введённой сумме правильно дописывает окончания. Например, 31 гривна, 73 гривны, 18 гривен.

#include <iostream.h>

#include <conio.h>

int main()

{

clrscr();

long a; int y, z;

cout<<"Введи сумму ";

cin>>a;

y=a%100;

if (y == 11||y == 12||y == 13||y == 14)

cout<<a<<" гривен";

Else

{

z=a%10;

switch (z)

{

case 1:cout<<a<<" гривна "; break;

case 2: case 3: case 4:cout<<a<<" гривны"; break;

default:cout<<a<<" гривен";

}

}

cout<<"\n Желаем удачи!";

getch();

return 0;

}

 

 

Задачи для самостоятельного решения

1. Ввести катеты прямоугольного треугольника А, В и сторону равностороннего треугольника D. Выяснить и сообщить, чья площадь больше.

 

2. Даны A, B – катеты прямоугольного треугольника и D – сторона квадрата. Выяснить, чей периметр больше.

 

3. Что выведет на экран следующая программа:

 

#include <conio.h>

#include <iostream.h>

void main()

{

int a=15, b=7, c=3;

if (a>b)

if (c<b)

c=999;

Else

c=777;

cout<<"c="<<c<<endl;

getch();

}

 

4. Ввести R — радиус окружности и D — сторону квадрата. Выяснить, может ли круг быть вписанным в квадрат.

 

5. Ввести три натуральных числа. Выяснить и сообщить, есть ли среди них одинаковые?

 

6. Ввести два натуральных числа. Выяснить и сообщить, имеют ли они одинаковую чётность.

 

7. Ввести натуральное число, содержащее не менее трёх цифр. Найти вторую справа цифру и проверить, равна ли она 5?

 

8. Ввести два натуральных числа А и В, причем А>В. Проверить и сообщить, делится ли А на В без остатка?

 

9. Составить программу, которая запрашивает возраст человека и печатает введённое число с подходящим словом: лет, год, года; например: 21 год, 36 лет, 53 года.

 

10. Предприятие выплачивает своим работникам надбавку к основной зарплате, которая зависит от стажа их работы. Соответствующие зависимости сведены в таблицу.

 

Стаж Надбавка, %

до 5 лет 5

от 5 до 10 лет 10

от 10 до 15 лет 15

свыше 15 лет 20

 

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

 

11. Поступающее на элеватор зерно проверяют на влажность. Если она превышает 20%, то первоначальный вес зерна уменьшают на 7%. Составить программу, которая запрашивает вес зерна и его влажность, а затем вычисляет и печатает вес зерна, поступивший в зачёт.

 

12. Плата за пользование электроэнергией исчисляется по следующему правилу: за первые 90 квт/ч взыскивается по 7.6 коп за каждый израсходованный киловатт-час, а за каждый последующий — в два раза больше. Составить программу, которая по запросу вводит количество израсходованной в месяц энергии, вычисляет и выводит на экран начисленную к оплате сумму.

 

13. При таможенном досмотре с пассажира взыскивают госпошлину, которая составляет 5% от общей стоимости провозимых им товаров, если последняя превышает 1400 долларов. Составить программу, которая вводит по запросу стоимость провозимых товаров и вычисляет сумму пошлины.

 

14. Закройщик ателье получает надбавку к зарплате, если он достиг определённой экономии материала. Соответствующие зависимости показаны в таблице:

 

Отходы, % Надбавка, %

5 17

10 12

15 7

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

 

15. Ввести трёхзначное натуральное число. Вычислить сумму его цифр, указав, является ли она чётной или нечётной.

 

16. Ввести трёхзначное натуральное число. Проверить, делится ли оно на каждую из своих цифр.

 

17. Ввести произвольное натуральное число. Проверить, равна ли сумма цифр этого числа их произведению.

 

18. Ввести натуральное число из трех цифр проверить и сообщить, равна ли сумма его крайних цифр средней.

 

19. Ввести четырёхзначное натуральное число. Проверить, равна ли сумма двух крайних цифр сумме средних.

 

20. Ввести координаты трёх различных точек на плоскости (x1,y1); (x2,y2); (x3,y3).

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

 

21. Ввести три числа. Определить, сколько среди них отрицательных.

 

22. Составить программу для решения системы уравнений

a1x + b1y = c1

a2x + b2y = c2

Проверить при:

a1 =3, b1=12, c1=39

a2 =6, b2=4, c2=38

 

23. Даны круг радиуса R и квадрат со стороной a. Выяснить:

а) лежит ли круг в квадрате?

б) лежит ли квадрат в круге?

(предполагается, что центры симметрии фигур совмещены).

 

24. Натуральное число из k цифр является числом Армстронга, если сумма его цифр, возведённых в k-ю степень, равна самому числу (например, 153 = 13 + 53 + 33). Ввести трёхзначное натуральное число и проверить, является ли оно числом Армстронга.

 

25. Ввести координаты (x, y) произвольной точки на плоскости.

Выяснить, попадает ли она внутрь заштрихованной фигуры, показанной на рисунке:

 

a) б)

 
 

 


 

       
   
 
 

 


в) г)

 

26. Производится выстрел по мишени (см. рис). Попадание в малый круг (радиус = 1) – 2 очка, в большой (радиус = 2) – 1 очко. Ввести координаты выстрела (x, y) и определить количество очков.

 

27. Даны круг радиуса R и катеты прямоугольного треугольника A и B. Определить, может ли треугольник быть вписанным в круг.

 

28. Ввести R — радиус окружности и D — сторону квадрата. Выяснить, может ли квадрат быть вписанным в окружность.

 

29. Треугольник задан координатами своих вершин (x1, y1); (x2, y2); (x3, y3). Определить, лежит ли случайная точка с кординатами (x, y) внутри треугольника.

 

30. Ввести координаты (x, y) произвольной точки на плоскости. Выяснить, попадает ли она внутрь фигуры, образованной осью абсцисс и двумя прямыми:

– = 1

3x + 4y = 12

 

31. Даны числа a1, b1, c1, a2, b2, c2. Найти координаты точки пересечения прямых, описываемых уравнениями

a1x + b1y = c1

a2x + b2y = c2

либо сообщить, что эти прямые совпадают, не пересекаются или вовсе не существуют.

 

32. Даны числа a, b, и c (а ¹ 0). Найти действительные корни уравнения

ax4 + bx2 + c = 0

Если таких корней нет, то сообщить об этом.

 

33. Написать программу, которая вводит 2 вещественных числа, вычисляет и печатает коэффициенты приведенного квадратного уравнения, корнями которого являются эти числа.

 

34. Перераспределить значения переменных х и у так, чтобы в х оказалось большее из этих значений, а в у — меньшее.

 

34. Ввести три произвольные числа a, b, c. Определить, какой треугольник (равносторонний, равнобедренный или какой-либо другой) может быть построен с такими длинами сторон, либо сообщить о невозможности его построения.

 

35. Определить по заданному номеру месяца (1—январь, 2—февраль и т. д.) время года (зима, весна и т. д.).

 

36. Определить по заданному номеру дня недели (1—воскресенье, 2—понедельник и т. д.) его название.

 

37. Напечатать заданное произвольное натуральное трехзначное число словами(например: 247 — двести сорок семь).



Поделиться:


Последнее изменение этой страницы: 2016-12-16; просмотров: 593; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.137.185.180 (0.039 с.)