LOGINIAI DUOMENYS IR JŲ VALDOMI VEIKSMAI
Logika yra programavimo pagrindas. Sąsaja tarp matematikos ir programavimo prasideda nuo matematinės logikos.
Loginiai duomenys valdo programoje užrašytų veiksmų atlikimo tvarką.
Sakiniai, kurių atlikimo tvarką reikia valdyti (pasirinkti vieną iš kelių sakinių, kartoti) jungiami į struktūrinius sakinius, dar vadinamus valdymo struktūromis. Šiame skyriuje pateiksime pilną valdymo struktūrų rinkinį, t.y., tokį, kurio pakanka, bet kurio sudėtingumo veiksmų atlikimo tvarkai išreikšti.
Loginiai duomenys
Loginiai duomenys turi tik dvi reikšmes, kurios Paskalio kalboje žymimos vardais true ir false. Tai reikšmės teiginio, apie kurį galima pasakyti, kad jis yra teisingas arba klaidingas. Jeigu teiginys teisingas, tai sakoma, kad jo loginė reikšmė yra true, jei klaidingas – false. Pavyzdžiui, teiginio „Dabar lyja“ reikšmė yra true, jeigu dabar iš tikrųjų lyja ir false – priešingu atveju. Teiginys „skaičius 24 yra lyginis“ yra visada teisingas, nes skaičius 24 iš tikrųjų lyginis. Taigi, šio teiginio reikšmė yra true.
Teiginius kartais patogu vadinti sąlygomis. Sakoma, kad sąlyga gali būti tenkinama (jos loginė reikšmė yra true) arba netenkinama (false). Sąlygos, išreikštos nelygybe 5>3, reikšmė yra visada true, nes skaičius 5 didesnis už skaičių 3. Sąlygos 5=3 reikšmė yra false, nes skaičiai 3 ir 5 nelygūs. O kokia bus sąlygos a>5 reikšmė, iš anksto pasakyti negalima, nes ji priklauso nuo kintamojo a reikšmės.
Loginiai duomenys gali būti loginių uždavinių pradiniai ir galutiniai duomenys. Tokius uždavinius tenka retai programuoti. Tačiau su loginiais duomenimis susiduriame kiekvienoje programoje, kai reikia valdyti atliekamų veiksmų eilės tvarką. Dėl to juos ir nagrinėjame šio skyriaus pradžioje.
Loginiai kintamieji, kaip ir kitų tipų kintamieji, žymimi vardais. Kad būtų galima juos atskirti nuo kitų tipų kintamųjų, aprašuose jie apibūdinami žodžiu boolean*, pavyzdžiui,
var a, b, log: boolean;
Šiuo aprašu pasakoma, kad kintamieji, pažymėti vardais a, b ir log, yra loginiai.
Loginiams kintamiesiems galima priskirti tik logines (loginių reiškinių) reikšmes. Loginės reikšmės – tai loginės konstantos false ir true. Todėl prieskyros sakiniai
a := true;
b := false;
log := a
yra teisingi, nes kintamieji a, b ir log yra loginio tipo. Tuo tarpu sakiniai:
a := 15;
b := 54.12
yra neteisingi, nes loginio tipo kintamieji negali įgyti skaitinių reikšmių.
Su loginiais duomenimis atliekamos logines operacijas:
not inversija (ne),
and konjunkcija (ir),
or disjunkcija (arba).
Visos loginės operacijos Paskalyje žymimos baziniais žodžiais, kurie angliškai reiškia tą, ką rašėme skliaustuose (ne, ir, arba).
Panagrinėkime kiekvieną operaciją.
Inversija (not). Operando reikšmė paneigiama, t.y. jo loginė reikšmė pakeičiama priešinga:
not false = true,
not true = false.
Pavyzdžiui, vietoj
a <> b
galima rašyti
not(a = b)
arba vietoj
a <= b
galima rašyti
not(a > b).
Inversija yra vienvietė operacija, t.y., ji taikoma vienam operandui – vienai loginei reikšmei. Šiuo požiūriu ji panaši į minusą, kuriuo užrašyta vienvietė atimtis aritmetiniame reiškinyje: