Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Оператор множественного выбора switch



Общий вид:

switch (выражение)

{

case метка1: оператор1

case метка2: оператор2

default: операторЗ

}

 

Управление программой переходит к оператору, имеющему значение выражения в качестве метки. Затем программа продолжает выполняться, проходя остальные операторы, если снова не произойдет переключение направления. И выражение, и метки должны иметь целые значения (включая тип char), а метки быть либо константами, либо выражениями, состоящими только из констант. Если ни одна метка не соответствует значению выражения, управление передается оператору, помеченному default, если он существует. В ином случае управление передается оператору, следующему за оператором default.

Можно записывать более двух помеченных операторов, а вариант default не обязателен.

Пример: switch (number)

{

case 4: printf(" \n Хороший выбор! " ); break;

case 5: printf(" \n Неплохой выбор" ); break;

default: printf (" \n Плохой выбор" );

}

Наличие операторов break позволяет прекратить выполнение оператора switch и перейти к выполнению операторов, следующих за ним. Если убрать из примера все операторы break, то при значении number равном 4 на экран будут выданы все три сообщения.

Иногда, однако, это бывает полезным:

choice=getchar (); // Ввод одиночного символа switch (choice)

{

case 'A':

case 'B': printf(" \n Заглавная буква! " ); break;

case 'a':

case 'b': printf (" \n Строчная буква! " ); break;

}

Директива препроцессора #define

Директива #define необходима для задания символических констант и макроопределений.

Пример:

#include < stdio.h> #define TWO 2 //Константа #define MSG " \n Конец работы\ программы" // Обратная косая черта продолжает определение на следующую // строку

#define SQUARE(a) ((a)*(a)) //Макроопределение с аргументом #define PX printf(" \n Значение переменной %d", x); main ()

{

int x=TWO; PX

x=SQUARE(x);

PX

printf (MSG);

}

Препроцессор заменит в тексте программы все вхождения TWO, MSG, SQUARE(x), PX на 2, " \n Конец работы\ программы", ((x)*(x)), printf(" \n Значение переменной %d", x).

 

Порядок выполнения работы

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

Для каждого варианта решить задачу с использованием конструкции if или if-else, а затем - с использованием конструкции switch.

 

Задания

Составить алгоритмы решения следующих задач:

Варианты Задания
А Y = (x2+0.5)3 + arctg(x2 + 0.5) /3x + / cos(x2+0.5) + lg(x2 + 0.5)4
Б ì at2lnt, если 1≤ t ≤ 2 Y = í 1, если t < 1 î eatcosbt, если t > 2
В Известна длина ребра куба а. Найти длину диагонали основания, площадь боковой поверхности и объем куба.
Г Даны два действительных числа х, у (х у). Если первое число больше второго, выдать признак N = 100, в противном случае N = 0.
А У= +cos / (2z +1, 3) – 1, 5z + ln(z2 + 1) / (z +3, 2) – e-z -1
Б ì px2 – 7/(x2 +1), если x < 1, 3 Y = í ax3 + 7 , если x = 1, 3 î lg(x +7 ), если x > 1, 3
В По двум известным катетам найти гипотенузу, радиус описанной окружности и площадь прямоугольного треугольника.
Г Даны три числа, возвести в квадрат те из них, значения которых неотрицательны, отрицательные числа оставить без изменения.
  А L = abc + 3, 2sinx + e-sinx –1/ abc + e-2abc +lg|abcd|
Б ì ax2 + bx +c, если x < 1, 2 Y = í a/x + , если x = 1, 2 î (a + bx) , если x > 1, 2
В Даны два числа. Найти среднее арифметическое кубов и среднее геометрическое модулей этих чисел.
Г Даны два числа а и в. Если а и в отрицательны, то каждое значение заменить его модулем; если отрицательно только одно из них, то оба значения увеличить на 0, 7; если оба значения неотрицательны, то оба значения увеличить в 10 раз.
А М = + 0, 5 arcsin(x3 –1) + e|-1+x|
Б ì 0, если 1≤ t ≤ 2 Y = í at, если t < 1 î eat + t4, если t > 2
В Дана сторона равностороннего треугольника. Найти его площадь.
Г Даны действительные числа а, в, с. Удвоить эти числа, если а≥ в≥ c, заменить их абсолютными значениями, если это не так.
А M = (0, 03x – 1)/3y, где y = |r2 –4| + lg|r2 –4| - 3arcsin(4-r2)/6, 8r
Б ì sin x, если x< -0, 8 Y = í 1/sin x, если -0, 8 ≤ x ≤ 0, 2 î sin x cos x, если x > 0, 2
В Найти площадь кольца, внутренний радиус которого равен r =20, а внешний R заданному числу (R > 20).
Г Даны три действительных числа l, m, n. Выбрать те из них, которые принадлежат интервалу (1; 3).
А M = lg|(y - ) (cos |x| - y) / arccos +1
Б ì 0, если x ≤ 0 Y = í x2 - x, если 0 < x < 1 î x2 – sin px, в остальных случаях
В В равнобедренном треугольнике известны боковая сторона m, основание n. Найти его высоту и площадь.
Г Даны действительные числа x, y, z. Вычислить U = max{x + y + z; xyz}
А M = pqr + 2sin2px + epqr +1 / pqr +ln |pqr|
Б ì 1, 5cos2x, если x < 1 Y = í 1, 8ax, если x = 1 | (x –2)2 +6, если 1< x < 2 î 3 tgx, в остальных случаях
В Найти площадь равнобочной трапеции с основаниями а и в и углом a при большем основании а.
Г Даны действительные числа а, в, с. Вычислить Z = min2 {(a + b + c)/ 2; abc} + 1, 25
А Y = +3, 2 ln / 2, 7 – 0, 03arccos
Б ì x3 , если x > a Y = í x sinax, если x = a î e-axcosax, в остальных случаях
В Даны гипотенуза и катет прямоугольного треугольника. Найти второй катет, радиус вписанной окружности и площадь этого треугольника.
Г Даны три действительных числа. Выбрать те из них, которые принадлежат интервалу (1; 5).
А S = 2, 7 • 10 - 6 + | 1–x2 | + | 1- x2 | 3 / 3, 4 – 1, 5ln |1- x2| / x- – arcsin(x2-1)
Б ì bx -lgbx, если 0 < bx < 1 Y = í 1, если bx = 1 î bx +lgbx, в остальных случаях
В Даны действительные числа x, y, z. Утроить эти числа, если x ≤ y≤ z и заменить их абсолютными значениями, если это не так.
Г Известна длина окружности. Найти площадь круга, ограниченного этой окружностью.
А P = +5, 7lg | / 2, 8 x | - - 0, 08sin
Б ì cos x, если x < 2, 3 Y = í 1, если x = 2, 3 î sin x lg x, в остальных случаях
В Даны три числа. Найти квадрат их среднего арифметического и среднеегеометрическое их модулей.
Г Даны действительные числа x, y, z. Вычислить U = max{(x+y) / z; xyz} +1, 05 yz
А Q = -0, 07arcctg(x2+2) +1, 27lg(x2+2)/(3, 7a-1)x +
Б ì lg (x + 1), если x > 1, 1 Y = í 1, если x < 1, 1 î sin2 , в остальных случаях
В Даны три отличных от нуля числа, возвести в квадрат отрицательные, а положительные оставить без изменения.
Г Даны три действительных числа p, q, r. Выбрать из них те, которые принадлежат интервалу (-1; 3).
1 12 А Y = (1 + x 2 ) 3 + ( 1 – x 2) / сos | x | + + lg x / +arctg (x2+1) – 3e – x – 1
Б ì sin x lg x, если x > 2, 5 Y = í 1, если x = 2, 5 î cos x, в остальных случаях
В Число А составляет 2, 5% от числа В, которое в свою очередь составляет 6% от числа С, равного 216. Найти А и В.
Г Даны действительные числа а, в, с. Найти наименьшее из них: U = min{a, в, c}
А Z = (y3 - 0, 5)3 + arcctg(y3 - 0, 5) / 3y – - /arcsin(y3-0, 5)
Б ì abc, если a < 2, 7 Y = í (b+c)/a, если a = 2, 7 î (2c+b)/a2, в остальных случаях
Найти площадь кольца, внешний радиус которого равен R =23, а внутренний r заданному числу (0< r < R)
Г Если сумма трех попарно различных чисел x, y, z меньше 1, то меньшее из х и у заменить полусуммой у и z, иначе большее из х и z заменить на у4.
А Z= /3y, где у = - arcsin -8, 7x
Б ì a lg x + , если x > 0, 9 Y = í 1, если x = 0, 9 î 2a cos x +3x2, если х < 0, 9
В Даны три числа. Найти куб их среднего арифметического и среднее геометрическое их кубов.
Г Даны три числа l, m, n. Вычислить Z = min3{l+m; m+n; l+n}-0, 07lmn
А U=8m-0, 5n2/3, 8z, где z=lg|3-x2| + /(5, 5+x) + cos2(x2 – 3)
Б ì 3a cos x, если x < 8, 3 Y = í 1/x3, если x = 8, 3 î sin x + lg x, в остальных случаях
В Даны действительные числа а, в, с. Удвоить их квадраты, если a> в> c, и заменить их абсолютными значениями, если это не так.
Г Даны три числа x, y, x. Вычислить U = min2{x+y+z; xyz; x+2, 5yz}
         

 

Контрольные вопросы

1. Как на языке Си можно описать ветвление?

2. Охарактеризуйте арифметические, логические и битовые операции Си.

3. Какие операции знаете на языке Си

4. Что такое оператор множественного выбора

5. Для чего используется директива препроцессора #define

 


ЛАБОРАТОРНАЯ РАБОТА №3


Поделиться:



Последнее изменение этой страницы: 2017-04-12; Просмотров: 508; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.013 с.)
Главная | Случайная страница | Обратная связь