Оператор множественного выбора (переключатель)
Оператор выбора, сравнивая значение заданного выражения с набором перечисленных значений, позволяет выбрать одно из нескольких возможных продолжений программы.
Структура оператора выбора:
switch (<выражение>)
{
case <значение_выражения_1>: <оператор_1>; break;
case <значение_выражения_2>: <оператор_2>; break;
…
[default: <оператор_n>; break;]
}
<выражение> в операторе switch – значение любого простого типа;
<значения_выражений>, указанных в операторах case, совместимы по типу с <выражением> в операторе switch и обязательно должны отличаться друг от друга.
В случае равенства <выражения> <значению_выражения_1>, выполняется <оператор_1>; иначе, в случае равенства <выражения> <значению_выражения_2>, выполняется <оператор_2>; иначе, и так далее до последнего оператора case;
иначе, если <выражению> не соответствует ни одно значение в операторах case, то управление передается <оператору_n> после ключевого слова default, которое является необязательным.
Если отсутствует оператор default, то выполняется следующий оператор после оператора switch (после }).
Внутри оператора switch оператор break приводит к передаче управления следующему оператору, стоящему после оператора switch, т.е. используется для выхода из переключателя. Если break отсутствует, то после текущего раздела case будет выполняться следующий оператор в операторе switch (case или default).
II. Контрольные вопросы.
1. Что такое условная конструкция?
2. Структуры условного оператора.
3. Как работает условный оператор?
4. Что представляет собой структура оператора множественного выбора?
5. Как работает оператор множественного выбора?
III. Практическая часть.
1. Выполнение общего задания.
Задача 1.
1. Постановка задачи: разработать алгоритм вычисления и вывода на экран значения функции
x+2, если x<0;
y = x3+5 , если x≥π/2;
sin x+0,5, если 0≤x<π/2;
Значение x вводится с клавиатуры. Написать программу, реализующую разработанный алгоритм.
2. Математическая модель и описательный алгоритм задачи:
• ввести значение переменной x;
• если x<0, то y=x+2;
• иначе, если x≥π/2, то y=x3+5;
• иначе, если 0≤x<π/2, т.е. во всех других случаях, y=sin x+0,5;
• вывести значение переменной y.
3. Блок-схема алгоритма задачи:
4. Текст программы:
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main()
{
const float p=3.14;
float x,y;
printf(“\n input x:”);
scanf(“%f”,&x); // ввод числа в форме с плавающей точкой
if (x<0)
y=x+2;
else
if (x>=p/2)
y=pow(x,3)+5;
else
y=sin(x)+0.5;
printf(“\n output y=%f”,y);
getch();
return 0;
}
5. Тестирование:
Теоретически рассчитанное выходное значение | Практически полученное выходное значение |
Тест 1: входные данные: x=-1 (условие x<0) | |
y=? | y=? |
Тест 2: входные данные: x=π≈3,14 (условие x≥π/2) | |
y=? | y=? |
Тест 3: входные данные: x=0 (условие 0≤x<π/2) | |
y=? | y=? |
Тест 5: входные данные: x=π/3≈1,0466 (условие 0≤x<π/2) | |
y=? | y=? |
Задача 2.
1. Постановка задачи: разработать алгоритм вычисления и вывода на экран значения функции b по формуле . Значения x, y вводятся с клавиатуры. Написать программу, реализующую разработанный алгоритм.
2. Математическая модель и описательный алгоритм задачи:
• ввести значения в переменные x, y;
• так как функция b(x,y) определена не на всех значениях x, y, то необходимо определить область допустимых значений (ОДЗ): x4-1≥0 и 1-cos(x)≠0
• проверить условия: если x4-1≥0 и 1-cos(x)≠0, то вычислить значение переменной b по формуле и вывести полученное значение;
• иначе вывести информацию о том, что входные значения не удовлетворяют ОДЗ и выйти из алгоритма.
3. Блок-схема алгоритма задачи:
4. Текст программы:
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main()
{
float x,y,b;
printf(“\n input x, y:”);
scanf(“%f%f”,&x,&y);
if (pow(x,4)-1>=0 && 1-cos(x)!=0)
{
b=(sqrt(pow(x,4)-1)-3*x*y)/(1-cos(x));
printf(“\n output b=%f“,b);
}
else
printf(“\nx не удовлетворяет ОДЗ”);
getch();
return 0;
}
5. Тестирование:
Теоретически рассчитанное выходное значение | Практически полученное выходное значение |
Тест 1: входные данные: x=1.5, y=3 (условие x4-1≥0 и 1-cos(x)≠0) | |
b=? | b=? |
Тест 2: входные данные: x=0,3 (условие x4-1<0 или 1-cos(x)==0) | |
х не удовлетворяет ОДЗ | х не удовлетворяет ОДЗ |
2. Выполнение индивидуального задания.
Постановка задачи.
Разработать разветвленный алгоритм и написать программу по индивидуальному заданию, используя операторы ветвления, оператор ввода для ввода значений входных данных и оператор вывода для вывода результата вычисления.
2. Входные и выходные данные.
Все действующие в программе переменные должны быть объявлены.
Недопустимо задавать исходные (входные) данные с помощью операторов присваивания. Ввод данных с клавиатуры должен предваряться выводом соответствующего сообщения.
3. Математическая модель и описательный алгоритм задачи.
Блок-схема алгоритма.
Представить разветвленный алгоритм в виде блок-схемы.
Текст программы.
Разработанный алгоритм реализуется на языке программирования высокого уровня Cи.
Тестирование.
Результаты тестирования представить в виде таблицы.
IV. Требования к разработке программы.
Программа должна содержать следующие три составные части:
- ввод исходных данных;
- обработку данных;
- вывод результатов.
Произвести отладку и тестирование разработанной программы.
V. Требования к защите индивидуальных заданий.
ИМЕТЬ отчет, который включает:
1. постановку задачи;
2. математическую модель и описательный алгоритм задачи;
3. блок-схему алгоритма;
4. текст программы;
5. результаты тестирования.
ЗНАТЬ ответы на контрольные вопросы.
VI. Варианты индивидуальных заданий.
Разработать алгоритмы решения задач, написать программы, реализующие соответствующие алгоритмы, и осуществить их тестирование. Входные данные вводятся с клавиатуры.
Вариант №1
1. Вычислить и вывести на экран значение функции
cos2x , если 0<x<2
y = 2∙sin2 x, если x<0
1, если x≥2
2. Вычислить по формуле и вывести на экран значение b.
3. Вычислить и вывести на экран значение площади геометрической фигуры, соответствующей введенному значению n:
Вариант №2
1. Вычислить и вывести на экран значение функции
2. Вычислить по формуле и вывести на экран значение a.
3. Вычислить и вывести на экран значение площади геометрической фигуры, соответствующей введенному значению k:
Вариант №3
1. Вычислить и вывести на экран значение функции
-2∙x+x+1 , если x≤0
y = -2∙x2+3, если 0<x<10
0, если x≥10
2. Вычислить по формуле и вывести на экран значение b.
3. Вычислить остаток от деления целой части значения функции z=ln(x2+a∙b) на 7, в зависимости от его значения, вывести сообщение об одном из дней недели, пронумеровав их от 0 до 6.
Вариант №4
1. Вычислить и вывести на экран значение функции y(x), если при введенном x>1 y=x2, а при x≤1 y=x.
2. Вычислить по формуле и вывести на экран значение b.
3. Ввести три числа а, b, с, удовлетворяющие аксиоме треугольника и, в зависимости от значения введенного р, вывести полученные значения или информацию: при р=1 вычислить периметр треугольника, при р=2 – площадь треугольника, при р=3 – угол между сторонами а и c, иначе, вывести слово «треугольник».
Вариант №5
1. Найти и вывести максимальное значение из двух введенных чисел a, b; если числа равны, то вывести соответствующую информацию.
2. Вычислить по формуле и вывести на экран значение a.
3. Вычислить остаток от деления целого выражения а=(с+d)∙(2∙k-m) на 5; при остатке, равном 0, вывести значение а, при нечетном остатке вывести «нечетное число», при четном – «четное число».
Вариант №6
1. Дана точка с введенными координатами x, y. Присвоить z=1, если точка внутри эллипса
и z=0, если точка вне эллипса; вывести значение z.
2. Вычислить по формуле и вывести на экран значение a.
3. По введенному номеру компьютера вывести фамилию студента, сидящего за ним.
Вариант №7
1. Даны два отрезка [a,b], [c,d] на прямой; a, b, c, d вводятся с клавиатуры. Установить, имеют ли отрезки общие точки, и вывести «да» или «нет».
2. Вычислить по формуле и вывести на экран значение b.
3. Вычислить остаток от деления целой части выражения z=cos(x2+1)∙10∙x на 4 и, в зависимости от величины остатка, вывести сообщение об одном из времен года, пронумеровав их от 0 до 3.
Вариант №8
1. Ввести координаты точки x, y; присвоить z=1, если точка принадлежит окружности с введенным радиусом R и центром в точке с введенными координатами a, b, и присвоить z=0 – в противном случае; вывести значение z.
2. Вычислить по формуле и вывести на экран значение b.
3. Вычислить остаток от деления целого выражения c=kּ(a+b) на 4 и вывести на экран значения остатка и выражения: если остаток равен 0, то значение выражения оставить без изменения, если – 1 или 3, то уменьшить на величину остатка, если – 2, то увеличить на величину остатка.
Вариант №9
1. Вычислить и вывести на экран значения функции f(x), если при введенном х≥0 f(x)=e-x, а при х<0 f(x)=cos(x).
2. Вычислить по формуле и вывести на экран значение a.
3. По введенному номеру дня недели (1,2,3,4,5,6,7) вывести его название с указанием рабочий или выходной день.
Вариант №10
1. Решить уравнение и вывести на экран значение y.
2. Вычислить по формуле и вывести на экран значение a.
3. Вычислить остаток от деления целой части выражения sin(a+b)ּ0.5∙c на 4 и вывести на экран значения остатка и выражения: если остаток равен 0, то значение выражения заменить на его целую часть, если остаток равен 1 – заменить на его дробную часть, в остальных случаях – оставить без изменения.
Вариант №11
1. Вычислить и вывести на экран значение корня .
2. Вычислить по формуле и вывести на экран значение a.
3. В зависимости от введенного номера времени года (весна – 1, лето – 2, осень – 3, зима – 4) вывести «тепло», «жарко», «холодно», «очень холодно».
Вариант №12
1. Вычислить и вывести на экран значение функции y=lg(3∙x-6).
2. Вычислить по формуле и вывести на экран значение b.
3. Вычислить и вывести значение функции, в зависимости от введенного n:
Вариант №13
1. Ввести координаты (a,b) и (c,d) точек, вывести на экран координаты той из точек, которая расположена ближе к началу координат.
2. Вычислить по формуле и вывести на экран значение a.
3. Вычислить и вывести значения функции, в зависимости от введенного k:
Вариант №14
1. Вывести на экран сообщение, в какой четверти координатной плоскости находится точка с координатами x, y, если xּy≠0.
2. Вычислить по формуле и вывести на экран значение b.
3. Вычислить остаток от деления целой части выражения cos(a-b)ּc на 3 и вывести на экран значения остатка и выражения: если остаток равен 0, то значение выражения заменить на его целую часть, если остаток равен 1 – заменить на его дробную часть, в остальных случаях – оставить без изменения.
Вариант №15
1. Если сумма двух введенных чисел меньше единицы, то наименьшее заменить полусуммой, в противном случае – наименьшее заменить суммой; вывести на экран полученное значение.
2. Вычислить по формуле и вывести на экран значение a.
3. Вычислить остаток от деления целого выражения c=kּ(a-b)∙a на 3 и вывести на экран значения остатка и выражения: если остаток равен 0, то значение выражения оставить без изменения, если – 1, то уменьшить на величину остатка, если – 2, то увеличить на величину остатка.
Вариант №16
1. Ввести три действительных числа; если сумма чисел больше произведения на значение, меньшее единицы, то вывести «0», в противном случае, вывести «1».
2. Вычислить по формуле и вывести на экран значение b.
3. Вычислить остаток от деления целого выражения nּ(x+y)∙2 на 5 и вывести на экран значения остатка и выражения: если остаток равен 0, то значение выражения оставить без изменения, если – 1 или 3, то уменьшить на величину остатка, если – 2 или 4, то увеличить на величину остатка.
Вариант №17
1. Вычислить и вывести на экран значение функции z
max(x,m), если x<0
y =
min(x,m), если x≥0
2. Вычислить по формуле и вывести на экран значения b.
3. Ввести три числа x, y, z, удовлетворяющие аксиоме треугольника и, в зависимости от значения введенного k, вывести полученные значения: при k=1 вычислить периметр треугольника, при k=2 – площадь треугольника, при k=3 – угол между сторонами x и y, при k=4 – угол между сторонами y и z, иначе – угол между сторонами x и z.
Вариант №18
1. Даны отрезки [a,b] и [c,d] и точка с координатой х. Вывести на экран сообщение о принадлежности данной точки одному или обоим отрезкам, или она лежит вне отрезков.
2. Вычислить по формуле и вывести на экран значение b.
3. Вычислить остаток от деления целой части выражения lg(y3-a∙b)-1 на 7, в зависимости от его значения, вывести сообщение об одном из дней недели, пронумеровав их от 0 до 6.
Вариант №19
1. Ввести два действительных числа x и y; если наименьшее из них отрицательно, то заменить его нулем, в противном случае – единицей; вывести полученное значение.
2. Вычислить по формуле и вывести на экран значение b.
3. Ввести три числа а, b, с, удовлетворяющие аксиоме треугольника и, в зависимости от значения введенного n, вывести полученные значения: при n=1 вычислить угол между сторонами а и b, при n=2 – площадь треугольника, иначе – периметр треугольника.
Вариант №20
1. Вывести информацию о существовании треугольника с введенными сторонами a, b, c; если он существует, то определить и вывести информацию: является ли треугольник равносторонним, равнобедренным или разносторонним.
2. Вычислить по формуле и вывести на экран значение a.
3. Вычислить остаток от деления целого выражения (с+d)ּ(k-m) на 6; при остатке, равном 0, вывести значение выражения, при нечетном остатке вывести «нечетное число», при четном – «четное число».
Вариант №21
1. Ввести действительные числа x, y; если x и y отрицательные, то х присвоить модуль х; если одно из них – отрицательное, то увеличить у на 0.5; если оба числа – положительные, то увеличить х в 10 раз; вывести измененное значение.
2. Вычислить по формуле и вывести на экран значение a.
3. По введенному номеру студенческого билета вывести фамилию студента.
Вариант №22
1. Даны три действительных числа х, у, z и отрезок [a,b]; заменить на нули те числа, которые принадлежат отрезку и на единицы – остальные; вывести значения х, у, z.
2. Вычислить по формуле и вывести на экран значение b.
3. Вычислить остаток от деления целой части выражения sin(3x2+1)∙20 на 7 и, в зависимости от величины остатка, вывести сообщение об одном из дней недели, пронумеровав их от 0 до 6.
Вариант №23
1. Ввести координаты точки x, y; присвоить z=1, если точка принадлежит окружности с введенным радиусом r и центром в начале координат, и присвоить z=0 – в противном случае.
2. Вычислить по формуле и вывести на экран значение b.
3. Вычислить остаток от деления целого выражения 3∙kּ(2∙a+b) на 5 и вывести на экран значения остатка и выражения: если остаток равен 0, то значение выражения оставить без изменения, если – 1 или 2, то уменьшить на величину остатка, если – 3, то увеличить на величину остатка; если – 4, то увеличить в 2 раза.
Вариант №24
1. Вычислить и вывести на экран значения функции f(x), если при введенном х≥1 f(x)=e-x+x, при 0<х<1 f(x)=sin(2x), иначе f(x)=1.
2. Вычислить по формуле и вывести на экран значение a.
3. По введенному номеру месяца (1,2,3,4,5,6,7,8,9,10,11,12) вывести его название.
Вариант №25
1. Вывести минимальное и максимальное значение из трех введенных чисел х1, х2, х3.
2. Вычислить по формуле и вывести на экран значение a.
3. Вычислить остаток от деления целой части выражения cos(a-b)∙c на 3 и вывести на экран значения остатка и выражения: если остаток равен 0, то значение выражения заменить на его целую часть, если остаток равен 1 – заменить на его дробную часть, в остальных случаях – оставить без изменения.
Лабораторная работа №7
Тема