Loginės išraiškos.  Tema: Būlio duomenų tipas

Loginės išraiškos. Tema: Būlio duomenų tipas

. X priklauso segmentui ;
x yra už segmento ribų;
x priklauso segmentui arba [-1,1];
x yra už atkarpos ribų arba [-1,1].
3.
Paaiškinkite sąlyginių teiginių struktūrą ir vykdymo taisykles.
4.
Parašykite nurodytą veiksmą kaip vieną sąlyginį teiginį:
cos
2
x, 0x adresu =
1-nuodėmė
2
x, kitaip.
5.
z
int z=0, x=1, y=

1;

80 Linijinių algoritmų programavimas sistemoje C++ Builder
jei (x>0), jei (y>0) z=1; kitaip z = 2;
6.
Kokią reikšmę turės kintamasis? zįvykdžius operatorius:
int z=0, x=

1, y = 1;
jei (x) (jei (y>0) z=1;) else z=2;
7.
Kokią reikšmę turės kintamasis? zįvykdžius operatorius:
int z = 0, x = 0, y = 1;
jei (x) (jei (y>0) z=1;) else z=2;
8.
Kokią reikšmę turės kintamasis? zįvykdžius operatorius:
int z = 0, x = 3, y = 1;
jei (x) (jei (y) z = 1;) kitaip z = 2;
9.
Nurodykite klaidas šiuose teiginiuose:
jei (1
kitaip x=0; y+= 1;
10.
int z = 0, x = 0, y = 1;
if (!x) ( if (!(y

1)) z=1;) kitu atveju z=2;
11.
Kokią reikšmę turės kintamasis z įvykdžius teiginius:
int z = 0, x = 1, y = 1;
if (!x) ( if (!(y

1)) z=1;) kitu atveju z=2;
12.
Raskite klaidas programos fragmente:
(int n,x; jungiklis (k) korpusas + : x:=x-4 pertrauka; korpusas

-

,

*

, x=5;
}
Kokios taisyklės buvo pažeistos ir kaip galima ištaisyti klaidas?


81
3.4
Individualios užduotys 3 skyriui
Kiekvienas studentas turi išspręsti dvi pirmojo ir antrojo sudėtingumo problemas.
Pirmojo sudėtingumo lygio problemos.
1.
Jums pateikiamas keturių skaitmenų teigiamas sveikasis skaičius. Parašykite programą, kuri spausdins tiesa arba klaidinga priklausomai nuo to, ar nurodyta sąlyga įvykdyta, ar ne: 1 ir 4 skaitmenų suma lygi 2 ir 3 skaitmenų sandaugai.
2.
Duoti realieji skaičiai x, y. Jei x ir y yra neigiami, tada kiekvieną reikšmę pakeiskite jos moduliu; jei tik vienas iš jų yra neigiamas, padidinkite abi reikšmes 5,5; kitais atvejais sumažinkite abi vertes 10 kartų.
3.
Duoti realieji skaičiai x, y. Jei x ir y yra teigiami, kiekvieną reikšmę sumažinkite 5 kartus; jei abi reikšmės yra intervale [-3, 9], pakeiskite abi reikšmes 0; kitais atvejais padidinkite x ir y 3.
4.
Duoti realieji skaičiai x, y (xy). Pakeiskite mažesnįjį iš šių dviejų skaičių jų puse sumos, o didesnį - dvigubu sandauga.
5.
Jei trijų poromis skirtingų realiųjų skaičių x, y, z suma yra mažesnė už 1, tada mažiausią iš šių trijų skaičių pakeiskite kitų dviejų dalių suma; kitu atveju pakeiskite mažesnę iš x ir y likusių dviejų reikšmių puse sumos.
6.
Duoti realieji skaičiai a, b, c, d. Jeigu b>c>d, tada palikite skaičius nepakeistus; kitu atveju visus skaičius pakeiskite kvadratais.
7.
Nustatykite, ar šešių skaitmenų sveikasis skaičius yra laimingas. (Skaičius vadinamas laiminguoju, jei jo pirmųjų trijų skaitmenų suma yra lygi paskutinių trijų skaitmenų sumai.)
8.
tiesa arba klaidinga priklausomai nuo to, ar įvykdyta nurodyta sąlyga, ar ne: savavališkiems realiiesiems skaičiams a, b, c nustatykite, ar lygtis ax
2
+bx+c=0 bent vienas realus sprendimas.

82 Linijinių algoritmų programavimas sistemoje C++ Builder
9.
Norėdami išspręsti šią problemą, parašykite programą, kuri spausdina tiesa arba klaidinga priklausomai nuo to, ar įvykdyta nurodyta sąlyga, ar ne: nustatykite, ar duoto keturženklio skaičiaus pirmųjų dviejų skaitmenų suma yra lygi paskutinių dviejų jo skaičių sumai.
10.
Kai kurios švietimo įstaigos turi tokias priėmimo taisykles. Stojantieji laiko du egzaminus, kurie vertinami pagal
po 100 taškų. Jei pretendentas surinko ne mažiau kaip 150 balų, tai suteikia teisę stoti į dieninį skyrių, nuo 100 iki 149 - į vakarinį skyrių; žemiau 100 balų reiškia atsisakymą leisti studijuoti. Parašykite programą, kuri, priklausomai nuo surinktų balų kiekio, informuoja pretendentą apie jo teises į priėmimą.
11.
Parašykite programą naudodami atrankos operatorių, kad gautumėte žodinį pažymių aprašymą. (1 – „blogai“, 2 –
„nepatenkinamai“, 3 – „patenkinamai“, 4 – „gerai“, 5 –
„Puiku“.)
12.
Norėdami išspręsti šią problemą, parašykite programą, kuri spausdina tiesa arba klaidinga priklausomai nuo to, ar nurodyta sąlyga įvykdyta, ar ne: nustatykite, ar tarp nurodyto triženklio skaičiaus skaitmenų yra identiškų.
13.
Parašykite programą, kuri spausdins tiesa, jei data d1, m1 yra prieš (per metus) datą d2, m2 ir prasmė klaidinga kitaip.
14.
Parašykite programą naudodami pasirinkimo operatorių, kuri, remiantis pirmąja vardo raide, ekrane rodo visą vardą
(Ivanas, Petras, Nikolajus, Vladimiras, Georgijus).
15.
Parašykite programą naudodami pasirinkimo operatorių, kuri, remiantis įvestu skaitmeniu, yra 0≤ k≤ 5 atspausdina šio numerio pavadinimą rusų ir anglų kalbomis.
16.
Duotas sveikasis skaičius k (1

k

365). Nustatykite, ar k-oji metų diena bus savaitgalis ar darbo diena, jei sausio 1 d. yra pirmadienis.
17.
Duotas tikrasis skaičius x. Apskaičiuoti f, Jei:











nuodėmė
,
1 0
,
0 5
2 11 2
atvejų
likusieji
V
x
x
x
adresu
x
x
x
adresu
f

Programavimas vienmačiais masyvais
83 18.
Duotas tikrasis skaičius x. Parašykite programą skaičiuoti f:












34 5
,
12 3
lg ln
,
3 5
1 3
2 4
atvejų
likusieji
V
x
x
x
adresu
x
x
x
adresu
f
19.
Parašykite programą naudodami pasirinkimo operatorių, kuri pagal pirmąją miesto pavadinimo raidę rodo visą miesto pavadinimą (Kurskas, Maskva, Tula, Novgorodas, Voronežas).
20.
Parašykite programą naudodami pasirinkimo operatorių, kuri, remiantis pirmąja pavardės raide, rodo visą pavardę (Ivanovas, Petrovas, Sidorovas, Myškinas, Šiškinas).
21.
Pateikiamos apskritimo centro koordinatės ir spindulys. Nustatykite, ar tam tikras taškas su koordinatėmis (x,y) priklauso apskritimui.
22.
Parašykite programą naudodami atrankos operatorių, kuri pagal pirmą įvesto gyvūno vardo raidę atspausdins visą gyvūno vardą (šuo, katė, žirafa, arklys, beždžionė).
23.
Duoti trys skirtingi skaičiai a,b,c. Surūšiuokite šiuos skaičius didėjančia tvarka, kad a atitiko mažiausią skaičių b- vidutinis skaičius, c- didžiausias.
24.
Parašykite programą naudodami pasirinkimo operatorių, kuris rodo savaitės dienos pavadinimą skaičiumi (nuo 1 iki 7).
25.
Parašykite programą naudodami pasirinkimo operatorių, kuris skaičiumi (nuo 1 iki 12) rodo metų mėnesio pavadinimą.
26.
Parašykite programą naudodami pasirinkimo operatorių, kuri pagal įvestą pirmąją metų sezono pavadinimo raidę atspausdina visą metų sezono pavadinimą.
27.
Jums pateikiamas penkių skaitmenų teigiamas sveikasis skaičius. Parašykite programą, kuri spausdins tiesa arba klaidinga priklausomai nuo to, ar nurodyta sąlyga įvykdyta, ar ne: 1, 3 ir 5 skaitmenų suma yra didesnė už 2 ir 4 skaitmenų sandaugą.
28.
Jums pateikiamas keturių skaitmenų teigiamas sveikasis skaičius. Parašykite programą, kuri spausdins tiesa arba klaidinga priklausomai nuo

84 Tiesinių algoritmų programavimas sistemoje C++ Builder ar tenkinama nurodyta sąlyga, ar ne: aritmetinis vidurkis 1 ir
4 skaitmenys yra didesni nei 2 ir 3 skaitmenų suma.
29.
Duotas skaitmuo ir triženklis skaičius dešimtainėje skaičių sistemoje. Jei skaitmuo sutampa su didžiausiu skaičiaus skaitmeniu, tada apskaičiuokite skaičiaus skaitmenų sumą. Jei skaitmuo sutampa su viduriniu skaičiaus skaitmeniu, tada apskaičiuokite skaičiaus skaitmenų sandaugą. Jei skaitmuo sutampa su mažiausiai reikšmingu skaičiaus skaitmeniu, tada apskaičiuokite skaičiaus skaitmenų aritmetinį vidurkį. Jei netenkinama nė viena iš sąlygų, apskaičiuokite geometrinį skaičiaus skaitmenų vidurkį.
30.
Duotas skaitmuo ir triženklis skaičius dešimtainėje skaičių sistemoje. Jei skaitmuo sutampa su didžiausiu skaičiaus skaitmeniu, tada apskaičiuokite skaičiaus skaitmenų aritmetinį vidurkį. Jei skaitmuo sutampa su viduriniu skaičiaus skaitmeniu, tada apskaičiuokite skaičiaus skaitmenų geometrinį vidurkį. Jei skaitmuo sutampa su mažiausiai reikšmingu skaičiaus skaitmeniu, tada apskaičiuokite skaičiaus skaitmenų sumą. Jei netenkinama nė viena iš sąlygų, apskaičiuokite skaičiaus skaitmenų sandaugą
Antrojo sunkumo lygio problemos.
1.
Duotas dviženklis teigiamas sveikasis skaičius trinare skaičių sistemoje. Parašykite programą, kuri parodytų skaičiaus skaitmenų pavadinimus rusų kalba, jei didžiausias skaičiaus skaitmuo yra didesnis už mažiausią, kitaip
- angliškai.
2.
Duotas sveikasis dviženklis teigiamas skaičius penkiaženklėje skaičių sistemoje. Parašykite programą, kuri parodytų skaičiaus skaitmenų pavadinimus anglų kalba, jei didžiausias skaičiaus skaitmuo yra didesnis nei mažiausias, kitaip
- rusiškai.
3.
Duotas sveikasis dviženklis teigiamas skaičius penkiaženklėje skaičių sistemoje. Parašykite programą, kuri parodytų skaičiaus skaitmenų pavadinimus anglų kalba, jei didžiausias skaičiaus skaitmuo yra lygiai 2 kartus didesnis už mažiausią, kitaip
- rusiškai.
4.
Duotas dviženklis teigiamas sveikasis skaičius trinare skaičių sistemoje. Parašykite programą, kuri parodytų skaičiaus skaitmenų pavadinimus rusų kalba, jei didžiausias skaičiaus skaitmuo yra mažesnis už mažiausią, kitaip
- angliškai.

Programavimas vienmačiais masyvais
85 5.
Duotas sveikasis dviženklis teigiamas skaičius penkiaženklėje skaičių sistemoje. Parašykite programą, kuri parodytų skaičiaus skaitmenų pavadinimus rusų kalba.
6.
Duotas sveikasis dviženklis teigiamas skaičius aštuntainių skaičių sistemoje. Parašykite programą, kuri parodytų skaičiaus skaitmenų pavadinimus rusų kalba.
7.
Duotas sveikasis dviženklis teigiamas skaičius aštuntainių skaičių sistemoje. Parašykite programą, kuri parodytų, jei pagrindinis skaitmuo yra mažesnis nei pusė mažojo skaitmens, skaičiaus skaitmenų pavadinimus anglų kalba, kitu atveju

rusiškai.
8.
Duotas sveikasis dviženklis teigiamas skaičius pertvaros skaičių sistemoje. Parašykite programą, kuri parodytų, jei skaičiai yra mažėjančia tvarka, skaičiaus skaitmenų pavadinimus anglų kalba, kitu atveju

rusiškai.
9.
Dešimtainėje skaičių sistemoje pateikiami du skaitmenys. Parašykite programą, kuri pateiktų šių skaitmenų sumos skaitmenų pavadinimus anglų kalba.
10.
Dešimtainėje skaičių sistemoje pateikiami du skaitmenys. Parašykite programą, kuri rusiškai parodytų šių skaičių sandaugos skaičių pavadinimus.
11.
Dešimtainėje skaičių sistemoje pateikiami du skaitmenys. Parašykite programą, kuri rodo šių skaitmenų skirtumo modulio skaitmenų pavadinimą rusų kalba.
12.
Dešimtainėje skaičių sistemoje pateikiami du skaitmenys. Parašykite programą, kuri pateiktų skaitmenų pavadinimus anglų kalba šių skaičių sveikojo skaičiaus dalybos daliai ir liekanai.
13.
Duotas dviženklis teigiamas sveikasis skaičius devynių skaitmenų skaičių sistemoje. Parašykite programą, kuri parodytų, jei didžiausias skaitmuo tris kartus didesnis už mažiausią, skaičiaus skaitmenų pavadinimus anglų kalba, kitu atveju

rusiškai.
14.
Duotas dviženklis teigiamas sveikasis skaičius devynių skaitmenų skaičių sistemoje. Parašykite programą, kuri parodytų didesnės reikšmės skaičiaus skaitmens pavadinimą anglų kalba ir skaitmens, kurio reikšmė mažesnė, pavadinimą.

rusiškai.

86 Linijinių algoritmų programavimas sistemoje C++ Builder
15.
Duotas dviženklis teigiamas sveikasis skaičius pertvaros skaičių sistemoje. Parašykite programą, kuri parodytų didesnės reikšmės skaičiaus skaitmens pavadinimą anglų kalba ir skaitmens, kurio reikšmė mažesnė, pavadinimą.

rusiškai.
16.
Duotas dviženklis teigiamas sveikasis skaičius šešioliktainėje skaičių sistemoje. Parašykite programą, kuri parodytų skaičiaus skaitmenų pavadinimus anglų kalba.
17.
Duoti du sveikieji dviženkliai teigiami skaičiai trijų dalių sistemoje. Parašykite programą, kuri parodytų šių skaičių sumos skaitmenų pavadinimus rusų kalba.
18.
Duoti du sveikieji dviženkliai teigiami skaičiai dvejetainėje skaičių sistemoje. Parašykite programą, kuri pateiktų šių skaičių sumos skaitmenų pavadinimus anglų kalba.
19.
Duotas dviženklis teigiamas sveikasis skaičius penkiaženklėje skaičių sistemoje. Parašykite programą, kuri parodytų, jei skaičiai išdėstyti didėjimo tvarka, skaičiaus skaitmenų pavadinimus anglų kalba ir kt.

rusiškai.
20.
Duotas dviženklis teigiamas sveikasis skaičius šešioliktainėje skaičių sistemoje. Parašykite programą, kuri parodytų, jei didžiausias skaitmuo penkis kartus didesnis už mažiausią, numerio skaitmenų pavadinimus rusų kalba, kitu atveju

angliškai.
21.
Aštuntainių skaičių sistemoje pateikiami du skaitmenys. Parašykite programą, kuri rusiškai atvaizduotų šių skaitmenų skirtumo modulio skaitmenų pavadinimus.
22.
Aštuntainių skaičių sistemoje pateikiami du skaitmenys. Parašykite programą, kuri parodytų šių dviejų skaitmenų sumos skaitmenų pavadinimus rusų kalba.
23.
Duotas dviženklis teigiamas sveikasis skaičius pertvaros skaičių sistemoje. Parašykite programą, kuri parodytų, jei didžiausias skaitmuo tris kartus didesnis už mažiausią, numerio skaitmenų pavadinimus rusų kalba, kitu atveju

angliškai.
24.
Duotas dviženklis teigiamas sveikasis skaičius aštuntainių skaičių sistemoje. Parašykite programą, kurioje būtų rodomas didesnės reikšmės skaičiaus skaitmens pavadinimas rusų kalba ir k

Programavimas vienmačiais masyvais
87 yra mažiausią reikšmę turinčio skaičiaus skaitmens eilė,

angliškai.
25.
Duotas dviženklis teigiamas sveikasis skaičius pertvaros skaičių sistemoje. Parašykite programą, kuri parodytų skaičiaus, kurio reikšmė mažesnė nei 4, skaitmenų pavadinimą rusų kalba ir skaičiaus, kurio reikšmė didesnė nei 4, skaitmenų pavadinimą,

angliškai.
26.
Duotas dviženklis teigiamas sveikasis skaičius šešioliktainėje skaičių sistemoje. Parašykite programą, kuri parodytų skaičiaus, kurio reikšmė mažesnė nei 3, skaitmenų pavadinimą rusų kalba ir skaičiaus, kurio reikšmė didesnė nei 3, skaitmenų pavadinimą,

angliškai.
27.
Pateikiamos pirmosios dvi metų mėnesio pavadinimo raidės (didžiosios ir mažosios raidės neskiriamos, tiek mažosios, tiek didžiosios). Parašykite programą, kurioje būtų rodomas visas metų mėnesio pavadinimas rusų kalba.
28.
Pateikiamos pirmosios dvi savaitės dienos pavadinimo raidės (didžiosios ir mažosios raidės neskiriamos, tiek mažosios, tiek didžiosios). Parašykite programą, kurioje būtų rodomas visas savaitės dienos pavadinimas rusų kalba.
29.
Senasis japonų kalendorius priėmė 60 metų ciklą, susidedantį iš penkių 12 metų pociklų. Subciklai buvo pažymėti spalvų pavadinimais: žalia, raudona, geltona, balta ir juoda. Kiekviename cikle metai buvo pavadinti gyvūnų vardais: žiurkės, karvės, tigro, kiškio, drakono, gyvatės, arklio, avys, beždžionės, vištos, šuns ir kiaulės (1984 m. – žaliosios žiurkės metai – buvo kito pradžia ciklas). Parašykite programą, kuri įveda tam tikrų mūsų eros metų skaičių ir išspausdina jo pavadinimą pagal senąjį japonų kalendorių.
30.
Duotas dviženklis teigiamas sveikasis skaičius devynių skaitmenų skaičių sistemoje. Parašykite programą, kuri parodytų skaičiaus, kurio reikšmė didesnė nei 5, skaitmenų pavadinimą rusų kalba ir skaičiaus, kurio reikšmė yra mažesnė arba lygi 5, skaitmenų pavadinimą,

angliškai.

88 Linijinių algoritmų programavimas sistemoje C++ Builder
4 PROGRAMAVIMO CIKLIS
ALGORITMAI C++BUILDER SISTEMoje
Šiame skyriuje nagrinėjami kalbos ciklo operatoriai
C++, ciklinių algoritmų programavimo įgūdžių įgijimas, įvadas
taip, kompiliavimo ir derinimo programas.
4.1
Pagrindinės sąvokos
Ant liežuvio C++ Builder Yra trys kilpos operatoriai:
1.
Ciklas su išankstine sąlyga ( kol);
2.
Ciklas su sąlyga ( daryti);
3.
kilpa su skaitikliu ( dėl).
Kilpos operatorius su išankstine sąlyga kol (4.1 pav.):
kol(būklė) (kilpos korpusas)
4.1 pav

Ciklo operatoriaus algoritmo diagrama kol
Jei sąlygos apskaičiavimo rezultatas yra tiesa(tiesa), tada vykdomas ciklo korpusas ir vėl atliekamas perėjimas prie būklės tikrinimo. Jei sąlygos apskaičiavimo rezultatas yra klaidinga(false), tada ciklas išeina ir pereina prie teiginio, einančio po ciklinio operatoriaus kol.
Jei prieš pirmąjį ciklo vykdymą išraiškos reikšmė buvo klaidinga, ciklo turinys iš viso nevykdomas ir įvyksta perėjimas prie kito teiginio.
Būklė
Kilpinis korpusas
Taip
Nr

Programavimas vienmačiais masyvais
89
Pavyzdys:
Apskaičiuokite nelyginių skaičių sumą nuo 1 iki 10.
( int k=1, s=0; while (k ( s+=k; k+=2;
}
}
Kilpos operatorius su sąlyga daryti (4.2 pav.):
daryti(kilpos korpusas) kol(būklė); taip be sąlygos
Kilpinis korpusas
4.2 pav

Ciklo operatoriaus algoritmo diagrama daryti... kol
Sąlyga yra loginio tipo išraiška, ciklo turinys yra vienas paprastas arba sudėtinis teiginys.
Teiginio kilpos korpusas

Su mokytoju iš toliau pateiktų pratimų išsirinkite užduotį savarankiškam darbui.

1. Apskaičiuokite išraiškos reikšmes:

a) sqr(x)+sqr(y)<=4 при x=0.3, y=-1.6;

b) k mod 7 = k div5-1, kai k = 15;

c) nelyginis(trunc(10*p)), kai p=0,182;

d) neporinis(n), kai n=0;

e) t ir (p mod 3 = 0), kai t = tiesa, p = 101010;

e) (x*y<>0) ir (y>x), kai x=2, y=1;

g) (x*y<>0) arba (y>x), kai x=2, y=1;

h) a arba (ne b), kai a = klaidinga, b = tiesa;

2. Paskalyje parašykite ryšį, kuris yra teisingas, kai įvykdoma nurodyta sąlyga, o kitu atveju klaidingas:

a) sveikasis skaičius k dalijasi iš 7;

b) lygtis neturi realių šaknų;

c) taškas (x, y) yra už spindulio R apskritimo, kurio centras yra taške (1,0);

d) natūralusis skaičius N yra natūraliojo skaičiaus kvadratas;

f) x=max(x,y,z);

ir) (nenaudokite ne operacijos) g

h) bent vienas iš loginių kintamųjų a ir b turi reikšmę True;

i) abu loginiai kintamieji a ir b turi reikšmę True.

3. Skaičiuodami išraiškas nurodykite operacijų eiliškumą:

a) a ir b arba ne c ir d;

b) (x>=0) arba ne c ir d.

4. Apskaičiuokite šias išraiškas a=Tiesa, b=Klaidinga:

a) a arba b, o ne a;

b) (a arba b), o ne a;

c) ne a ir b;

d) ne (a ir b)

5. Paskalio kalba parašykite reiškinį, kuris yra teisingas, kai įvykdoma nurodyta sąlyga, o kitu atveju klaidinga:

a) x priklauso atkarpai ;

b) x yra už atkarpos ribų;

c)* x priklauso segmentui arba [-1, 1];

d)* x yra už atkarpų ribų ir [-1, 1];

e) kiekvienas iš skaičių x, y, z yra teigiamas;

g) nė vienas skaičius x, y, z nėra teigiamas;

h) tik vienas iš skaičių x, y, z yra teigiamas;

i) loginis kintamasis a turi reikšmę True, loginis kintamasis b turi reikšmę False;

j)* metai su eilės numeriu y yra keliamieji metai (keliamieji metai, jei jų skaičius yra 4 kartotinis, bet iš 100 kartotinių tik 400 kartotiniai yra keliamieji metai, pavyzdžiui, 1700, 1800 ir 1900 yra keliamieji metai ne keliamieji metai, 2000 yra keliamieji metai).

6. Plokštumoje (x, y) nubrėžkite sritį, kurioje ir tik kurioje nurodyta išraiška yra teisinga:

a)* (y>=x) ir (y+x>=0) ir (y<=1);

b) (sqr(x)+sqr(y)<1) or (y>0) ir (abs(x)<=1);

c) (trunc(y)=0 ir (round(x)=0);

d)* (abs(x)<=1)>(abs(y)>=1);

d) (sqr(x)+sqr(y)<=4)=(y<=x).

7) Yra sąlyginis operatorius:

writeln ('urray!')

parašyta („bloga...“)

Ar galima jį pakeisti tokiais teiginiais:

a) jei d=10 b) jei ne (d=10)

writeln ('urra!') writeln ('urra!')

writeln('blogai...'); writeln('blogai...');

c) jei ne (d=10) d) jei ne (d<>10)

writeln ('blogai...') writeln ('blogai...')

writeln('urra!'); writeln('urra!');

8) Kokios bus kintamųjų j, k reikšmės įvykdžius sąlyginį sakinį:

jei pradinės kintamųjų reikšmės yra lygios:

Pastaba. Vykdant dec (k,2) operatorių, kintamojo k reikšmė sumažinama 2.

Būlio tipo kintamieji aprašomi naudojant identifikatorių Būlio . Jie gali turėti tik dvi reikšmes - Netiesa (melas) Ir Tiesa (tiesa). Jie taip pat aprašyti kintamųjų aprašymo skyriuje. Var<имя>:Bulio;

Loginės išraiškos gali apimti:

n loginių verčių,

n santykių operacijos (<- меньше, >- daugiau,<=- меньше или равно, >=- didesnis arba lygus,<>- nelygus, =- lygus).

n loginės operacijos Ir, Arba, Ne

gruodžio n. veiksmus ir funkcijas


Turbo Pascal turi logines operacijas, kurios taikomos loginio tipo kintamiesiems. Tai operacijos ne, ir, arba ir xor.

Operacija ne(ne) turi vieną operandą ir sudaro jo loginį neigimą. Ne operacijos rezultatas yra False, jei operandas yra teisingas, ir True, jei operandas yra klaidingas. Taigi, ne tiesa, klaidinga (netiesa yra melas), o ne klaidinga tiesa (ne melas yra tiesa).

Operacijos rezultatas ir(ir) yra teisinga tik tuo atveju, jei abu jo operandai yra teisingi, o klaidingi visais kitais atvejais (loginis dauginimas).

Operacijos rezultatas arba(arba) yra teisingas, jei kuris nors iš jo operandų yra teisingas, ir klaidingas tik tada, jei abu operandai yra klaidingi (loginis papildymas).

Loginės operacijos, reliacinės operacijos ir aritmetinės operacijos dažnai pateikiamos toje pačioje išraiškoje. Šiuo atveju ryšiai kairėje ir dešinėje nuo loginės operacijos ženklo turi būti pateikti skliausteliuose, nes loginės operacijos turi didesnis prioritetas. Apskritai priimamas toks operacijų prioritetas:

2. ir, *, /, div, mod

3. arba, +, -

4. ryšio operacijos (<- меньше, >- daugiau,<=- меньше или равно, >=- didesnis arba lygus,<>- nelygus, =- lygus).

Be to, skliausteliuose galima keisti operacijų tvarką. Pavyzdžiui, loginėje išraiškoje sutvarkysime veiksmų tvarką:

AorBandnot (AorB)


Skliausteliuose esanti operacija arba atliekama pirmiausia, o po to ne ir, arba operacijos. Jei vietoj kintamųjų A ir B pakeisime reikšmes True ir False, tada, taikydami jau aptartą procedūrą, gausime visos išraiškos vertę, lygią True.

5 pratimas: . Įrašykite į sąsiuvinį ir apskaičiuokite posakių reikšmes

su a = 10, b = 20, c = teisinga, d = klaidinga: A)(a>5) ir (b>5) ir (a<20) and (b<30);

b) ne (a<15) or not (b<30);

c) c arba d ir (b=20).

Dėmesio ! Paskalyje nėra galimybės įvesti Būlio duomenų naudojant skaitymo operatorių. Tačiau galima išvesti Būlio tipo kintamųjų reikšmes naudojant rašymo operatorių. Pavyzdžiui, įvykdžius rašymo (5>2) teiginį, ekrane bus rodoma True.

Namų darbų klausimai ir užduotys:

1. Kaip aprašomas loginis kintamasis ir kokias reikšmes jis gali turėti?

2. Ką galima įtraukti į logines išraiškas. Pateikite paprastų loginių posakių pavyzdžių.

3. Papasakokite apie logines operacijas Pascal. Pateikite sudėtinių loginių išraiškų pavyzdžių.

4. Koks yra įvairių operacijų prioritetas Pascal. Pateikite pavyzdį.


Užduotys:

№19.

A. sveikasis skaičius k dalijasi iš 7;

B. Bent vienas iš sveikųjų skaičių x, y yra lyginis;

G. x=max(x,y,z), tai yra, x yra didžiausias iš trijų skaičių x,y,z;

D. (nenaudokite ne operacijos)

E. bent vienas iš loginių kintamųjų a ir b turi reikšmę True;

G. abu loginiai kintamieji a ir b turi reikšmę True.

№20. Vertindami išraiškas nurodykite operacijų tvarką:

A) a ir b arba ne c ir d; b) (x>=0) arba ne c ir d.

№21. Įvertinkite šias išraiškas, kai a=tiesa, b=klaidinga:

A) a arba b, o ne a; b)(a arba b), o ne a; V) ne a ir b; G) ne (a ir b)

№22. Sukurkite programą: stojamųjų egzaminų metu pareiškėjas laikė fiziką, informatiką ir esė. Pareiškėjas bus priimtas, jei jis surinks 5 balus iš informatikos ir surinks bent 13 balų už tris egzaminus.

§ 8. Užduočių sprendimas tema „Linijinės programos. Loginės vertybės“.

Pvz. 7 . Apskaičiuokite išraiškos reikšmes:

a) sqr(x)+sqr(y)<=4 при x=0.3, y=-1.6;

b) k mod 7 = k div5-1, kai k = 15;

c) nelyginis(trunc(10*p)), kai p=0,182;

d) neporinis(n), kai n=0;

e) t ir (p mod 3 = 0), kai t = tiesa, p = 101010;

e) (x*y<>0) ir (y>x), kai x=2, y=1;

g) (x*y<>0) arba (y>x), kai x=2, y=1;

h) a arba (ne b), kai a = klaidinga, b = tiesa;

Pvz. 8. Parašykite Pascal išraišką, kuri yra teisinga, jei tenkinama nurodyta sąlyga, o kitu atveju klaidinga:

a) x priklauso atkarpai ;

b) x yra už atkarpos ribų;

c)* x priklauso segmentui arba [-1, 1];

d)* x yra už atkarpų ribų ir [-1, 1];

e) kiekvienas iš skaičių x, y, z yra teigiamas;

g) nė vienas skaičius x, y, z nėra teigiamas;

h) tik vienas iš skaičių x, y, z yra teigiamas;

i) loginis kintamasis a turi reikšmę True, loginis kintamasis b turi reikšmę False;


j)* metai su eilės numeriu y yra keliamieji metai (keliamieji metai, jei jų skaičius yra 4 kartotinis, bet iš 100 kartotinių tik 400 kartotiniai yra keliamieji metai, pavyzdžiui, 1700, 1800 ir 1900 yra keliamieji metai ne keliamieji metai, 2000 yra keliamieji metai).

Pvz. 9 . Plokštumoje (x, y) nubrėžkite sritį, kurioje ir tik kurioje nurodyta išraiška yra teisinga:

a)* (y>=x) ir (y+x>=0) ir (y<=1);

b) (sqr(x)+sqr(y)<1) or (y>0) ir (abs(x)<=1);

c) (trunc(y)=0 ir (round(x)=0);

d)* (abs(x)<=1)>(abs(y)>=1);

d) (sqr(x)+sqr(y)<=4)=(y<=x).

Pvz. 10 ..Knyga kainuoja X rublius. Pirkėjas turi 50, 10, 5, 1 rublio nominalo banknotus. Kiek ir kokių sąskaitų reikia pasiimti, norint sumokėti už knygą minimaliu sąskaitų skaičiumi?

Būlio kintamieji savo reikšmes paprastai gauna atlikdami palyginimus ir matematines operacijas (aptartas ankstesnėje pamokoje), taip pat naudodami konkrečias Būlio operacijas.

Turbo Pascal turi logines operacijas, kurios taikomos loginio tipo kintamiesiems. Tai operacijos ne, ir, arba ir xor. Šioje temoje apžvelgsite tris logines operacijas. Šių operacijų pavadinimai ir rezultatai pateikti lentelėje. Pamąstyk apie tai.

Operacija ne(ne) turi vieną operandą ir sudaro jo loginį neigimą. Ne operacijos rezultatas yra False, jei operandas yra teisingas, ir True, jei operandas yra klaidingas. Taigi,

ne tiesa, klaidinga (netiesa yra melas)

ne klaidinga tiesa (ne melas yra tiesa)

Operacijos rezultatas ir(ir) yra teisinga tik tuo atveju, jei abu jo operandai yra teisingi, o klaidingi visais kitais atvejais.

Operacijos rezultatas arba(arba) yra teisingas, jei kuris nors iš jo operandų yra teisingas, ir klaidingas tik tada, jei abu operandai yra klaidingi.

Pratimas . Pabandykite nustatyti Būlio operacijų reikšmę teiginiams:

  1. Moksleivis per žiemos atostogas lieka namuose arba kur nors išvyksta atostogauti.
  2. Filipas Kirkorovas yra dainininkas ir kombainininkas.
  3. Mokiniai yra berniukai ir mergaitės..

Loginės operacijos, reliacinės operacijos ir aritmetinės operacijos dažnai pateikiamos toje pačioje išraiškoje. Šiuo atveju loginės operacijos ženklo kairėje ir dešinėje esantys ryšiai turi būti pateikti skliausteliuose, nes loginės operacijos turi didesnį prioritetą. Apskritai priimamas toks operacijų prioritetas:

  • ir, *, /, div, mod
  • arba +, -
  • santykių operacijos..

. Loginė operacija taip pat vadinama loginiu daugyba, o loginė operacija arba dar vadinama loginiu pridėjimu.

Be to, skliausteliuose galima keisti operacijų tvarką. Pavyzdžiui, loginėje išraiškoje sutvarkysime veiksmų tvarką

A arba B, o ne (A arba B)

Skliausteliuose esanti operacija arba atliekama pirmiausia, o po to ne ir, arba operacijos. Jei vietoj kintamųjų A ir B pakeisime reikšmes True ir False, tada, taikydami jau aptartą procedūrą, gausime visos išraiškos vertę, lygią True.

Pratimas . Užsirašykite į sąsiuvinį ir apskaičiuokite a=10, b=20, c=tiesa, d=klaidingų reiškinių reikšmes:

  • (a>5) ir (b>5) ir (a<20) and (b<30);
  • ne (a<15) or not (b<30);
  • c arba d ir (b=20);

Dėmesio! Paskalyje nėra galimybės įvesti Būlio duomenų naudojant skaitymo operatorių. Tačiau galima išvesti Būlio tipo kintamųjų reikšmes naudojant rašymo operatorių.

Pavyzdžiui, įvykdžius rašymo (5>2) teiginį, ekrane bus rodoma True.

Savarankiškas darbas

Su mokytoju iš toliau pateiktų pratimų išsirinkite užduotį savarankiškam darbui.

  1. Apskaičiuokite išraiškos reikšmes:

    a) sqr(x)+sqr(y)<=4 при x=0.3, y=-1.6;

    b) k mod 7 = k div5-1, kai k = 15;

    c) nelyginis(trunc(10*p)), kai p=0,182;

    d) neporinis(n), kai n=0;

    e) t ir (p mod 3 = 0), kai t = tiesa, p = 101010;

    e) (x*y<>0) ir (y>x), kai x=2, y=1;

    g) (x*y<>0) arba (y>x), kai x=2, y=1;

    h) a arba (ne b), kai a = klaidinga, b = tiesa;

  2. Paskalyje parašykite ryšį, kuris yra teisingas, jei tenkinama nurodyta sąlyga, o kitu atveju klaidingas:

    a) sveikasis skaičius k dalijasi iš 7;

    b) taškas (x, y) yra už spindulio R apskritimo, kurio centras yra taške (1,0);

    c) natūralusis skaičius N yra natūraliojo skaičiaus kvadratas;

    d) 0

    e) x=max(x,y,z);

    e) bent vienas iš loginių kintamųjų a ir b turi reikšmę True;

    g) abu loginiai kintamieji a ir b turi reikšmę True.

  3. Vertindami išraiškas nurodykite operacijų tvarką:

    a) a ir b arba ne c ir d;

    b) (x>=0) arba ne c ir d.

  4. Įvertinkite šias išraiškas, kai a = tiesa, b = klaidinga:

    a) a arba b, o ne a;

    b) (a arba b), o ne a;

    c) ne a ir b;

    d) ne (a ir b)

  5. Parašykite Pascal išraišką, kuri yra teisinga, jei tenkinama nurodyta sąlyga, o kitu atveju klaidinga:

    a) x priklauso atkarpai ;

    b) x yra už atkarpos ribų;

    c)* x priklauso segmentui arba [-1, 1];

    d)* x yra už atkarpų ribų ir [-1, 1];

    e) kiekvienas iš skaičių x, y, z yra teigiamas;

    g) nė vienas skaičius x, y, z nėra teigiamas;

    h) tik vienas iš skaičių x, y, z yra teigiamas;

    i) loginis kintamasis a turi reikšmę True, loginis kintamasis b turi reikšmę False;

    j)* metai su eilės numeriu y yra keliamieji metai (keliamieji metai, jei jų skaičius yra 4 kartotinis, bet iš 100 kartotinių tik 400 kartotiniai yra keliamieji metai, pavyzdžiui, 1700, 1800 ir 1900 yra nekeliamieji metai, 2000 yra keliamieji metai).

  6. Plokštumoje (x, y) nubrėžkite sritį, kurioje ir tik kurioje nurodyta išraiška yra teisinga:

    a)* (y>=x) ir (y+x>=0) ir (y<=1);

    b) (sqr(x)+sqr(y)<1) or (y>0) ir (abs(x)<=1);

    c) (trunc(y)=0 ir (round(x)=0);

    d)* (abs(x)<=1)>(abs(y)>=1);

    d) (sqr(x)+sqr(y)<=4)=(y<=x).

  7. Yra sąlyginis operatorius:
    jei d<>10
    tada
    writeln ('urray!')
    Kitas
    writeln('blogai...');

    Ar galima jį pakeisti tokiais teiginiais:

  8. Kokios bus kintamųjų j, k reikšmės įvykdžius sąlyginį sakinį:
    jei j>k
    tada
    j:=k-2
    Kitas
    dec(k,2);
    jei pradinės kintamųjų reikšmės yra lygios:
    a) j = 3, k = 5;
    b) j = 3, k = 3;
    c) j = 3, k = 2.

Pastaba . Vykdant dec (k,2) operatorių, kintamojo k reikšmė sumažinama 2.