BooleanBoolean je v informatice datový typ určený pro reprezentaci pravdivostních hodnot pravda (true) a nepravda (false). Zatímco jazyky ALGOL a Pascal zavádějí zvláštní typ pro logické hodnoty, umožňují deklarovat proměnné tohoto typu a používat je na místě podmínek, část nejstarších programovacích jazyků na syntaktické úrovni oddělovala výrazy a logické podmínky, které byly výsledkem uplatnění relačních operátorů (=, ≠, >, <, ≥, ≤), bylo na ně možné aplikovat logické operátory nebo spojky (not, and, or, případně další) a mohly se vyskytnout pouze na specifických místech (podmínka v podmíněném příkazu nebo v příkazech cyklu), takže u těchto jazyků nic jako typ boolean neexistovalo. Jazyk C a mnoho dalších jazyků sice dovolují použití logických hodnot ve výrazech, ale zvláštní typ pro logické hodnoty nemají; logické hodnoty se ukládají do celočíselných proměnných, a celočíselné hodnoty lze interpretovat jako logické hodnoty (např. 0 je nepravda, jakákoli nenulová hodnota je pravda). Boolean je pojmenován po Georgeovi Booleovi, který v polovině 19. století vytvořil algebraický systém pro logické výrazy. Logická tabulka
Calc (Excel)V tabulkovém editoru Calc, popř. Excel počítáme s booleovskými proměnnými jako s běžnými čísly, jen nakonec výsledek absorbujeme dvojitou negací. K tomu slouží funkce NOT(): =NOT(5) .......... NEPRAVDA =NOT(5)*1 ........ 0 =NOT(NOT(5)) ..... PRAVDA =NOT(NOT(5))*1 ... 1 Ukažme to na příkladu zákona distribuce u součinu, který neplatí v běžné algebře: Jestliže A=B=C=1, pak v normální algebře A+(B.C) ≠ (A+B).(A+C) 2≠4 V Booleovské logice se ale rovnají, protože výsledky obou stran musíme absorbovat. V Calcu tuto absorpci děláme dvojitou negací: =NOT(NOT(A1+(B1*C1))) ........ PRAVDA =NOT(NOT((A1+B1)*(A1+C1))) ... PRAVDA ALGOLJeden z prvních programovacích jazyků ALGOL 60, definoval datový typ Operace s
PascalV jazyce Pascal je typ { typ boolean se chová jako výčtový typ hodnotami false a true }
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). CV jazyce C až do verze C99 neexistuje zvláštní typ pro logické hodnoty. Operátory porovnávání čísel Ukládání jednobitové hodnoty do mnohabitové celočíselné proměnné je plýtvání pamětí, proto někteří programátoři používají pro logické hodnoty typ Až od verze C99 obsahuje standard jazyka C logický typ nazvaný C#V C# jsou booleovské proměnné identifikovány pomocí vyhrazeného slova Kód na výstupu by mohl vypadat takto: bool myBool = (i == 5);
System.Console.WriteLine(myBool ? "I = 5" : "I != 5");
FortranV programovacím jazyce Fortran bylo v 50. letech zavedeno klíčové slovo Objective-CObjective-C nabízí typ OCamlOCaml má typ # 1 = 1 ;;
- : bool = true
PHPPHP 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 $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";
}
PythonV Pythonu je datový typ pravda = True
nepravda = False
if pravda or nepravda:
print("pravda")
if pravda and not nepravda:
print("pravda")
JavaV programovacím jazyce Java je zaveden primitivní typ 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). GMLProtož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"
} OdkazySouvisející článkyExterní odkazy
|
Portal di Ensiklopedia Dunia