CATEGORII DOCUMENTE |
Bulgara | Ceha slovaca | Croata | Engleza | Estona | Finlandeza | Franceza |
Germana | Italiana | Letona | Lituaniana | Maghiara | Olandeza | Poloneza |
Sarba | Slovena | Spaniola | Suedeza | Turca | Ucraineana |
DOCUMENTE SIMILARE |
|
Loginiai duomenys
Programuojant operuojama ne tik sveikųjų bei realiųjų skaičių, bet ir loginio tipo duomenimis. Loginiai kintamieji gali įgyti tik dvi reikmes: true (teisinga) ir false (neteisinga). Su jais galima atlikti logines operacijas: neigimą (inversiją), sudėtį (disjunkciją) ir daugybą (konjunkciją).
Sveikųjų ir realiųjų skaičių tipai mums gerai paįstami i mokyklinio matematikos kurso. Kita ne maiau svarbi duomenų rūis programuojant yra loginiai duomenys. Loginis duomuo turi tik dvi reikmes: teisinga ir neteisinga. Paskalio kalboje jos ymimos vardais:
true -
teisinga
false - neteisinga.
Loginius duomenis, kaip ir skaičius, galima vartoti
raymo sakiniuose, su jais galima atlikti logines operacijas, jų reikmes
galima priskirti loginiams kintamiesiems. Kintamieji, galintys įgyti
logines reikmes, aprauose ymimi odiu boolean.
Pavyzdiui, aprau: var x, log
: boolean; pasakome, kad
kintamieji x ir log gali įgyti tik
logines reikmes. Taigi galime rayti tokius priskyrimo sakinius:
x := false;
log := x;
log := true;
Paskalio
kalboje su loginėmis reikmėmis atliekamos trys pagrindinės
operacijos: loginis neigimas - inversija, loginė sudėtis -
disjunkcija ir loginė daugyba - konjunkcija.
Aptarsime
kiekvieną operaciją atskirai.
Inversijos operacija labai
paprasta: ją atlikus, esama loginė reikmė pakeičiama
prieinga. Ji ymima sutartiniu odiu not
(ne) ir paprastai vadinama lietuvikai - neigimu.
Neigimas (inversija)
x |
not x |
false |
true |
true |
false |
Konjunkcija - tai labai svarbi loginė operacija, kuri reikalinga norint sujungti du teiginius. nekamojoje kalboje tai daniausiai atliekama vartojant jungtuką ir. Pavyzdiui, du teiginius
Nuėjau į biblioteką;
Pasiėmiau knygą;
galima sujungti į vieną itaip:
Nuėjau į biblioteką ir pasiėmiau knygą.
Naujas sudėtinis sakinys bus teisingas tik tada, kai teisingi abu jį sudarantys teiginiai. Visais kitais atvejais jis klaidingas. Programavime teiginių sujungimo jungtuku ir operacija vadinama konjunkcija ir ymima sutartiniu odiu and (ir).
Visos galimos ios operacijos
reikmės pateiktos 3 lentelėje.
3 lentelė. Konjunkcija
x |
y |
x and y |
false |
false |
false |
false |
true |
false |
true |
false |
false |
true |
true |
true |
Konjunkcijos reikmė lygi true tiktai tuo atveju, kai abiejų
argumentų reikmės yra true. Visais
kitais atvejais konjunkcijos reikmė yra false.
Disjunkcijos operacija atlieka loginės sudėties vaidmenį.
nekamojoje kalboje teiginiai panaiai jungiami jungtuku arba. Pavyzdiui,
teiginys
Eisiu į parodą arba į kiną;
sudarytas i dviejų teiginių:
Eisiu į parodą;
Eisiu į kiną;
sujungtų jungtuku arba. Teiginys bus teisingas, jeigu
nueisiu į parodą arba jeigu nueisiu į kiną. Teisingas jis
bus ir tuomet, kai abu teiginiai teisingi - nueisiu ir į parodą, ir
į kiną. Teiginys bus klaidingas vieninteliu atveju - kai nenueisiu
nei į parodą, nei į kiną.
Programavime teiginių sujungimo jungtuku arba
operacija vadinama disjunkcija ir ymima sutartiniu odiu or (arba).
Visos galimos ios operacijos
reikmės pateiktos 4 lentelėje.
4 lentelė. Disjunkcija
x |
y |
x or y |
false |
false |
false |
false |
true |
true |
true |
false |
true |
true |
true |
true |
Disjunkcijos reikmė lygi false tiktai tuo atveju, kai abiejų
argumentų reikmės yra false. Visais
kitais atvejais disjunkcijos reikmė yra true.
I loginių reikmių, kintamųjų bei operacijų gali
būti sudaromi reikiniai. Loginių operacijų atlikimo tvarką
nurodo skliaustai. Kai nėra skliaustų, pirmiausia atliekamas
neigimas, paskui konjunkcija, tada - disjunkcija. Pavyzdiui, reikinio
a and b or c and d reikmė skaičiuojama taip, lyg būtų apskliausta itaip:
(a and
b) or (c and
d).
Loginės reikmės gaunamos ne tik atliekant operacijas su kitomis
loginėmis reikmėmis. Jos gali būti ir lyginimo
(santykio) operacijų su skaičiais
rezultatas (5 lentelė). Jeigu dviejų
skaičių lyginimo sąlyga tenkinama, tai lyginimo operacijos
rezultatas yra true, jei ne - false.
Pateikiame
tokių operacijų ir jų rezultatų pavyzdių:
true |
1989 <= 2000 |
true |
||
15 <> 15 |
false |
-15 < 3 |
true |
|
15 < 15 |
false |
-15 < -20 |
false |
|
15 <= 15 |
true |
628.0 = 628E2 |
false |
|
1989 < 2000 |
true |
4.5 < 4.99 |
true |
Lyginti galima ne tik
skaičius (konstantas), bet ir kintamųjų bei reikinių
reikmes.
5 lentelė. Lyginimo operacijos
Pavadinimas |
ymėjimas matematikoje |
ymėjimas programavime |
Maiau |
< |
< |
Maiau arba lygu |
|
<= |
Daugiau |
> |
> |
Daugiau arba lygu |
|
>= |
Lygu | ||
Nelygu |
|
<> |
Tame pačiame reikinyje gali
buti įvairių operacijų: aritmetinių, loginių,
lyginimo. Todėl reikia susitarti, kokia tvarka atlikti operacijas -
nustatyti operacijų prioritetą.
Paskalio kalboje operacijos atliekamos itokia tvarka (keturios prioriteto
grupės):
6 lentelė. Operacijų prioritetas |
||||||||||||||||||||||||||||||
|
Operacijos not prioritetas aukčiausias ir ji atliekama pirmiausia, o lyginimo operacijų prioritetas emiausias ir todėl jos atliekamos paskiausiai. 1 pavyzdys. Sudarysime loginį reikinį, kurio reikmė būtų true, jeigu x patenka į intervalą [a; b], arba false, jeigu nepatenka:
log := (a <= x) and (x <= b)
Matematikoje tokia sąlyga uraoma paprasčiau: a x b. Programavime bet kurios lyginimo operacijos a <= x rezultatas būtų loginė reikmė (true arba false) ir tada jos nebegalima lyginti su skaičiumi b. Todėl tenka ią sąlygą iskaidyti į dvi paprastesnes ir jas sujungti konjunkcijos operacija.
2 pavyzdys. Matematikams gerai inomas Karaliaučiaus tiltų udavinys. Apie 1700 metus per Karaliaučių tekanti Priegliaus upė dalijo jį į keturias atskiras dalis (A, B, K ir D), sujungtas septyniais tiltais (pav. apačioje)
Karaliaučiaus tiltai.
Sakoma, kad miesto gyventojai
norėję rasti tokį pasivaikčiojimo marrutą, kuriuo
būtų galima apeiti miestą, pereinant visus tiltus tik po
vieną kartą, ir sugrįti į tą vietą, i kur prasidėjo
kelionė. Tai neisprendiamas udavinys. (Pamėginkite paaikinti,
kodėl.)
Mes
ispręskime kitokį udavinį. Paymėję tiltus
raidėmis, sudarykime loginį reikinį, kuris parodytų, kaip
i vieno kranto (K) patekti į kitą (D), aplankant abi salas.
Galimi
keturi trumpiausi keliavimo būdai:
1) a and e and g |
3) f and e and b |
2) c and e and g |
4) f and e and d |
Juos galime urayri vienu ilgu loginiu reikiniu:
a and e and g or c and e and g or f and e and b or f and e and d
Skliaustai nebūtini, nes konjunkcija atliekama pirmiau u disjunkciją.
Mes suinojome:
loginis kintamasis |
false |
inversija |
true |
konjunkcija |
boolean |
disjunkcija |
and |
lyginimo operacijos |
or |
operacijų prioritetas |
not |
program salyga;
var
age : integer;
begin
write('Pasakyk kiek Tau metu?');
readln(age);
if age > 18 then
writeln('Tu gali ieiti');
else
writeln('Eik namo!');
writeln('Tai galutinis
sprendimas');
readln;
end.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 742
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved