Boolean
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.
Obsah
Logická tabulka[editovat | editovat zdroj]
| 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[editovat | editovat zdroj]
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:
- op ∨ = (bool a, b) bool: ( a | true | b );
- op ∧ = (bool a, b) bool: ( a | b | false );
- op ¬ = (bool a) bool: ( a | false | true );
- op = = (bool a, b) bool: ( a∧b ) ∨ ( ¬b∧¬a );
- op ≠ = (bool a, b) bool: ¬(a=b);
- op abs = (bool a) int: ( a | 1 | 0 );
Pascal[editovat | editovat zdroj]
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#[editovat | editovat zdroj]
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[editovat | editovat zdroj]
V programovacím jazyce Fortran bylo v 50. letech zavedeno klíčové slovo LOGICAL a související slova .NOT., .AND., .OR..
Objective-C[editovat | editovat zdroj]
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[editovat | editovat zdroj]
OCaml má typ bool, který má hodnoty true a false.
# 1 = 1 ;; - : bool = true
PHP[editovat | editovat zdroj]
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[editovat | editovat zdroj]
V Pythonu je datový typ bool.
pravda = True nepravda = False if pravda or nepravda: print "pravda" if pravda and not nepravda: print "pravda"
Java[editovat | editovat zdroj]
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[editovat | editovat zdroj]
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[editovat | editovat zdroj]
Externí odkazy[editovat | editovat zdroj]
- (anglicky) Boolean operations