https://electroinfo.net

girniy.ru 1

- -

Информатика

Лабораторная работа 1-12


Лабораторная работа 1-12


Условные операторы и операторы цикла в С


1. Цель работы


Целью работы является разработка, отладка и выполнение программы на С с использованием условных операторов и операторов цикла.

2. Состав рабочего места


2.1. Оборудование: IBM-совместимый персональный компьютер (ПК).

2.2. Программное обеспечение: операционная система Windows и интегрированная оболочка Dev C ++.

3. Краткие теоретические сведения

3.1. Операции отношения и логические операции


Операции отношения сравнивают первый операнд со вторым. В C имеются следующие операции отношения:

Операция

Проверяемое соотношение

Операция

Проверяемое соотношение

<

Первый операнд меньше второго.

>=

Первый операнд больше или равен второму.

>

Первый операнд больше второго.

==

Первый операнд равен второму.

<=


Первый операнд меньше или равен второму.

!=

Первый операнд не равен второму.


В языке C нет логического типа данных, и результат сравнения имеет тип int. Если результат сравнения является ложным, то ему присваивается значение 0, иначе – 1. В C любое число или выражение, имеющее тип int, может трактоваться как логическое значение, при этом значение 0 трактуется как ложь, а все остальные значения трактуются как истина.

Операнды операции сравнения могут числовыми или символьными (в последнем случае сравниваются числовые коды символов). Операнды в операциях отношения не могут быть строками (для сравнения строк используются функции стандартной библиотеки).

Приоритет операций отношения ниже, чем арифметических операций. Среди операций отношения операции ">", "<", ">=" и "<=" имеют более высокий приоритет, чем операции "==" и "!=".

Логические операции выполняют над своими операндами логические функции "И", "ИЛИ" и "НЕ". Результат логической операции так же, как и операции отношения, имеет тип int и имеет значение 1 для логического значения «истина» и 0 – для логического значения «ложь».

Операция "НЕ" (отрицание) обозначается в C символом восклицательный знак – "!". Эта операция выполняется над одним операндом. Результатом выполнения операция отрицания будет 1, если операнд имеет значение «ложь» (равен 0) и 0, если операнд имеет значение «истина» (ненулевое значение).


Операции "И" и "ИЛИ" выполняются над двумя операндами.

Операция "И" (логическое умножение) обозначается с помощью двух символов амперсанта – "&&". Результат этой операции равен 1 только в том случае, если оба операнда имеют ненулевое значение, в остальных случаях результат операции равен 0.

Операция "ИЛИ" (логическое сложение) обозначается с помощью двух символов вертикальной черты – "||". Операция вырабатывает значение 1, если хотя бы один из операндов имеет ненулевое значение и 0 – в противном случае. Типы первого и второго операнда могут отличаться. Логические операции вычисляют операнды и сравнивают их с нулем.

Операция "!" ("НЕ") имеет тот же приоритет, что и операции инкремента ("++") и декремента ("--"), т.е. выше, чем у арифметических операций. Приоритет операций "И" ("&&") и "ИЛИ" ("||") ниже, чем приоритет операций отношения, причем приоритет операции "И" ("&&") как логического умножения выше, чем приоритет операции "ИЛИ" ("||") как логического сложения. Изменение приоритета выполнения операций производится с помощью скобок.

3.2. Условный оператор


Условный оператор if...else выполняет оператор или блок операторов в зависимости от значения выражения в условии. Оператор имеет следующий формат:


if(выражение-1)

блок-операторов-1

else if (выражение-2)


блок-операторов-2

...

else

блок-операторов-n


где:

выражение-1 и выражение-2 – любые выражения, которые могут быть оценены как «истина» или «ложь»;

блок-операторов-1, блок-операторов-2 и блок-операторов-n – один оператор или несколько операторов – блок операторов (блок операторов должен быть заключен в фигурные скобки).

Сначала вычисляется выражение-1. Если значение выражения – ненулевое («истина»), то выполняется блок-операторов-1 и происходит переход к выполнению оператора, следующего за условным оператором. Если выражение-1 равно 0 («ложь»), производится проверка выражения-2, и, если оно истинно, выполняется блок-операторов-2 и выполнение условного оператора заканчивается и т. д. Блок-операторов-n выполняется, когда все предыдущие условия не выполняются. Операторы else if и else могут быть опущены. В этом случае, если значение выражения-1 – «ложь», блок-операторов-1 не выполняется и сразу выполняется оператор, следующий в программе за оператором if.

3.3. Операторы цикла


В С существует три вида операторов цикла:

  • оператор пошагового выполнения цикла for;

  • оператор выполнения цикла по условию с проверкой условия в начале цикла while;

  • оператор выполнения цикла по условию с проверкой условия в конце цикла do...while.

Оператор пошагового выполнения цикла for имеет следующий формат:


for(начальное-выражение; условное-выражение; выражение-приращения)

блок-операторов


Первым шагом при выполнении цикла является вычисление начального-выражения (если оно имеется). Затем блок-операторов, представляющий собой один оператор или несколько операторов, заключенных в фигурные скобки, выполняется до тех пор, пока условное-выражение не будет иметь нулевое значение («ложь»). При выполнении тела цикла может использоваться выражение-приращения (если оно есть).

Любое из трех выражений может отсутствовать, но символы ";" опускать нельзя. При отсутствии начального-выражения и выражения-приращения считается, что их просто нет в данном цикле, при отсутствии условного-выражения, полагается, что его значение – всегда не равно 0 («истина»).


Оператор выполнения цикла по условию while и do...while имеют следующий формат:

while(условное-выражение)

блок-операторов

и

do

блок-операторов

while(условное-выражение);

Блок-операторов – один оператор или несколько операторов – блок операторов (в фигурных скобках) выполняются до тех пока условное-выражение не будет иметь значение 0 («ложь»). Отличие цикла while от цикла do...while в том, что в цикле while значение условного-выражения вычисляется до начала выполнения блока-операторов, а в цикле do...whileпосле, т.е. цикл do...while всегда выполняется хотя бы один раз.

3.4. Операторы перехода


Для досрочного завершения выполнения операторов цикла for, while и do...while, а также оператора switch используется оператор break. Этот оператор вызывает немедленный выход из самого внутреннего из охватывающих его циклов.

Оператор продолжения continue вызывает переход на следующую итерацию в операторах цикла for, while и do...while. При этом операторы тела цикла, следующие за оператором continue, не выполняются. В операторах цикла while и do...while следующая итерация начинается с вычисления условного выражения, а для оператора for – с вычисления выражения приращения, а затем условного выражения.

Оператор перехода goto, имеющий формат:

goto метка;

передает управление оператору в той же функции, помеченному меткой, за которой следует символ ":". Метка представляет собой обычный идентификатор языка С.

Можно войти в блок, тело цикла, условный оператор и оператор-переключатель по метке, однако нельзя передать управление на операторы case или default в теле оператора-переключателя.

Хотя использование оператора goto не считается хорошим стилем в программировании и его по возможности следует избегать, однако в некоторых случаях этот оператор может пригодиться (например при выходе из самого внутреннего из нескольких вложенных циклов за пределы самого внешнего цикла).

4. Порядок выполнения работы

  1. Составить программу для вычисления суммы ряда или полинома с точностью e=10-5, с заданными ограничениями на область значения аргумента и при указанных значениях аргументов по одному из вариантов, приведенных в следующей таблице. Значения аргумента, точности и результат вывести на экран дисплея.


№ варианта

Выражение для ряда или полинома

Допустимая область значений аргумента

Значение

аргумента

1.



x > 0

x=1.5

2.



0 £ x £ 2

x=1.5

3.



x > 0.5

x=1.5

4.


0.1 £ x £ 16


x=2.3

5.



0.1 £ x £ 16

x=2.3

6.



0.1 £ x £ 16

x=1.7

7.



0.2 £ x £ 20

x=1.2

8.



0.1 £ x £ 12

x=1.4

9.



|x| < 1

x=0.58

10.



|x| < 1

x=0.58

11.




|x| < 1

x=0.45

12.



|x| >1, a = p/2 при x>1 и

a = -p/2 при x<-1

x=3.49

13.



|x| < 1

x=0.45

14.



0.1 £ x £ 10

x=1.55

15.



0.1 £ x £ 10

x=1.49

16.



x < 0

x = -3.54

17.



|x| < 1

x=0.71

18.



x > 1

x=2.25

19.



|x| < 1

x=0.54

20.



a > 0

a = 5.12,

x = 3.8

21.



|x| <1 ,

целое m > 0

m = 5,

x = 0.39

22.



|x| <1,

целое m < 0

m = -3,

x = 0.39

23.



|x| < p/2

x = 1.48

24.



0 < |x| < p

x = 2.8

25.



|x| < p/2

x = 0.53

26.



0 < |x| < p

x = 2.8

27.



|x| < 2p

x = 2.93

28.



0 < |x| < p

x = 2.42

29.


a > 0

a = 4.42,

x = 1.4

30.



-1

x = 0.35

31.



0< |x| < p

x = 1.54

32.



0<|x| < p/2

x = 1.24

33.



|x| < 1

x=0.48

34.



x>1

x=1.42

35.

0.1 £ x £ 12


x=1.4



  1. Введите программу с клавиатуры в среде Dev C++.

  2. Выполните отладку программы и запустите ее на выполнение.

  3. Покажите преподавателю программу и результаты ее работы и скопируйте текст программы и результат работы программы в окно текстового редактора Блокнот с заголовками "Текст программы имя-программы" и "Результат работы программы имя-программы".

  4. Скопируйте полученный в окне текстового редактора Блокнот документ на свою дискету или флэш-карту.

5. Содержание отчета


В отчете должно быть представлено содержимое созданного вами документа.

6. Вопросы для самоконтроля


  1. Какие операции отношения и логические операции используются в C, и какова их приоритетность по отношению друг к другу и логическим операциям?

  2. Как представляются логические значение «истина» и «ложь» в C?

  3. Как записывается и как работает условный оператор С?

  4. Как записывается и как работает оператор пошагового выполнения цикла в C?

  5. Как работают циклы по условию?

  6. В чем отличие цикла while от цикла do...while?

  7. Какие операторы перехода определены в C, и какие действия они выполняют?




Файл: 143104.doc Создан: 16.10.1998 Модифицирован: 19.08.2007 Автор: Шонин В.А.

</1>