![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Условная тернарная операция (?:)Содержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Синтаксис данной операции следующий: <выражение1>?<выражение2>: <выражение3>; Результат операции будет равен <выражению2> в том случае, если <выражение1> истинно, в противном случае результат будет равен <выражению3>. Ниже показан пример реализации данной конструкции. int result = (i<j)? i: j; // Переменной result присваивается наименьшее значение // (i или j), если i < j то i, иначе.
Оператор варианта 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 */ Ход работы 1 В соответствии с индивидуальным заданием разработать программу с применением операторов ветвления, выбора варианта, разрыва, перехода (при составлении программы использовать операторы if…else, switch, break, goto, операцию (?:) в двух-трех вариантах).
2 Набрать программу и устранить ошибки. 3 Изучить работу операторов, различные возможности их применения. 4 Получить результаты. 5 Оформить отчет и сделать выводы по работе, изучив контрольные вопросы по теме.
Требования к содержанию отчёта приведены в лабораторной работе №1.
Индивидуальное задание к лабораторной работе №5 Вычислить значение функции y = f(x), где ì f1(z), если z < 0; x = í f2(z), если 0 £ z £ 8; î f3(z), если z > 8; z = cos(с). Значения функций приведены в таблице 5.1.
Таблица 5.1 - индивидуальное задание
Контрольные вопросы для подготовки и самостоятельной работы 1 Какой тип должно иметь <выражение> в операторах if и switch? 2 Можно ли использовать оператор goto для передачи управления на else, метку case…; default:? 3 С помощью каких операторов можно досрочно завершить выполнение операторов if…else, switch? 4 Можно ли использовать в качестве <выражения> в операторе switch указатель? 5 Можно ли использовать в качестве константного <выражения> в операторе switch константу? 6 Обязательно ли использовать оператор break в операторе switch? Каково его действие? Что происходит при отсутствии break? 7 Какому из вложенных операторов if относится else при наличии и отсутствии операторных скобок ¢¢{¢¢ и ¢¢}¢¢. 8 Какие типы операндов допустимы в условной операции (?:)? 9 Объясните работу операторов в приведенных примерах. 10 Как объявить и использовать метки в программе? Лабораторная работа №6 Операции С, их приоритеты и использование. (4 часа) Цель работы: Изучить основные логические, арифметические и другие операции С, научиться правильно составлять выражения С, изучить приоритеты операций С, научиться использовать преобразование типов. Теоретические сведения Язык С имеет мощную арифметическую и логическую основу, которая позволяет быстро, компактно и эффективно писать код программы. В С разработано множество базовых арифметических и логических операций, а также функции библиотеки математической поддержки языка. Операндами операций могут быть выражения определённых видов, зависящих от операции. В простейшем случае операндами являются переменные. Переменные, прежде чем они будут использованы, должны быть объявлены с определённым спецификатором типа.
Таблица 6.1 - допустимые операции над переменными
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-04-26; просмотров: 478; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.220.160.162 (0.008 с.) |