Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 4.doc
Скачиваний:
3
Добавлен:
18.11.2019
Размер:
2.26 Mб
Скачать

Лабораторная работа №4

Тема: Операторы. Принятие решений. Условные операторы в языке С.

Цель работы: Ознакомиться с логическими конструкциями языка: if, if–else, if–else if–else, оператор условия ?, безусловный оператор перехода goto.

Теоретическая часть

Что такое оператор

Запись действий, которые должен выполнить компьютер, состоит из операторов. При выполнении программы операторы выполняются один за другим, если только оператор не является оператором управления, который может изменить последовательное выполнение программы.

Различают операторы объявления имен, операторы управления и операторы-выражения.

Операторы-выражения

Выражения мы рассматривали в предыдущей работе. Выражение, после которого стоит точка с запятой, – это оператор-выражение. Его смысл состоит в том, что компьютер должен выполнить все действия, записанные в данном выражении, иначе говоря, вычислить выражение. Чаще всего в операторе-выражении стоит операция присваивания или вызов функции. Операторы выполняются последовательно, и все изменения значений переменных, сделанные в предыдущем операторе, используются в последующих.

a = 1;

b = 3;

m = max(a, b);

Переменной a присваивается значение 1, переменной b – значение 3. Затем вызывается функция max с параметрами 1 и 3, и ее результат присваивается переменной m.

Как мы уже отмечали, присваивание – необязательная операция в операторе-выражении. Следующие операторы тоже вполне корректны:

x + y – 12; // сложить значения x и y и

// затем вычесть 12

func(d, 12, x); // вызвать функцию func с

// заданными параметрами

Объявления имен

Эти операторы объявляют имена, т.е. делают их известными программе. Все идентификаторы или имена, используемые в программе на языке Си, должны быть объявлены.

Оператор объявления состоит из названия типа и объявляемого имени:

int x; // объявить целую переменную x

double f; // объявить переменную f типа

// double

const float pi = 3.1415;

// объявить константу pi типа float

// со значением 3.1415

Оператор объявления заканчивается точкой с запятой.

Операторы управления

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

В языке программирования С используются несколько конструкций для управления:

  • оператор if;

  • оператор switch;

  • условный оператор ? (оператор условия) [4.1].

Для прерывания программного цикла при некотором условии применяется утверждение (оператор) break, для продолжения итераций цикла при выполнении некоторых условий применяется утверждение (оператор) continue, для выхода из функции при выполнении некоторых условий применяется оператор return, для перехода к заданному месту программы применяется оператор goto, хотя считается, что в программировании не существует ситуаций, в которых нельзя обойтись без оператора goto [2; 3]. Утверждение break применяется также в теле оператора switch.

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

Условные операторы позволяют выбрать один из вариантов выполнения действий в зависимости от каких-либо условий.

4.1. Оператор if

Общая форма записи оператора if:

if (выражение) оператор

В операторе if используется результат вычисления условия, заключенного в круглые скобки, на основе которого принимается решение. Результат вычисления условия выражение может быть арифметическим или логическим. Если результат выполнения условия выражение будет истинным, т.е. отличаться от 0, то возможно выполнить несколько утверждений типа оператор. Для этого следует использовать фигурные скобки (блок), например:

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

{

оператор1

оператор2

...

}

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

Например, можно записать:

if (x < 0) x = -x;

ab = x;

В данном примере оператор x = -x; выполняется только в том случае, если значение переменной x было отрицательным. Присваивание переменной ab выполняется в любом случае. Таким образом, приведенный фрагмент программы изменит значение переменной x на его абсолютное значение и присвоит переменной ab новое значение x.

Если в случае истинности условия необходимо выполнить несколько операторов, их можно заключить в фигурные скобки (поместить в блок):

if (x < 0)

{

x = -x;

printf("Изменить значение x на

противоположное по знаку/n";

}

ab = x;

Теперь если x отрицательно, то не только его значение изменится на противоположное, но и будет выведено соответствующее сообщение. Фактически, заключая несколько операторов в фигурные скобки, мы сделали из них один сложный оператор или блок. Прием заключения нескольких операторов в блок работает везде, где нужно поместить несколько операторов вместо одного.