Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Топ:
Комплексной системы оценки состояния охраны труда на производственном объекте (КСОТ-П): Цели и задачи Комплексной системы оценки состояния охраны труда и определению факторов рисков по охране труда...
Процедура выполнения команд. Рабочий цикл процессора: Функционирование процессора в основном состоит из повторяющихся рабочих циклов, каждый из которых соответствует...
Марксистская теория происхождения государства: По мнению Маркса и Энгельса, в основе развития общества, происходящих в нем изменений лежит...
Интересное:
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Национальное богатство страны и его составляющие: для оценки элементов национального богатства используются...
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
(2 часа)
Цель работы: Научиться писать программы, используя операторы переключения switch в паре с оператором break, оператор перехода goto.
Теоретические сведения
Оператор варианта switch
Оператор выбора варианта switch заменяет несколько операторов if…else. Обычно оператор switch используется тогда, когда требуется выбор и выполнение только одной последовательности операторов из нескольких возможных, хотя возможности оператора switch не ограничиваются этим случаем.
Синтаксис оператора switch:
switch (<выражение>)
{
case <константное_выражение_1>:
<оператор 1>
[case <константное_выражение_2>:
<оператор 2>]
...
[case <константное_выражение_n>
<оператор n>]
[default:
<оператор>]
}
После вычисления <выражения> типа int в ( в заголовке оператора switch) результат сравнивается последовательно с <константными_выражениями>, стоящими после зарезервированных слов case, которые вместе с <константными_выражениями> являются внутренними метками оператора, После <константных_выражений> обязательно ставится признак метки ":". Сравнение значения <выражения> начинается с самого верхнего <константного_выражения> и далее, пока не будет установлено их соответствие. Тогда выполняются операторы после соответствующей метки case, на которую передается управление. Для того чтобы прекратить последовательное выполнение операторов и выйти из оператора switch, необходимо после группы операторов, принадлежащих выбранному case, поставить оператор break. Если break отсутствует, то последовательно выполняются все операторы, а метки не учитываются.
Последовательность операторов, стоящих после слова default (умолчание),выполняется тогда, когда значение <выражения> не совпадает ни с одним < константным_выражением>. Пример показывает возможности оператора switch. Функция error_message выводит одно из трех сообщений в зависимости от значения, когда ошибки (параметр error_code).
Пример
void error_message(int error_code)
{ switch(error_code)
{ case 1: printf("\n сообщение 1"); break;
case 2: printf("\n сообщение 2"); break;
case 3: printf("\n сообщение 3"); break;
default: printf("\n неверный код ошибки");
}
}
Пример
/* ЗАНЯТИЕ N 5
Выполнил студент группы......... Петров Ю.В.
Применение операторов if, switch, тернарной операции (?:)
на примере простого калькулятора. Более сложные условия
для оператора switch приведены в тексте программы */
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main(void)
{ float a,b,rez;
int s,p,h;
char oper, flag=' ';
clrscr();
printf("\n Введите через пробел два числа: ");
scanf(" %f %f ", &a, &b);
printf(" Введите знак операции (+ - * /): ");
oper1: oper=getche();
switch(oper)
{ case '+': rez=a+b; break;
case '-': rez=a-b; break;
case '*': rez=a*b; break;
case '/': rez=a/b; break;
default: printf("\n Повторите ввод знака: ");
goto oper1;
}
printf("\n Результат операции: %5.2f\n",rez);
oper2: printf("\n Введите цифру в интервале (-9...+9): ");
scanf("%d",&s); //Условия для оператора switch:
if(s<0) //если s=0, то - a++, p++, h++
{ s=abs(s); //если s=1, то - p++, h++
flag='-'; //если s=2, то - h++
} //если s=3, то - a--
else flag=' '; //если s=4, то - p--
if(s<=9) //если s=5, то - h--
//если s=6..7, то - a=1, p=1, h=1
switch(s) //если s=8, то - a=0, p=0, h=0
{case 0: a++;
case 1: p++;
case 2: printf("\tВы ввели %c%d",flag,s); h++; break;
case 3: printf("\tВы ввели %c%d",flag,s); a--; break;
case 4: printf("\tВы ввели %c%d",flag,s); p--; break;
case 5: printf("\tВы ввели %c%d",flag,s); h--; break;
case 6: case 7: printf("\tВы ввели %c%d",flag,s);
a=1; p=1; h=1; break;
case 8: printf("\tВы ввели %c%d",flag,s);
a=0; p=0; h=0; break;
default: printf("\tВы ввели %c%d \n\
на границе интервала",flag,s);
goto oper2;
}
else { printf("\tВы ввели число вне интервала (-9...+9)\n");
goto oper2;
}
printf("\n Результат switch: a=%5.2f p=%2d h=%2d\n",a,p,h);
getch();
if (p==0) {b=10; a=10;}
else {b+=b/p; a+=a/p;}
printf("\n Результаты вычислений: a=%5.2f b=%5.2f",a,b);
rez=(b<a)?b:a;
printf("\n Результат тернарной операции: res=%5.2f",rez);
getch();
return 0;
}
/*Введите через пробел два числа: 54 32
Введите знак операции (+ - * /): /
Результат операции: 1.69
Введите цифру в интервале (-9...+9): -9
Вы ввели -9 на границе интервала
Введите цифру в интервале (-9...+9): -6
Вы ввели -6
Результат switch: a= 1.00 p= 1 h= 1
Результаты вычислений: a= 2.00 b=64.00
Результат тернарной операции: res= 2.00 */
Ход работы
6 В соответствии с индивидуальным заданием разработать программу с применением операторов ветвления, выбора варианта, разрыва, перехода (при составлении программы использовать операторы if…else, switch, break, goto, операцию (?:) в двух-трех вариантах).
7 Набрать программу и устранить ошибки.
8 Изучить работу операторов, различные возможности их применения.
9 Получить результаты.
10 Оформить отчет и сделать выводы по работе, изучив контрольные вопросы по теме.
Задание к лабораторной работе
Используя оператор case, составьте программу для решения следующей задачи.
Вариант mn. Вычислите таблицу значений функции

для целочисленных значений аргумента x из интервала [Хн,Хк]. Множества Х1,Х2,Х3,Х4 и функции f1,f2,f3,f4 заданы в таблицах 5,6.
Таблица 5
| m | Xн | Xк | X1 | X2 | X3 | X4 |
| -10 | нечетные числа из интервала [6,12] | четные числа из интервала [6,12] | [-2,5] | остальные числа | ||
| четные числа из интервала [10,20] | нечетные числа из интервала [10,20] | [1,8] | остальные числа | |||
| числа, кратные 3 из интервала [10,20] | числа, некратные 3 из интервала [10,20] | [2,5] и [21,24] | остальные числа |
Таблица 6
| n | f1(x) | f2(x) | f3(x) | f4(x) |
| px2+sinx | 10x3-tg(x/5) | cospx | e-x/4 | |
| ln2(x2+1,5) | e-2x | sinpx | arctg(3x) | |
| e2x-5 | cos2(px) | ln(x2+2,5) | arcsin(x/30 | |
| arccos(x/35) | e2x-10 | ln2(3x+1) | sin(2px) | |
| e-x/10 | arctg(4x) |
| |8x3-20| | |
| tg2(x/5) | 2sin(x/p) | ex+2 | |
| e2x-15 |
| ln|x+1,5| | sin3(x2) | |
| 5e-x | sin(px2/2) |
| arctg(x/3) | |
| psin(px/3) | ex/10+2 |
| cos2|x| | |
| ln(x3+1,8) | sin(3x+p) | x2+5x |
Лабораторная работа №9
Операции С, их приоритеты и использование.
Преобразование типов
(4 часа)
Цель работы: Изучить основные логические, арифметические и другие операции С, научиться правильно составлять выражения С, изучить приоритеты операций С, научиться использовать преобразование типов.
Теоретические сведения
Язык С имеет мощную арифметическую и логическую основу, которая позволяет быстро, компактно и эффективно писать код программы. В С разработано множество базовых арифметических и логических операций, а также функции библиотеки математической поддержки языка. Операндами операций могут быть выражения определённых видов, зависящих от операции. В простейшем случае операндами являются переменные. Переменные, прежде чем они будут использованы, должны быть объявлены с определённым спецификатором типа.
Таблица 6.1 - допустимые операции над переменными
| АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ | ||
| Операция | Пояснение | Пример |
| * | Умножение | A=b*c; |
| / | Деление (для целых – нацело) | a=b/c; |
| % | Остаток от деления (для целых) | a=b%c; |
| <операция x> = + =; - =; * =; / =; % = | составное присваивание Изменить и заменить | a+=3; или a=a+3; a%=c; или a=a%c; |
| ++ | Инкремент(увеличить на 1) | с++; или с=с+1; + + а |
| -- | Декремент(уменьшить на 1) | с--; или с=с-1; - - а |
| + | Бинарный плюс (сложение) | A=b+c; |
| - | Бинарный минус (вычитание) | A=b-c; |
| ЛОГИЧЕСКИЕ ОПЕРАЦИИ | ||
| Операция | Пояснение | Пример |
| && | "И" | a&&b |
| || | "ИЛИ" | a||b |
| ! | "НЕ" | !a |
| == | "РАВНО" | a= =b |
| != | "НЕ РАВНО" | a!=b |
| > | "БОЛЬШЕ" | a>b |
| >= | "БОЛЬШЕ ИЛИ РАВНО" | a>=b |
| < | "МЕНЬШЕ" | a<b |
| <= | "МЕНЬШЕ ИЛИ РАВНО" | a<=b |
| ПОБИТОВЫЕ ОПЕРАЦИИ (ПОРАЗРЯДНЫЕ) | ||
| Операция | Пояснение | Пример |
| & | “И” (and) | 1&1=1; 1&0=0;0&0=0; |
| | | “ИЛИ” (or) | 1 | 1=1; 1 | 0 =1; 0 | 0=0; |
| ^ | “ИСКЛЮЧАЮЩЕЕ ИЛИ” | (xor) 1^1 = 0; 1 ^ 0=1; 0^0=0; |
| ~ | “ОТРИЦАНИЕ” (not) | ~1=0; ~0=; |
| << | “СДВИГ ВЛЕВО” (shl) | 0001b<<2=0100b; (буква b означает что число двоичное) |
| >> | “СДВИГ ВПРАВО” (shr) | 0010b >> 1=0001b; |
| <операция _х >= | составное присваивание. Изменить и заменить, где <операция _х > может быть: &,|,^,>>,<<. | а&=b или a = &b a^=bилиa = a^b a<<=bили a<<b |
|
|
|
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
© cyberpedia.su 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!