- -
Информатика
Лабораторная работа 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, и какие действия они выполняют?
Файл: Создан: 16.10.1998 Модифицирован: 19.08.2007 Автор: Шонин В.А.
1>
Достарыңызбен бөлісу: |