- -
Информатика
Лабораторная работа 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. Порядок выполнения работы
-
Составить программу для вычисления суммы ряда или полинома с точностью e=10-5, с заданными ограничениями на область значения аргумента и при указанных значениях аргументов по одному из вариантов, приведенных в следующей таблице. Значения аргумента, точности и результат вывести на экран дисплея.
Введите программу с клавиатуры в среде Dev C++.
Выполните отладку программы и запустите ее на выполнение.
Покажите преподавателю программу и результаты ее работы и скопируйте текст программы и результат работы программы в окно текстового редактора Блокнот с заголовками "Текст программы имя-программы" и "Результат работы программы имя-программы".
Скопируйте полученный в окне текстового редактора Блокнот документ на свою дискету или флэш-карту.
5. Содержание отчета
В отчете должно быть представлено содержимое созданного вами документа.
6. Вопросы для самоконтроля
Какие операции отношения и логические операции используются в C, и какова их приоритетность по отношению друг к другу и логическим операциям?
Как представляются логические значение «истина» и «ложь» в C?
Как записывается и как работает условный оператор С?
Как записывается и как работает оператор пошагового выполнения цикла в C?
Как работают циклы по условию?
В чем отличие цикла while от цикла do...while?
Какие операторы перехода определены в C, и какие действия они выполняют?
Файл:
143104.doc Создан:
16.10.1998 Модифицирован:
19.08.2007 Автор:
Шонин В.А.
</1>