Задание к лабораторной работе
Составьте программу для вычисления функции b=f(x,y,z), где z=j(x,y). Вид функции и исходные данные приведены в таблице 14. Таблица 14
Лабораторная работа №6 Разветвляющийся вычислительный процесс с различными логическими условиями: оператор if... else, условная операция (?:). Цель работы: Изучить реализацию в языке ветвящихся вычислительных процессов. Научиться писать программы, используя операторы: ветвления if...else, переключения switch в паре с оператором break, оператор перехода goto, тернарную условную операцию (?:). Теоретические сведения Условный оператор имеет сокращенную форму: if (выражение_условие) оператор; где в качестве выражения_условия могут использоваться: арифметическое выражение, отношение и логическое выражение. Оператор, включенный в условный, выполняется только в случае истинности (т.е. при ненулевом значении) выраж-ния_условия. Пример: if (х < 0 && х > -10) х=-х: Кроме сокращенной формы, имеется еще и полная форма условного оператора: if (выражение_условие) оператор _1; else оператор _2; Здесь в случае истинности выражения-условия выполняется только оператор_1, при нулевом значении выражения-условия выполняется только оператор_2. Например:
if (x > 0) b =х; Else b=-х; Оператор в сокращенном варианте оператора if, и оператор_1 и оператор 2 в полном операторе if могут быть как отдельными, так и составными операторами. Например, при решении алгебраического уравнения 2-й степени ax2+bx+c=0 действительные корни имеются только в случае, если дискриминант (b2~4ас) неотрицателен. Следующий фрагмент программы иллюстрирует использование условного оператора при определении действительных корней х1, х2 квадратного уравнения: ............... d=b*b - 4*а*с; /* d - дискриминант */ if (d>=0.0) { xl=(-b+sqrt(d))/2/a; х2=(-b-sqrt(d))/2/а; printf("\n Корни: xl=%e, x2=%e", xl, х2); } Else printf("\n Действительные корни отсутствуют."); Во фрагменте предполагается, что переменные d, b, a, xl, х2 - вещественные (типа float либо double). До приведенных операторов переменные а, b, с получили конкретные значения, для которых выполняются вычисления. В условном операторе после if находится составной оператор, после else - только один оператор - вызов функции printf(). При вычислении корней используется библиотечная функция sqrt() из стандартной библиотеки компилятора. Ее прототип находится в заголовочном файле math.h. Операции отношений (сравнения): < меньше, чем (ранг 6);, > больше, чем (ранг 6); <= меньше или равно (ранг 6); >= больше или равно (ранг б); == равно (ранг 7); != не равно (ранг 7). Операнды операций отношений должны быть арифметического типа или могут быть указателями. Результат целочисленный: 0 (ложь) или 1 (истина). Последние две операции (операции сравнения на равенство) имеют более низкий приоритет по сравнению с остальными операциями отношений. Таким образом, выражение (х < В ==А < х) есть 1, когда значение х находится в интервале от А до В и А<В либо х, А, В равны. (Вначале вычисляются х<В и А<х, к результатам применяется операция сравнения на равенство ==.) Логические бинарные операции:
&& - конъюнкция (И) арифметических операндов или отношений (ранг 11. Целочисленный результат 0 (ложь) или 1 (истина); || - дизъюнкция (ИЛИ) арифметических операндов или отношений (ранг 12). Целочисленный результат 0 (ложь) или 1 (истина). (Вспомните о существовании унарной операции отрицания '!'.) Результаты отношений и логических операций: 3<5 равняется 1; 3>5 равняется 0; 3=5 равняется 0; 3!=5 равняется 1; 3!=5 || 3=5 равняется 1; 3+4>5 && 3+5>4 && 4+5>3 равняется 1. Условная трехместная операция (ранг 13). В отличие от унарных и бинарных операций условная тернарная операция используется с тремя операндами. В изображении условной операции применяются два символа '?' и ':' и три выражения-операнда: выражение_1? выражение_2: выражение_3 Первым вычисляется значение выражения_1. Если оно истинно, т.е. не равно нулю, то вычисляется значение выражения_2, которое становится результатом. Если при вычислении выражения_1 получится 0, то в качестве результата берется значение выражения_3. Классический пример: х < 0? -х: х; Выражение возвращает абсолютную величину переменной х. Ход работы 1 В соответствии с индивидуальным заданием разработать программу с применением операторов ветвления, выбора варианта, разрыва, перехода (при составлении программы использовать операторы if…else). 2 Набрать программу и устранить ошибки. 3 Изучить работу операторов, различные возможности их применения. 4 Получить результаты. 5 Оформить отчет и сделать выводы по работе, изучив контрольные вопросы по теме.
Индивидуальное задание к лабораторной работе Вычислить значение функции y = f(x), где ì f1(z), если z < 0; x = í f2(z), если 0 £ z £ 8; î f3(z), если z > 8; z = cos(с). Значения функций приведены в таблице 15.
Таблица 15 - индивидуальное задание
Контрольные вопросы для подготовки и самостоятельной работы 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 Как объявить и использовать метки в программе?
Лабораторная работа 7
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|