Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
khuy.docx
Скачиваний:
4
Добавлен:
03.03.2016
Размер:
76.43 Кб
Скачать

20. Логические операции

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

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

Логические операции не вызывают стандартных арифметических преобразований. Они оценивают каждый операнд с точки зрения его эквивалентности нулю. Результатом логической операции является 0 или 1, тип результата int.

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

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

Операции отношения в языке С.     Язык С имеет ровно шесть операции отношения. обычно относительно двух величин, например, величины А и величины В, можно с определенностью сказать, что друг по отношению к другу они: или равны, то есть находятся в отношении равенства А=В, или не равны, то есть находятся в отношениях неравенства А не = В. Но тогда в последнем случае можно уточнять и думать уже о том, какая из этих двух величин больше и какая меньше. Тут может быть одна из двух возможностей: либо А<В, либо А>В. Иногда еще рассматривают такое отношение, в котором есть доля неопределенности, например, когда говорят, что А<=В, либо, когда А>=В. Сведем эти соотношения между двумя величинами в одну таблицу. Получим следующее:

  • "<" - меньше.

  • "<=" - меньше или равно.

  • ">" - больше.

  • ">=" - больше или равно.

  • "==" - равно.

  • "!=" - не равно.

    Таким образом, А по отношению к В может быть: либо меньше, либо меньше или равно; либо больше, либо больше или равно; либо равно, либо не равно. Другого нам просто не дано.      Операции отношения используются в условных выражениях. Например, простейшие условия, которые не содержат логических операций, это следующие: "a<0", "1998>2003", "b==B", "C!=D" и так далее.      Следует отметить, что относительно каждого условия решается вопрос: истинно оно или нет. В языке С отсутствует логический (boolean) тип. Поэтому при анализе истинности выражения, содержащего операции отношения, принято находить целочисленное арифметическое значение выражения. При этом считается, что истинность, то есть "true" соответствует ненулевому значению выражения. Обычно для "true" принято значение 1. Тогда 0 принимается за "false", то есть ложь. 

21. Составной оператор

Составной оператор представляет собой несколько операторов и объявлений, заключенных в фигурные скобки:

{ [oбъявление] : оператор; [оператор]; : }

Заметим, что в конце составного оператора точка с запятой не ставится.

Выполнение составного оператора заключается в последовательном выполнении составляющих его операторов.

Пример:

int main () { int q,b; double t,d; : if (...) { int e,g; double f,q; : } : return (0); }

Переменные e,g,f,q будут уничтожены после выполнения составного оператора. Отметим, что переменная q является локальной в составном операторе, т.е. она никоим образом не связана с переменной q объявленной в начале функции main с типом int. Отметим также, что выражение стоящее после return может быть заключено в круглые скобки, хотя наличие последних необязательно.

Составной оператор применяется в тех случаях, когда синтаксис языка Паскаль допускает использование только одного оператора, в то время как алгоритм требует задания некоторой последовательности действий. В Паскале все управляющие структуры (операторы) не различают простой и составной оператор: там где стоит простой оператор, можно поставить и составной.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]