Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Задание к лабораторной работе




 

Составьте программу для вычисления функции b=f(x,y,z), где z=j(x,y). Вид функции и исходные данные приведены в таблице 14.

Таблица 14

Вар. f(x,y,z) j(x,y) x y
  e|x-y|(tg2z)x -4,52 0,75
  2,87 0,84
  1,82 18,25
  5,34 3,85
  -2,75 -1,42
  1,54 -3,26
  1,82 18,23
  -0,85 1,25
  0,12 -8,75
  1,58 3,42
  0,42 -0,87
  -15,24 4,67
  6,55 -2,78
  0,84 0,65
  1,12 0,87
  0,27 4,38
  6,35 7,32
  0,42 1,23
  4,32 -0,54
  0,83 2,38
  -0,93 -0,25
  3,25 4,12
  -0,72 -1,42
  3,98 -1,63
  2sin(px+y) 3,91 -0,51
  -0,62 5,54
  -4,58 2,32
  -3,44 5,28
  5,48 2,25

Лабораторная работа №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 - индивидуальное задание

Вар. f(x) f1(z) f2(z) f3(z) c
  x2+8x-6 z3-3z2 zln(z) Ez-e-z 5,1
  X3lnx2 e-z+3z ln|z| Cosz+z2 5,4
  X1/4+sinx 2z-ln|z| tgz-2z Sin3z 4,1
  X4+2sinx2 sinz+tgz cos3z+3/z Z2+lnz2 3,2
  Cosx3 z2+2sinz lnz+2z Ez+1/z 4,7
  Sinx+2lnx 2z+tgz lnz4+2z Cosz+2z 1,3
  Sin4x2 sinz2-z3 2sinz2 1,6
  Tgx-4x3 1/cos2z z-ln|z| Z3+sinz 1,5
  Lnx-e2x z2+ez cos4z/z3 Tg(z+1/z) 2,7
  2x-lnx 2cosz+1/z z3-2ln|z| Tg2z+z3 3,8
  3x-sinx 3tg3z 1/cos4z E2z+sinz 1,6
  4x2+cosx 3z/sinz z2+2sinz 2z-ln|z| 2,4
  +cosx z2+lnz2 ez+1/z Z4-sinz 4,1
  x1/3+2x ln|cosz| 2z+ez Tg2z 2,5
  Sin4x+2x z5/sin2z e-2z+tgz Cos4z+z1/3 3,2
  Tg4x+1/x z/sinz1/5 2ztg3z Z +8 1,4
  Ln(1/x) zsin2z-8 lnsinz0,8 -2,5 2,3
  e2x+4x cos(p /4)-z 1/(ez+1) arctg(z+3) 4,1
  Cosx4+x/2 sin(z+30°) lncos(pz/6) e-tg(z-2) 3,2
  2tgx+ex z+cos(p +z) z3+z1/3 Z4-lnz 2,8
  2lnx2 arccosz2 sinz+lncosz Z3-sin(p x) 1,7
  Cos2x/3 z2+ln(z+4) e(z-5)+sinz 2,2
  1/tgx4 e-4z+2+z2 cos(z1/3+2) Sin(p +4z2) 5,6
  e2x-x3 tg(z2+ ) ln(sinz+5) Z4+z2-cosz 3,4
  Tgx-2lnx arcsin(z+3) z3-z2+cosz Ln(z3+4z) 2,5
  Cosx4+x/2 lnsinz0,8 cos(p /4)-z Z/sinz1/5 3,7
  Ln(x+x2) 2ztg3z sin(p +4z2) Z3+z1/3 2,6
  Cosx4+2x tg(z+1/z) e2z+sinz Cosz1/5 3,8
  Sin4x+2x z2+lnz2 cos3z+3/z Cos(p /4)-z 5,8
  3ln(x2+5) z4-lnz sinz+tgz Sinz+lncosz 3,5

 

Контрольные вопросы для подготовки и самостоятельной работы

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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...