Boolean

Z Wikipedie, otevřené encyklopedie

Boolean je v informatice logický datový typ reprezentovaný jednou ze dvou hodnot – true (pravda, 1) nebo false (nepravda, 0). Pro hodnoty typu boolean jsou definovány všechny relační operace (=, ≠, >, <, ≥, ≤). Z toho, že v tomto typu platí uspořádání false < true vyplývá, že i nad tímto typem jsou definovány standardní funkce succ(x), pred(x) a ord(x). Hodnota ord(false) = 0, hodnota ord(true) = 1. A dále jsou zde definovány binární operace konjunkce, disjunkce a unární operace negace. Boolean je pojmenován po Georgeovi Booleovi, objeviteli základů moderní aritmetiky.

Logická tabulka

X Y X and Y X or Y not X
false false false false true
false true false true true
true false false true false
true true true true false
  • and – logický součin (konjunkce)
  • or – logický součet (disjunkce)
  • not – negace

ALGOL

Jeden z prvních programovacích jazyků ALGOL 60, definoval datový typ Boolean a jeho související operace. Algol 68 zkrátil název na bool.

Operace s Boolean operandy:

  1. op ∨ = (bool a, b) bool: ( a | true | b );
  2. op ∧ = (bool a, b) bool: ( a | b | false );
  3. op ¬ = (bool a) bool: ( a | false | true );
  4. op = = (bool a, b) bool: ( a∧b ) ∨ ( ¬b∧¬a );
  5. op ≠ = (bool a, b) bool: ¬(a=b);
  6. op abs = (bool a) int: ( a | 1 | 0 );

Pascal

Boolean je základní datový typ využívaný v Pascalu. Následuje příklad jeho definice a použití:

{ deklarace v unitu system nebo standard }
Type 
   Boolean = (False,True);

{ využití }

var
  Hodnota: Boolean;
 
{ ... }
 
Hodnota := True;
Hodnota := False;
 
if Hodnota then
begin
  { ... }
end;

Některé překladače jako Delphi mají rozšířený typ boolean (bytebool, wordbool, longbool).

C#

V C# jsou booleovské proměnné identifikovány pomocí vyhrazeného slova bool, což je alias pro předdefinovný typ System.Boolean. Tento typ zabírá jeden byte. Nestandardní konverze existují mezi bool a dalšími typy.

Kód na výstupu by mohl vypadat takto:

bool myBool = (i == 5);
System.Console.WriteLine(myBool ? "I = 5" : "I != 5");

Fortran

V programovacím jazyce Fortran bylo v 50. letech zavedeno klíčové slovo LOGICAL a související slova .NOT., .AND., .OR..

Objective-C

Objective-C nabízí typ BOOL, a hodnoty YES a NO. Vzhledem k tomu, že Objective-C je nadstavbou C, také zde platí jazyková sémantika pro typ boolean.

OCaml

OCaml má typ bool, který má hodnoty true a false.

# 1 = 1 ;;
- : bool = true

PHP

PHP nemá striktně typové proměnné, zato definuje hodnoty true a false. Některé funkce, které typicky vracejí celá čísla nebo řetězce, vracejí false v případě neúspěchu. Spolu s typovým porovnáváním může být odlišeno od hodnoty 0, která v některých případech může být výslednou hodnotou v případě úspěchu (jako například u funkce strpos()).

$mystring = 'abc';
$findme = 'a';
$pos = strpos($mystring, $findme);

// Všimněte si použití ===. Obyčejné == by nefungovalo podle předpokladu,
// protože 'a' je na nultém (prvním) místě.
if ($pos === false) {
    echo "Řetězec '$findme' nebyl nalezen v řetězci '$mystring'.\n";
} else {
    echo "Řetězec '$findme' byl nalezen v řetězci '$mystring'";
    echo " a to na pozici $pos.\n";
}

Python

V Pythonu je datový typ bool.

pravda = True
nepravda = False
if pravda or nepravda:
    print "pravda"
if pravda and not nepravda:
    print "pravda"

Java

V programovacím jazyce Java je zaveden primitivní typ boolean.

boolean i = true;
if (i)
  System.out.println("i je pravda.");
else
  System.out.println("i neni pravda.");

V jazyce Java mohou být boolean hodnoty (stejně jako ostatní primitivní typy) konvertovány na řetězce (výsledkem je řetězec true nebo false).

GML

Protože GML pracuje pouze s datovými typy String (řetězec) a Real (reálné číslo), v GML neexistuje datový typ boolean. GML typ boolean simuluje tak, že definuje konstantu true, resp. false, která obsahuje reálné číslo 1, resp. reálné číslo 0.

promenna0 = choose(true,false)   // definuje, že promenna0 je boolean a nese náhodně pravdu či nepravdu
promenna0 = !promenna0           // promenna0 se invertuje (z true je false a z false je true)

if(promenna0)                    // pokud promenna0 nese pravdu
{
	show_message("true")     // zobrazí zprávu "true"
}
else                             // jinak (pokud nenese pravdu)
{
	show_message("false")    // zobrazí zprávu "false"
}

Související články

Externí odkazy