§ 3. Асноўныя алгарытмічныя канструкцыі
3.2. Лагічны тып даных
У мове праграміравання С++ для работ з умовамі вызначаны лагічны тып даных bool. Велічыні тыпу bool могуць прымаць два значэнні — false (няпраўда) і true (праўда). Значэнні false і true атрымліваюцца ў выніку выканання аперацый параўнання над лікавымі данымі. Параўноўваць можна канстанты, пераменныя, арыфметычныя і лагічныя выразы. Для параўнання выкарыстоўваюць наступныя знакі:
Лагічны выраз — выраз, які прымае адно з двух значэнняў: true або false. Лагічныя выразы можна прысвойваць пераменным тыпу bool, а таксама выводзіць іх значэнні на экран: будзе выведзена 0 для значэння true або 1 для значэння false адпаведна (прыклад 3.2). У мове С++ любое лікавае значэнне можа ўспрымацца як лагічнае. Пры гэтым значэнні, роўныя нулю, лічуцца няпраўдай, а не роўныя нулю — праўдай. У С++ дапушчальныя лагічныя выразы наступнага выгляду: bool a = 3 <= x <= 7;. Аднак сэнс такога выразу не супадае з матэматычным. Пры выкананні праграмы кампілятар спачатку праверыць праўдзівасць умовы 3 <= x і замяніць яе на 0 або 1 у залежнасці ад таго, праўдзівая гэта ўмова ці не. Затым адбудзецца праверка таго, што атрыманае значэнне меншае за 7 або роўна 7. Па-за залежнасцю ад праўдзівасці першай часткі ўмовы вынік заўсёды будзе праўдзівым, паколькі 0 <= 7 і 1 <= 7. Таму значэнне пераменнай a заўсёды будзе праўдзівым, і яно не залежыць ад значэння пераменнай x. |
Тып bool названы ў гонар англійскага матэматыка і логіка Джорджа Буля, які займаўся пытаннямі матэматычнай логікі ў XIX ст. Прыклад 3.2. Прыклады лагічных выразаў:
Значэнне лагічнага выразу y >= x * x можна вызначыць, толькі ведаючы значэнні пераменных x і y. Пры x = 2 і y = 10 значэнне выразу — true. Пры x = 10 і y = 2 – false. Праверым праўдзівасць гэтых выразаў у праграме:
Вынік работы праграмы: |