Paskalis • V.B. • 12 E klase 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 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. • Vardas boolean yra parinktas žymaus mokslininko Džordžo Būlio (George Boole), tyrinėjusio matematinę logiką, garbei. Šio mokslininko vardu yra pavadinta atskira algebros šaka – Būlio algebra, kuri nagrinėja loginių reikšmių algebrą. 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). • 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: • -x • not a • Ir vienos, ir kitos operacijos ženklas rašomas prieš operandą. Minusas keičia skaičiaus ženklą priešingu, o inversija – loginę reikšmę priešinga. • Konjunkcijos (and) reikšmė yra lygi true tiktai tuo atveju, kai abiejų operandų reikšmės yra true. Visais kitais atvejais konjunkcijos reikšmę yra false: • false and false = false, • false and true = false, • true and false = false, • true and true = true. • Konjunkcijos rezultatus galima pavaizduoti lentele. • a • b • a and b • false • false • false • false • true • false • true • false • false • true • true • true • Disjunkcijos (or) reikšmė yra lygi true, jei bent vieno operando reikšmė yra true. Kitaip sakant, disjunkcijos reikšmė‚ yra true, jei pirmojo arba antrojo operando reikšmė yra true (dėl to disjunkcija kartais vadinama operacija arba): • false or false = false, • false or true = true, • true or false = true, • true or true = true. • Disjunkcijos rezultatus galima pavaizduoti lentele. • a • b • a and b • false • false • false • false • true • true • true • false • true • true • true • true • Loginiai reiškiniai, panašiai kaip ir aritmetiniai, gali būti ir sudėtingesni, pavyzdžiui, • a and b and c, • a or b or c. • Loginių operacijų atlikimo tvarką nurodo skliaustai. O jeigu skliaustų nėra, tai operacijos atliekamos šia prioritetų eile: • not • and • or • T.y., pirmiausiai atliekamas neigimas, po to – konjunkcija ir paskiausiai – disjunkcija. • Vienodo prioriteto operacijos atliekamos iš kairės į dešinę. Pavyzdžiui, reiškinio • a or b or c or d and d and f • reikšmė skaičiuojama taip, lyg būtų šitaip surašyti skliaustai: • ((a or b) or c) or ((d and e) and f). • Programoje loginės reikšmės dažniausiai atsiranda kaip skaičių (aritmetinių reiškinių) lyginimo rezultatas. Vartojamos 6 lyginimo operacijos, kurios Paskalio kalboje žymimos šitaip: • nelygu , • > daugiau, • >= daugiau arba lygu . • Pateiksime lyginimo operacijų ir jų rezultatų pavyzdžių. • 5 6 false • 5 > 5 false • 5 >= 5 true • 5-1 5) and (x 5 and x = 1896) and (metai mod 4 = 0); • writeln(olimp) • end. • Jeigu kompiuteriui pateiksime pradinį duomenį 1999, tai jis ekrane parodys rezultatą • FALSE • nes 1999-ieji metai neolimpiniai. • Jei kompiuteriui pateiksime skaičių 2000, tai ekrane pamatysime žodį • TRUE • Aiškiau būtų, jeigu ekrane išvystume informatyvesnį pranešimą, pavyzdžiui, • OLIMPINIAI arba NEOLIMPINIAI • Pateiktas pavyzdys iliustruoja, kaip į ekraną rašomos loginės reikšmės. Tačiau nei Paskalio standartas, nei Turbo Paskalis nenumato loginių reikšmių skaitymo. Mat loginės reikšmės neturi visuotinai priimtų žymenų, kaip, pavyzdžiui, skaičiai. Paskalio programų tekstuose vartojami loginių reikšmių vardai true ir false gali pasirodyti per ilgi tiems kas ruošia pradinius duomenis. Todėl ten jie dažnai žymimi trumpiau (T ir F arba 0 ir 1). Tokiais atvejais rašoma loginių duomenų skaitymo programa, pritaikyta konkrečiam loginių reikšmių žymėjimui. Klausimai savikontrolei: • Kokios yra galimos loginių duomenų reikšmės? • Kaip aprašomi loginiai duomenys Pascal’yje (Koks bazinis žodis vartojamas nusakant loginius duomenis)? • Ar būtina vadovautis tipų derinimo taisykle priskyrimo sakinyje, jei jame dalyvauja loginiai duomenys? • Kokios operacijos atliekamos su loginio tipo duomenimis? • Koks bazinis žodis naudojamas inversijai Pascal’yje? • Kada konjunkcijos rezultatas bus TRUE? • Kada disjunkcijos rezultatas bus TRUE? • Kokiu prioretiškumu vadovaujamasi vykdant reiškinį su loginėmis operacijomis? • Kaip atliekamos vienodo prioriteto operacijos? • Kokios vartojamos lyginimo operacijos Pascal’yje? • Kokia tvarka atliekamos lyginimo operacijos (reiškinyje su konjunkcija ar disjunkcija) jei nėra skliaustų? • Kaip realizuojama dviguba (triguba, n-guba) nelygybė Pascal’yje? • Ar galima palyginti loginius duomenis? • Ar galima naudoti procedūras Read arba ReadLn su boolean tipo argumentais? EILUTĖS (string) tipas. (aprašai, operacijos: length,“+”, palyginimas) • Turbo Paskalyje realizuotos dinaminės, t.y. kintamo ilgio, eilutės. Jos apibrėžiamos string tipu. Šio tipo kintamajam galima priskirti bet kokio ilgio eilutę, neviršijančią nurodyto maksimalaus ilgio. String tipo sintaksė šitokia: • Sveikasis skaičius be ženklo nurodo maksimalų eilutės ilgį. Maksimalus ilgis gali būti nuo 1 iki 255. Jei eilutės tipo apraše nenurodytas maksimalus eilutės ilgis, tai jis laikomas lygiu 255. Eilutės aprašo pavyzdžiai: • var vardas: string[10]; • pavarde: string; Operacijos atliekamos su eilutės tipo kintamaisiais: 1. Eilutės ilgį pateikia standartinė funkcija length, pavyzdžiui: Length(‘kuku’) = 4. • Programos pavyzdys: • program eilutes_ilgis; • var a: string[10]; • b: integer; • begin • readln(a); • b := length(a) • writeln(b); • end. • Programos analogas: • program eilutes_ilgis; • var a: string[10]; • begin • readln(a); • writeln(length(a)); • end. • 2. Dinaminėms eilutėms apibrėžta sąjungos operacija , žymima simboliu “+”. Operacijos S+T rezultatas yra eilutė, sudaryta iš eilučių S ir T reikšmių. Pavyzdžiui, ‘Turbo’ + ‘ Pascal’ -> ‘Turbo Pacal. Tačiau: ‘Turbo’ + ‘Pacal’ -> ‘TurboPascal’, t.y. tarpai eilutėje neignoruojami, o įvertinami, kaip normalus simboliai. Pav.: length(‘a a’) -> 7 • Dinamines eilutes galima lyginti (atlikti operacijas: =, , =, ). Lyginami atitinkami simboliai iš kairės į dešinę. Jei eilučių ilgiai skirtingi, tai laikoma, kad kiekvienas ilgesniosios eilutės simbolis, kurio neatitinka joks trumpesniosios eilutės simbolis, turi didesnę reikšmę. Pav.: ‘at’ > ‘a’. Paprasčiau tariant, lyginama iš kairės į dešinę ir didesnis tas, kurio analizuojamas simbolis “didesnis”.
Šį darbą sudaro 1754 žodžiai, tikrai rasi tai, ko ieškai!
★ Klientai rekomenduoja
Šį rašto darbą rekomenduoja mūsų klientai. Ką tai reiškia?
Mūsų svetainėje pateikiama dešimtys tūkstančių skirtingų rašto darbų, kuriuos įkėlė daugybė moksleivių ir studentų su skirtingais gabumais. Būtent šis rašto darbas yra patikrintas specialistų ir rekomenduojamas kitų klientų, kurie po atsisiuntimo įvertino šį mokslo darbą teigiamai. Todėl galite būti tikri, kad šis pasirinkimas geriausias!
Norint atsisiųsti šį darbą spausk ☞ Peržiūrėti darbą mygtuką!
Mūsų mokslo darbų bazėje yra daugybė įvairių mokslo darbų, todėl tikrai atrasi sau tinkamą!
Panašūs darbai
Kiti darbai
Atsisiuntei rašto darbą ir neradai jame reikalingos informacijos? Pakeisime jį kitu nemokamai.
Pirkdamas daugiau nei vieną darbą, nuo sekančių darbų gausi 25% nuolaidą.
Išsirink norimus rašto darbus ir gauk juos akimirksniu po sėkmingo apmokėjimo!