Логические операторы в программировании
Команды управления И, ИЛИ, НЕ, их функции, назначение, реализация и применение. Система команд микропроцессора, средства логического преобразования данных. Логические команды, операции и данные. Основные Булевы операторы. Оператор логического И, ИЛИ.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | реферат |
Язык | русский |
Дата добавления | 01.12.2012 |
Размер файла | 22,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Логические операторы в программировании
Программируемые задачи редко бывают просты. Большинство программ содержат ряд циклов, в которых несколько команд повторяются до достижения определенного требования, и различные проверки, определяющие, какие из нескольких действий следует выполнять. Обычным требованием является проверка - должна ли программа завершить выполнение.
Эти требования включают передачу управления по адресу команды, которая не находится непосредственно за выполняемой в текущий момент командой. Передача управления может осуществляться вперед для выполнения новой группы команд или назад для повторения уже выполненных команд.
Некоторые команды могут передавать управление, изменяя нормальную последовательность шагов непосредственной модификацией значения смещения в командном указателе.
Между 1848 и 1850 годами математик Буль озадачил своих современников новой математической логикой. Он ввел операторы (команды управления) И, ИЛИ, НЕ, которые осуществляют связи в логическом высказывании и благодаря этому дают возможность развиться новым высказываниям. Эту формальную логику высказывания называют алгеброй Буля, она и образует основы электронной обработки данных. То есть логика высказывания связана с двоичным представлением информации и обслуживает последнюю.
Достигается это конструированием некоторых схем (например, электрических), с одним или двумя входами и одним выходом, которые бы, реализуя принцип НЕ, всякий раз меняли на выходе сигнал на противоположный -- если приходит на вход 0, то на выходе получается 1, если же приходит 1, то на выходе получается 0. Происходит как бы отрицание (НЕ - тот). Реализуя принцип ИЛИ, сигнал на выходе формируется однотипным (1) при однотипных (11) или разнотипных (01, 10) сигналах на входе, формируется как бы входная всеядность и выходная строгость (диета) -- ИЛИ -тот ИЛИ -этот, а результат всегда один. И наконец реализуя принцип И, сигнал на выходе формируется строго однотипным с обоими сигналами на входе -- И -тот И -этот должны быть одинаковыми (1 и 1 = 1), тогда на выходе тоже будет 1, в ином случае (на входе 1 и 0, 0 и 1, 0 и 0) выходной сигнал становится 0.
Наряду со средствами арифметических вычислений, система команд микропроцессора имеет также средства логического преобразования данных. Под логическими понимаются такие преобразования данных, в основе которых лежат правила формальной логики.
Формальная логика работает на уровне утверждений истинно и ложно. Для микропроцессора это, как правило, означает 1 и 0 соответственно.
Для компьютера язык нулей и единиц является родным, но минимальной единицей данных, с которой работают машинные команды, является байт. Однако на системном уровне часто необходимо иметь возможность работать на предельно низком уровне -- на уровне бит.
К средствам логического преобразования данных относятся логические команды и логические операции.
В связи с последним напомню, что операнд команды ассемблера в общем случае может представлять собой выражение, которое, в свою очередь, является комбинацией операторов и операндов. Среди этих операторов могут быть и операторы, реализующие логические операции над объектами выражения.
Логические данные
Теоретической базой для логической обработки данных является формальная логика.
Существует несколько систем логики. Одна из наиболее известных -- это исчисление высказываний.
Высказывание -- это любое утверждение, о котором можно сказать, что оно либо истинно, либо ложно.
Исчисление высказываний представляет собой совокупность правил, используемых для определения истинности или ложности некоторой комбинации высказываний.
Исчисление высказываний очень гармонично сочетается с принципами работы компьютера и основными методами его программирования. Все аппаратные компоненты компьютера построены на логических микросхемах. Система представления информации в компьютере на самом нижнем уровне основана на понятии бита. Бит, имея всего два состояния: 0 (ложно) и 1 (истинно), -- естественным образом вписывается в исчисление высказываний.
Согласно теории, над высказываниями (над битами) могут выполняться следующие логические операции:
отрицание (логическое НЕ);
логическое сложение (логическое включающее ИЛИ);
логическое умножение (логическое И);
логическое исключающее сложение (логическое исключающее ИЛИ).
отрицание (логическое НЕ) -- логическая операция над одним операндом, результатом которой является величина, обратная значению исходного операнда.
Эта операция однозначно характеризуется следующей таблицей истинности (табл. 1).
Таблица 1. Таблица истинности для логического отрицания
Значение операнда |
0 |
1 |
|
Результат операции |
1 |
0 |
логическое сложение (логическое включающее ИЛИ) -- логическая операция над двумя операндами, результатом которой является “истина” (1), если один или оба операнда имеют значение “истина” (1), и “ложь” (0) -- если оба операнда имеют значение “ложь” (0). Эта операция описывается с помощью следующей таблицы истинности (табл. 2).
Таблица 2. Таблица истинности для логического включающего ИЛИ
Значение операнда 1 |
0 |
0 |
1 |
1 |
|
Значение операнда 2 |
0 |
1 |
0 |
1 |
|
Результат операции |
0 |
1 |
1 |
1 |
логическое умножение (логическое И) -- логическая операция над двумя операндами, результатом которой является “истина” (1) только в том случае, если оба операнда имеют значение “истина” (1). Во всех остальных случаях значение операции “ложь” (0).
Эта операция описывается с помощью следующей таблицы истинности (табл.3).
Таблица 3. Таблица истинности для логического И
Значение операнда 1 |
0 |
0 |
1 |
1 |
|
Значение операнда 2 |
0 |
1 |
0 |
1 |
|
Результат операции |
0 |
0 |
0 |
1 |
логическое исключающее сложение (логическое исключающее ИЛИ) -- логическая операция над двумя операндами, результатом которой является “истина” (1), если только один из двух операндов имеет значение “истина” (1), и ложь (0), если оба операнда имеют значение “ложь” (0) или “истина” (1).
Эта операция описывается с помощью следующей таблицы истинности(табл. 4).
Таблица 4. Таблица истинности для логического исключающего ИЛИ
Значение операнда 1 |
0 |
0 |
1 |
1 |
|
Значение операнда 2 |
0 |
1 |
0 |
1 |
|
Результат операции |
0 |
1 |
1 |
0 |
Основные Булевы операторы также распознаются в SQL. Выражения Буля являются или верными или неверными, подобно предикатам. Булевы операторы связывают одно или более верных/неверных значений и производят единственное верное/или/неверное значение. Стандартными операторами Буля, распознаваемыми в SQL, являются: AND, OК и NOT.
Существуют другие, более сложные, операторы Буля (типа "исключенный или"), но они могут быть сформированы из этих трех простых операторов -- AND, OК, NOT.
Как вы можете понять, Булева верная / неверная логика основана на цифровой компьютерной операции; и, фактически, весь SQL (или любой другой язык) может быть сведен до уровня Булевой логики.
AND берет два Буля (в форме A AND И) как аргументы и оценивает их по отношению к истине, верны ли они оба.
OК берет два Буля (в форме A OК И) как аргументы и оценивает на правильность, верен ли один из них.
NOT берет одиночный Булев (в форме NOT A) как аргумент и заменяет его значение с неверного на верное или верное на неверное.
В С++ имеется логический тип данных иool, который может принимать только два значения: true (истина) или false (ложь). Этот тип данных используется для контроля выполнения инструкций различных типов. В следующей таблице представлены инструкции С++, наиболее часто используемые для управления логикой выполнения.
Логические операторы |
отрицание |
! |
|
логическое и |
&& |
||
логическое или |
|| |
Оператор логического И
Логическое - И -выражение:
ИЛИ -выражение
Логическое - И -выражение && ИЛИ -выражение
Операторы && выполняются слева направо. Оператор && выдает 1, если оба операнда не равны нулю, и 0 в противном случае. В отличие от &, && гарантирует, что вычисления будут проводиться слева направо: вычисляется первый операнд со всеми побочными эффектами; если он равен 0, то значение выражения есть 0. В противном случае вычисляется правый операнд, и, если он ранен 0, то значение выражения есть 0, в противном случае оно равно 1.
Операнды могут принадлежать к разным типам, но при этом каждый из них должен иметь либо арифметический тип, либо быть указателем. Тип результата - int.
Оператор логического ИЛИ
Логическое - ИЛИ - выражение:
Логическое - И - выражение
Логическое - ИЛИ -выражение || логическое - И -выражение
Операторы || выполняются слева направо. Оператор || выдает 1, если по крайней мере один из операндов не равен нулю, и 0 в противном случае. В отличие от |, оператор || гарантирует, что вычисления будут проводиться слева направо: вычисляется первый операнд, включая все побочные эффекты; если он не равен 0, то значение выражения есть 1. В противном случае вычисляется правый операнд, и если он не равен 0, то значение выражения есть 1, в противном случае оно равно 0.
На практике в изучении языков программирования использование логических операторов облегчает работу при создании простых и сложных программ.
логический оператор команда управление
Литературы
Ален И. Голуб. Правила программирования на Си и Си++- Москва, 2001 год.
Зубков С.В. Assembler для DOS, Windows и UNIX. Издательство ДМК Пресс. 2000 год.
Калашников О.А. Ассемблер? Это просто! Учимся программировать под MS-DOS. - М.; 2001 год.
Мартин Груббер. Понимание SQL. (Перевод: Лебедева В.Н.) Под редакцией Булычева В.Н. - Москва, 1993 год.
Справочная система по языку ассемблера IBM PC: в книге Assembler: учебный курс. Питер, 1998 год.
Размещено на Allbest.ru
Подобные документы
Понятие машинной команды как закодированного по определенным правилам указания микропроцессору на выполнение некоторой операции или действия. Элементы машинных команд (код операции, операнд) и их виды (передачи данных, управления, арифметико-логические).
презентация [120,6 K], добавлен 14.10.2013Общая форма записи условного оператора, его назначение и синтаксис. Случаи использования сокращенных вариантов записи при программировании на С++. Вложенные операторы условия и условия их правильной работы. Составные логические выражения и их применение.
лабораторная работа [25,2 K], добавлен 15.07.2009Использование математических функций для алгоритмизации задач и отладки программ. Операторы сравнения и логические функции; реализация циклического процесса. Организация и обработка данных при помощи массивов. Функции преобразования и работы со строками.
методичка [135,5 K], добавлен 24.10.2012История создания и применение языка Basic. Стандартные математические и строковые функции. Операции и выражения языка. Блоки данных и подпрограммы. Операторы управления, цикла, ввода-вывода и преобразования информации. Константы, переменные, массивы.
контрольная работа [2,3 M], добавлен 04.05.2015Среда визуального программирования Delphi. Арифметические и логические операции. Объекты программы Microsoft Access. Состояние записи в БД. Объектно-ориентированные и гибридные базы данных. Операторы управления данными. Программное обеспечение программы.
курсовая работа [1,4 M], добавлен 10.05.2016Операционный блок микропроцессора, арифметические операции с целыми операндами. Пути увеличения производительности арифметико-логического устройства за счет параллельной обработки различных команд выполняемой программы. Сумматор частичных произведений.
контрольная работа [56,5 K], добавлен 05.09.2010Понятие логических выражений, их назначение в создании алгоритмов. Список операторов сравнения, используемых в табличном редакторе Excel. Синтаксис функции "если" и примеры ее использования. Логические операторы "и", "или", "не", "истина", "ложь".
презентация [108,9 K], добавлен 07.03.2013Команды, необходимые для организации разветвлений и циклических структур в программах, условных переходов, изменения признака переноса, изменения содержимого аккумулятора. Логические команды над аккумулятором и регистром. Программа на ассемблере.
лабораторная работа [25,2 K], добавлен 03.03.2009Типы команд, синтаксис ассемблера и код операции, по которому транслируется команда. Команды вычисления и непосредственной пересылки данных между регистрами. Поле для определения операции вычисления. Управление последовательностью выполнения программы.
реферат [29,1 K], добавлен 13.11.2009Характеристики операторов языка Си. Операторы безусловного и условного перехода: if, if-else, if-else if. Оператор переключатель switch. Оператор цикла с предусловием while, постусловием do-while. Упрощение логических выражений, взаимозаменяемость циклов.
лабораторная работа [30,0 K], добавлен 06.07.2009