Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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; просмотров: 474; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.191.238.6 (0.008 с.) |