Logický príkaz bool

Programovacie jazyky, rady, poradňa...
zuzuzu
Light Star
Light Star
Príspevky: 244
Registrovaný: 04 feb 2006, 9:24
Bydlisko: Bratislava
Kontaktovať používateľa:

Logický príkaz bool

Príspevok od používateľa zuzuzu »

Vie mi niekto objasniť ako sa to používa a na čo to slúži?
Ja to totiž vôbec nechápem z tohto :

Kód: Vybrať všetko

Logické výrazy, typ bool

Podmienky v príkaze if ale aj v príkazoch cyklu for a while sú logické výrazy. Logické výrazy nadobúdajú hodnoty typu bool a to:

    * buď hodnotu false (logická nepravda),
    * alebo hodnotu true (logická pravda).

Príklad použitia premennej typu bool:
  bool test;
  test=1<2;
  if (test) Image1->Canvas->TextOut(0, 0, "Premenná test má hodnotu true");
  else Image1->Canvas->TextOut(0, 0, "Premenná test má hodnotu false");

Logické výrazy môžeme v C++ vytvárať:

    * porovnaním dvoch hodnôt - už poznáme operátory: ==, !=, <, >, <=, >=,
    * použitím operátorov logická negácia alebo pomocou logických spojok:

    zápis v C++: 	matematický význam: 	príklad: 	výsledok:
    !V 	logická negácia výrazu V 	!(5==5) 	false
    X && Y 	logické a: X a Y 	(1==2) && (0==0) 	false
    X || Y 	logické alebo: X alebo Y 	(1==2) || (0==0) 	true

Ak výraz obsahuje viacero operátorov, pri vyhodnotení sa uplatňuje priorita operátorov. Tá určuje, v akom poradí sa jednotlivé časti výrazu vyhodnotia - operátor s najvyššou prioritou sa vyhodnotí najskôr. Priority známych operátorov:

    priorita: 	operátor: 	význam:
    najvyššia 	( ) 	zátvorky
      	! + - ++ -- 	negácia, unárne + a unárne -,
    operátory inkrementácie a dekrementácie
      	* / 	 násobenie, delenie
      	+ - 	binárne + a binárne -
      	< <= > >= 	 porovnanie
      	== != 	 test na rovnosť
      	&& 	logické AND
    najnižšia 	|| 	logické OR

Priority ďalších operátorov sa dajú nájsť v pomocníkovi (Help). Na sprehľadnenie komplikovaných výrazov sa odporúča používať zátvorky aj vtedy, keď nie sú nevyhnutne potrebné.

Príklad vyhodnotenia logického výrazu:

    výraz: 	!(5>5) 	&& 	2+3==5 	|| 	6!=6
    vyhodnocujeme: 	!false 	&& 	2+3==5 	|| 	6!=6
    	true 	&& 	2+3==5 	|| 	6!=6
    	true 	&& 	5==5 	|| 	6!=6
      	true 	&& 	true 	|| 	false
      	  	true 		|| 	false
    výsledok: 	  	  	  	true 	 
thx za pomoc
neutronmind
Expert
Expert
Príspevky: 189
Registrovaný: 05 aug 2008, 14:17

Príspevok od používateľa neutronmind »

Premenne typu bool moze uchovavat len hodnoty true a false - pravda a nepravda. Ak mas

Kód: Vybrať všetko

if a>b then
begin
...
end;
tak sa urci hodnota vyrazu a>b, ak je pravdivy(true), tak a je vacsie ako b a pokracuje sa v tele podmienky. Teda sa to da zapisat aj ako

Kód: Vybrať všetko

if (a>b)=true then ...
Nie je na tom nic tazke, mas to tam celkom pekne vysvetlene... :)
programator
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 475
Registrovaný: 18 apr 2005, 8:31
Bydlisko: Papua new Guinea
Kontaktovať používateľa:

Príspevok od používateľa programator »

Jednoducho si predstavme beznu situaciu v zivote:
Povedzme ze clovek rano vstava o 12:00hod... A budeme sledovat jeho spanok.. spi = true, nespi = false...
Hodiny budu ubiehat az povedzme do 11:59hod, kedy bude spi = true (pretoze nie je 12 hodin). Akonahle nastane cas 12:00, zrazu vstava a spi = false... Takychto prikladov by sme mohli najst stovky (aj v nasom kazdodennom zivote, napr. s jedlom, zivotnymi potrebami atd...)
Rovnaky princip ma aj v programovani.
Ako je aj vyssie uvedene, vsetky vetvenia a cykly pracuju na zaklade vyhodnotenia pravdivosti vyrazu, kt. je v podmienkovej casti... teda napr.

Kód: Vybrať všetko

if added == true then...,
case (kind) of...,
while (full == true) ...,
for (i = 1; i < 10; i++) ...,
do while (j > 5)
Vzdy sa pred vetvetnim/vykonanim dalsieho kroku cyklu (samozrejme okrem cyklu do-while, resp. repeat-until, kde sa podmienka kontroluje na konci) overuje pravdivost podmienky.
Pre:
if: added == true,
case: (kind sa porovnava s vetvami)
while: full == true
for: i < 10
do-while: (j > 5)
Napísať odpoveď