Мой компьютер

Булевы (true и false) значения в Perl. Логические выражения и логические операции Значения boolean

True-false [͵tru:ʹfɔ:ls] a лог.

истинностный; имеющий истинностные значения «истина» и «ложь»

true-false questions - «да-нет» вопросы


Новый большой англо-русский словарь . 2001 .

Смотреть что такое "true-false" в других словарях:

    true-false - adjective offering a series of statements each of which is to be judged as true or false a true false test Ant: multiple choice * * * true false «TROO FLS», adjective. having to do with or containing statements which must be marked as either… … Useful english dictionary

    true-false - adjective Allowing only the answers true or false . Somehow he got one true false question wrong out of twenty … Wiktionary

    true-false test - true′ false′ test n. edu a test requiring one to mark statements as either true or false Etymology: 1920–25 … From formal English to slang

    true-false test - ☆ true false test n. a test, as one typically given in school, consisting of a series of statements to be identified as either “true” or “false” … English World dictionary

    True/False Film Festival - Infobox Film Festival name = True/False Film Festival caption = opening = closing = awardsreceived = awardsgiven = films = directors = producers = writers = starring = host = Ragtag Programming for Film and Media Art date = number = 40 50… … Wikipedia

    true-false test - (ˈ) ̷ ̷ˈ ̷ ̷ noun: an objective test consisting of a series of statements each of which is to be marked as either true or false * * * /trooh fawls /, Educ. a test requiring one to mark statements as true or false. * * * n. a test… … Useful english dictionary

    true-false test - noun Date: 1924 a test consisting of a series of statements to be marked as true or false … New Collegiate Dictionary

    true-false test - /trooh fawls /, Educ. a test requiring one to mark statements as true or false. * * * … Universalium

    The True False Identity - Infobox Album | Name = The True False Identity Type = Album Artist = T Bone Burnett Released = 2006 Recorded = Genre = Rock Length = 59:30 Label = DMZ Producer = T Bone Burnett Reviews = * Allmusic Rating|3.5|5… … Wikipedia

    False - is the antonym of the adjective true.False is the 2nd album of Gorefest, False (album).False may also refer to: * FALSE, an esoteric stack oriented programming language * false, a Unix utilityee also* Contradiction * Falsity * Lie * Falsework, a… … Wikipedia

    true-falsetest - true false test (tro͞oʹfôlsʹ) n. A test in which statements are to be marked either true or false. * * * … Universalium

Книги

  • The true-blue laws of Connecticut and New Haven and the false blue-laws invented by the Rev. Samuel Peters to which are added specimens of the laws and... blue-laws of England in the reign of James I , Trumbull J Hammond. Книга представляет собой репринтное издание. Несмотря на то, что была проведена серьезная работа по восстановлению первоначального качества издания, на некоторых страницах могут обнаружиться…

Для того, чтобы программа была не линейной (т.е. в зависимости от ситуации выполнялись разные инструкции) в языках программирования используются логические выражения, результат которых может быть либо правдой (true), либо ложью (false). Результат логических выражений обычно используют для определения пути выполнения программы.

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

В Паскале предусмотрены следующие операторы отношений:

  • меньше: x < y
  • больше: x > y
  • равно: x = y
  • не равно: x <> y
  • меньше или равно: x <= y
  • больше или равно: x >= y

Булевы типы

Результатом логического выражения всегда является булево (логическое) значение. Булев тип данных (boolean) может принимать только два значения (true или false). Эти величины упорядочены следующим образом: false < true. Это значит, что данные булевого типа являются не только результатом операций отношения, но и могут выступать в роли операндов операции отношения. Также к ним можно применять функции ord, succ, pred, процедуры inc и dec.

Значение типа boolean занимает в памяти 1 байт.

В примере шести булевым переменным присваиваются значения простых логических выражений. Значения, хранимые в таких переменных, затем выводятся на экран.

Кроме типа boolean в Pascal введены еще три булевых типа - bytebool (занимает 1 байт), wordbool (занимает 2 байта) и longbool (занимает 4 байта).
Для всех булевых типов значению false соответствует 0, а значению true - любое ненулевое значение. Логические переменные, принадлежащие разным булевым типам, ведут себя по-разному при выполнении над ними операций. Ниже приводится пример, реализованный на языке FreePascal (в комментариях отображается результат).

var b: boolean ; wb: wordbool; begin b: = false ; b: = pred (b) ; writeln (b, " " , ord (b) ) ; // TRUE 255 writeln (b= true ) ; // TRUE wb: = false ; wb: = pred (wb) ; writeln (wb, " " , ord (wb) ) ; // TRUE -1 b: = true ; b: = succ (b) ; writeln (b, " " , ord (b) ) ; // TRUE 2 wb: = true ; wb: = succ (wb) ; writeln (wb, " " , ord (wb) ) ; // FALSE 0 end .

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

С помощью логических операторов можно формировать сложные логические выражения. Логические операторы часто применяются по отношению к простым логическим выражениям.

В языке программирования Pascal предусмотрены следующие логические операции:

true xor true = false
true xor false = true
false xor true = true
false xor false = false

  • Конъюнкция (логическое умножение, пересечение) - and. Выражение a and b дает значение true только в том случае, если a и b имеют значение true. Во всех остальных случаях значения выражения a and b дает false.

    true and true = true true and false = false false and true = false false and false = false

  • Дизъюнкция (логическое сложение, объединение) – or. Выражение a or b дает значение false только в том случае, если a и b имеют значение false. Во всех остальных случаях результат – true.

    true or true = true true or false = true false or true = true false or false = false

  • Отрицание (инверсия) – not. Выражение not a имеет значение, противоположное значению a.

    not true = false not false = true

  • Исключающее ИЛИ – xor. Выражение a xor b дает значение true только в том случае, когда только один из операндов имеет значение true.

Последовательность выполнения логических операторов: not, and, or.

В языке Паскаль сначала выполняются логические операторы (and, or, xor, not), а уже потом операторы отношений (>, >=, <, <=, <>, =), поэтому не нужно забывать расставлять скобки в сложных логических выражениях.

Сложные булевы выражения могут не обрабатываться до конца, если продолжение вычислений не изменит результат. Если булево выражение в обязательном порядке нужно обрабатывать до конца, то это обеспечивается включением директивы компиляции {B+}.

Стандартные булевские функции

  • odd(x) = true, если x нечетный (x целый тип);
  • eoln(x) = true, если встретился конец строки текстового файла x;
  • eof(x) = true, если встретился конец файла x.

В остальных случаях эти функции принимают значение false.

False, a. 1. Uttering falsehood; unveracious; given to deceit; dishnest; as, a false witness.… … The Collaborative International Dictionary of English

false - adj 1: not genuine, authentic, or legitimate compare counterfeit 2 a: not true or correct; esp: intentionally or knowingly untrue or incorrect injured by false accusations b: intended to mislead or deceive: decept … Law dictionary

false - W3S3 adj ▬▬▬▬▬▬▬ 1¦(untrue)¦ 2¦(wrong)¦ 3¦(not real)¦ 4¦(not sincere)¦ 5 false economy 6 under false pretences 7 false move/step 8 false imprisonment/arrest ▬▬▬▬▬▬▬ adj. falser, falsest 1. not true; in error; incorrect; mistaken 2. untruthful; lying; dishonest 3. disloyal; unfaithful adjective ** 1.) not true: The report was dismissed as totally false. a false statement/claim/accusation ─ opposite TRUE 2.) made to look like something real: ARTIFICIAL: false eyelashes a) not real and intended to trick people: a… … Usage of the words and phrases in modern English

false - adjective 1. not true or real, but intended to look real in order to deceive people: false and misleading advertisements Firms issuing false certificates might be subject to lawsuits. 2. a false economy something that you… … Financial and business terms

Это статья об утилите Unix. Статья о эзотерическом языке программирования называется FALSE. false (в переводе с английского «ложное») консольная команда UNIX совместимых операционных систем, единственное действие которой возвратить значение 1,… … Википедия

False - is the antonym of the adjective true.False is the 2nd album of Gorefest, False (album).False may also refer to: * FALSE, an esoteric stack oriented programming language * false, a Unix utilityee also* Contradiction * Falsity * Lie * Falsework, a… … Wikipedia

false - fȯls adj, fals·er; fals·est 1) not corresponding to truth or reality <a test for HIV which gave false results> 2) artificially made <false teeth> 3) of a kind related to or resembling another kind that is usu. designated by the… … Medical dictionary

Книги

  • False Delicacy, a Comedy , Kelly Hugh. Книга представляет собой репринтное издание. Несмотря на то, что была проведена серьезная работа по восстановлению первоначального качества издания, на некоторых страницах могут обнаружиться…
  • False Dmitri, a Russian romance and tragedy described by British eye-witnesses, 1604-1612 , Howe Sonia E. Книга представляет собой репринтное издание. Несмотря на то, что была проведена серьезная работа по восстановлению первоначального качества издания, на некоторых страницах могут обнаружиться…

В Perl нет специального булевого типа, но, тем не менее, в документации зачастую упоминается, что функция возвращает "булево" значение. Иногда просто написано, что функция возвращает true или false.

Так где же правда?

В Perl нет особенного булевого типа, но любое скалярное значение при проверке с помощью if вернет true или false. Так что можно написать

If ($x eq "foo") { }

If ($x) { }

первое выражение проверяет, совпадает ли содержимое переменной $x со строкой "foo", а второе проверит, является ли само значение $x истинным.

Какие значения считаются в Perl истинными или ложными?

Это довольно просто. Обратимся к документации:

Число 0, строки "0" и "", пустой список "()" и "undef" считаются ложью в булевом контексте. Все остальные значения считаются истиной. Отрицание истинного значения с помощью "!" или "not" возвращает специальное ложное значение. При использовании в качестве строки оно считается "", а при использовании в качестве числа - 0.

Из perlsyn, раздел "Truth and Falsehood".

Таким образом, следующие скалярные значения считаются ложью:

  • undef - неопределенное значение
  • 0 число 0, даже если вы запишете его как 000 или 0.0
  • "" пустая строка.
  • "0" строка, содержащая единственное число 0.

Все остальные скалярные значения истинны, включая эти:

  • 1 любое число, отличное от нуля
  • " " строка с одним или больше пробелами
  • "00" два или больше 0 в строке
  • "0\n" 0 и перевод строки
  • "true"
  • "false" да, даже строка "false" считается истиной.

Я думаю, это из-за того, что Larry Wall , создатель Perl"а, относится к миру в общем позитивно. Видимо, он считает, что весьма немногие вещи в мире действительно плохие и ложные, а большинство из них - верны.