PROGRAMAVIMO PAGRINDAI
Kompiuterinės matematikos pradžių pradžia ir pagrindų pagrindas – du skaičiai: nulis ir vienetas
1. Dvejetainė logika1.1. Skaičiavimo sistemos
Skaičiavimo sistema yra visuma būdų ir priemonių, leidžianti užrašyti ar kitaip pateikti skaičius. Skaitmens reikšmė priklauso nuo užimamos vietos (pozicijos) skaičiuje.Skaičiavimo sistemos pagrindu laikomas skaičius, kuris parodo kiek kartų padidėja arba sumažėja vieno ir to paties skaitmens reikšmė, kai jis perkeliamas į vieną iš šalia esančių pozicijų. Bet kokį skaičių galima pateikti formule:
čia: Nq – pateikiamasis skaičius; q – skaičiavimo sistemos pagrindas; n+1 – skaitmenų kiekis skaičiuje, nes mažiausioji dešinė skaičiaus skiltis žymima ne vienetu, o nuliu.Jeigu skaičius trupmeninis, tai jo išraiškoje:
trumpesnė dalis žymima neigiamais n. Kiekvieno skaitmens reikšmė trupmeninėje dalyje q kartų mažesnė už prieš jį einantį tokį pat skaitmenį :
Šiuo metu kompiuterijoje neįmanoma apsieiti be trijų skaičiavimo sistemų: dešimtainės (q = 10), dvejetainės (q = 2) ir šešioliktainės (q = 16).Dešimtainė skaičiavimo sistema naudojama, kaip visuotinai priimta ir pripažinta sistema, turinti dešimt skirtingų simbolių skaitmenims pažymėti. Dvejetainė skaičiavimo sistema teturi tik du simbolius. Tai 0 ir 1. Ji yra elektroninių schemų pagrindas, nes tik tokia sistema leidžia skaitinėmis reikšmėmis nustatyti elektroninių schemų būvį. Elektros krūvio buvimas tam tikruose schemos taškuose gali būti laikomas vienetu, o nebuvimas – nuliu (arba atvirkščiai).Kad žmogui būtų suprantami kompiuterio apdorojimui pateikiami skaičiai bei apdorojimo rezultatai, ir kad kompiuteris galėtų atlikti tokį apdorojimą, būtina skaičius iš dešimtainės skaičiavimo sistemos galėti pervesti į dvejetainę ir atvirkščiai, iš dvejetainės į dešimtainę skaičiavimo sistemą. Toks skaičių pervedimas nėra paprastas ir patogus, todėl naudojama tarpinė šešioliktainė skaičiavimo sistema, o šešioliktainiai simboliai gali būti tiesiogiai perkeliami į dvejetainę skaičiavimo sistemą.q16 q2 q100 0000 01 0001 12 0010 23 0011 34 0100 45 0101 56 0110 67 0111 78 1000 89 1001 9A 1010 10B 1011 11C 1100 12D 1101 13E 1110 14F 1111 15
Tiesioginis šešioliktainio skaičiaus pervedimas į dvejetainį skaičių reiškia, kad šešioliktainio skaičiaus, pavyzdžiui, 1F3 kiekvienas skaitmuo bus išreiškiamas atitinkama dvejetainio skaičiaus tetrada (keturių dvejetainių skaitmenų grupė):
arba 1F316 = 0001111100112 = 1111100112.
Dešimtainis skaičius 6783 pertvarkomas į šešioliktainį paprastos dalybos ir atimties veiksmais:
6783 : 16 = 423 ir liekana 15 = F 423 : 16 = 26 ir liekana 7 26 : 16 = 1 ir liekana 10 = A.
Tai reiškia, kad
678310 = 1A7F16 = 11010011111112 .
Ir atvirkščiai – šešioliktainis skaičius 1A7F pertvarkomas į dešimtainį taip pat paprasta daugybos ir sudėties seka:
1 x 16 = 16, 16 + A = 26, 26 x 16 = 416, 416 + 7 = 423,423 x 16 = 6768,6768 + F = 6783 10.
Aštuntainė skaičiavimo sistema yra analogiška šešioliktainei ir taip pat gali tarnauti tiesioginiam skaičių pertvarkymui iš dešimtainės į dvejetainę bei iš dvejetainės į dešimtainę skaičiavimo sistemas. Aštuntainės sistemos skaitmenys pervedami į dvejetainę sistemą triadomis (grupėmis po tris dvejetainius skaitmenis) :
q8 0 1 2 3 4 5 6 7 10 11q2 000 001 010 011 100 101 110 111 001000 001001q10 0 1 2 3 4 5 6 7 8 9
Tegu duotas aštuntainis skaičius 763, tai dvejetainis skaičius bus:
,
tai 7638 = 1111100112.
Nesunku pastebėti, kad 1F316 ir 7638 yra toks pat dvejetainis skaičius 1111100112, tad 1F316 = 7638 .Pervedus 1F316 ir 7638 į dešimtainę skaičiavimo sistemą gaunama:
1 x 16 = 16 7 x 8 = 56 16 + F = 31 56+ 6 = 6231 x 16 = 496 62 x 8 = 496 496+ 3 = 49910 496+ 3 =49910
Nežiūrint į tai, kokioje skaičiavimo sistemoje pateiktas skaičius, jo didumas lieka toks pat:
49910 = 1F316 = 7638 = 1111100112 .
Trupmenos iš dešimtainės į dvejetainę sistemą pervedamos kiek kitaip nei sveikieji skaičiai .Tegu duota trupmena 0.25710:
.257 16 = 4.112 = 4+ .112,.112 16 = 1.792 = 1 + .792,.792 16 = 12.672 = C + .672,.672 16 = 10.752 = A + .752,.752 16 = 12.032 = C + .032,——————————————-.25710 = .41CAC…16 = .100 0001 1100 1010 11002.
Gautą šešioliktainę trupmeną .41CAC16 pervesime vėl į dešimtainę trupmeną:
12 : 16 = .75, 10 + .75 = 10.75;10.75 : 16 = .671875, 12+.671875 = 12.671875,12.671875 : 16 = .791992188 1+.791992188 = 1.791992188,1.791992188 : 16 = .111999512, 4+.111999512 = 4.111999512,4.111999512 : 16 = .25699997 .25710 .
Pervedant dešimtaines trupmenas į šešioliktaines, pervedimas gali būti labai ilgas (kol trupmeninė dali bus lygi nuliui) todėl dažniausiai tenka pervedimą užbaigti, kai pasiekiamas norimas tikslumas.Pervedant šešioliktaines trupmenas į dešimtaines, dažniausiai tenka apvalinti trupmenas, nes pervedimas gali tęstis neribotai.Pervedant iš vienos skaičiavimo sistemos į kitą skaičius, kuriuos sudaro sveikoji ir trupmeninė dalys, ir sveikoji ir trupmeninė dalis pervedamos atskirai.Skaičių pervedimas tesudaro tik nedidelę viso manipuliavimo skaitmeniniais duomenimis dalį.Svarbiausias vaidmuo tenka dvejetainei aritmetikai ir Bulio algebrai.
1.2. Dvejetainė aritmetikaDvejetainės aritmetikos pagrindas – tai sudėties, atimties ir daugybos veiksmai parodyti lentelėje:
Sudėtis Atimtis Daugyba0 + 0 = 0 0 – 0 = 0 0 0 = 01 + 0 = 1 1 – 0 = 1 1 0 = 00 + 1 = 1 1 – 1 = 0 0 1 = 0 1 + 1 = 10 10 – 1 = 1 1 1 = 1
Sudedant skaičius vieneto pernešimas vyksta į didesniąją (į kairę) tada, kai sudedama 1+1=10.
(1011 + 1010= 10101)2 , (B + A = 15)16 , (11 + 10 = 21)10 .
Neturėtų kelti abejonių B + A = 15, nes
q16 … A B C D E F 10 11 12 13 14 15 …q10 … 10 11 12 13 14 15 16 17 18 19 20 21 …
Skaičius atimant, prireikus vyresniosios skilties vienetą pernešti į dešiniąją skiltį (pasiskolinti), pastarojoje skiltyje atsiranda du vienetai (t.y. 10), o tarpinėse nulinėse skiltyse – po vieną vienetą, nes kitas vienetas “keliauja” iki mažiausiosios skilties į kurią skolinamasi. Todėl pastarojoje skiltyje prieš atimant atsiranda du dvejetainiai vienetai.
(16 – 9 = D)16 , (10110 – 1001 = 1101)2 , (22 – 9 = 13)10 .
Dvejetainių skaičių daugybos ir dalybos veiksmai analogiški dešimtainių skaičių daugybos ir dalybos veiksmams.
1101+ 101 (D x 5 = 41)16 1101 0000 (13 x 5 = 65)10 1101 1000001 6510 = 4116
1000110 111 (46 : 7 = A)16 111 1010 111 (70 : 7 = 10)10 111 0 1010 = A16 .
Po pirmojo atimties veiksmo iš penktos dalijamojo skilties nukeliamas vienetas, bet 11 nepakanka dalijimui iš 111. Todėl nulį įrašome į dalmens antrąją skiltį ir paimame dar vienetą iš dalijamojo šeštos skilties. Likusį nulį iš septintos dalijamojo skilties tiesiai pernešame į dalmenį, t.y. visi veiksmai yra analogiški dešimtainių skaičių dalybos veiksmams.
1.3. Loginės operacijosIš 1.1. ir 1.2. poskyrių matyti, kad bet kuriam šešioliktainiui skaitmeniui užrašyti pakanka keturių dvejetainių skilčių arba tetrados. Bet tetradoje kitokių ženklų užrašyti neįmanoma, nes jų niekaip negalėtume atskirti nuo šešioliktainių skaitmenų. Todėl raidėms, matematiniams simboliams ir kitokiems ženklams užrašyti skiriama dar viena tetrada. Taigi skaičiams ir kitokiems simboliams užrašyti naudojami aštuonios dvejetainės skiltys, kurie vadinami bitais, o visa aštuonių bitų struktūra vadinama baitu. Baite gali tilpti bet kokios 0 ir 1 kombinacijos nuo 00000000 iki 11111111, t.y. nuo 0016 iki FF16 arba 1+255=25610 , nes FF16 = 25510 .
Akivaizdu, kad neskaitiniams simboliams apdoroti dvejetainė aritmetika netinka. Tam naudojamos loginės operacijos. Pagrindinės loginių operacijų kategorijos yra : tiesa, teisinga, kurios žymimos skaičiumi 1, ir netikra, netiesa, melas – skaičiumi 0.Loginės operacijos vadinamos ARBA (loginė sudėtis, disjunkcija), IR (loginė daugyba, konjunkcija), IŠSKIRTINĖ ARBA (neekvivalentumas), NE (loginis neiginys, inversija).Šiame poskyryje apsiribosime keturių loginių operacijų analize, nors tokių operacijų yra ir daugiau (NEIŠSKIRTINĖ ARBA, implikacija ir kt.).Nors pabrėžėme, kad dvejetainiams simboliams vienareikšmiškai apibrėžti keturių dvejetainių ženklų struktūros (tetrados) per maža, loginių operacijų esmės analizei to pilnai pakanka.Loginės operacijos žymimos simboliais:ARBA – v, IR – , IŠSKIRTINĖ ARBA – , Ne – .
Loginių operacijų esmė atskleidžiama lentelėje:
Loginių operacijų lentelė 1.1.
Operacijų pavadinimai: ARBA IR IŠSKIRTINĖ ARBA NEŽymėjimai : v Operacijos : 0101v 1001 1101 0101 1100 0100 1010 1100 0110 0101 1010
Visoms loginėms operacijoms bendra yra tai, kad tarp savęs lyginami vienodai nuo skaičiaus pradžios atitolę bitai ir jų palyginimo rezultatas visada arba 1 arba 0 ir niekada, kaip dvejetainėje aritmetikoje, jis nepereina į aukštesnę skiltį. Taigi loginės operacijos rezultatas gali būti tik tiesa (1) arba netiesa (0) ir joks kitoks būti negali. Pažymėtini loginių operacijų tarpusavio skirtingumai.Loginėje operacijoje ARBA, kitaip dar vadinamoje sudėtimi arba disjunkcija, bitų palyginimo rezultatas visais atvejais yra vienetas, išskyrus tuos atvejus, kai tarp savęs lyginami nuliai. Pastarojo palyginimo rezultatas – nulis.Loginė operacija IR, kitaip dar vadinama logine daugyba arba konjunkcija, visais bitų palyginimo atvejais rezultatai yra nuliai, išskyrus tą atvejį, kai tarp savęs lyginami vienetai. Pastaruoju atveju rezultatas yra vienetas.Loginėje operacijoje IŠSKIRTINĖ ARBA lyginami skirtingi bitai rezultatą turi vienetą, o vienodi – nulį. Kitaip ši operacija dar vadinama, kaip jau buvo minėta, neekvivalentumu.Loginis neiginys NE operuoja su vienu dvejetainiu simboliu, jį paversdamas taip vadinamu atvirkščiu simboliu. Tai reiškia, kad rezultato analogiškose vietose vienetai yra pakeičiami nuliais, o nuliai vienetais.Lentelėje 1.1 pateiktos operacijos naudoja keturženklius dvejetainius skaičius vizualinio aiškumo sumetimais. Praktikoje tokios operacijos gali būti atliekamos su bet kokio didumo dvejetainiais skaičiais ar simboliais, turinčiais vienodą arba skirtingą bitų kiekį.Loginių operacijų esmę sudaro tai, kad jos įgalina sužinoti apie dvejetaines struktūras ir prireikus jas tinkamai pakeisti. Tai ypač svarbu, nes kompiuterio atmintyje esančių dvejetainių struktūrų tiesiogiai vizualiai matyti neįmanoma. Tai atliekama operacijai pateikiant taip vadinamą šabloną, t.y. iš anksto žinomą dvejetainę struktūrą.Toliau pateiksime loginių operacijų panaudojimo pavyzdžių. Tegu viename baite užrašoma tam tikrų procesų valdymo informacija. Tai reiškia, kad įjungus, t.y. įrašius į tam tikras baito skiltis vienetus procese tas bitas dalyvauja, o jeigu bitas nulinis, tai ta skiltis konkrečiame procese nedalyvauja. Taigi, kaip buvo anksčiau minėta, baitas gali turėti iš viso 256 įvairias procesų valdymo perjungėjų padėtis nuo padėties HEX ’00’ iki padėties HEX ’FF’. Raidės HEX reiškia šešioliktainį skaičių (angliškai – hexadecimal). Apostrofuose nurodytas pats šešioliktainis skaičius. Visoms operacijoms naudojama ta pati duomenų pateikimo forma :
Baitas prieš operaciją HEX ‘00’ 0000 0000 ?Baitas – šablonas HEX ‘00’ 0000 0000
Baitas po operacijos HEX ‘00’ 0000 0000
Čia pateikiami šešioliktainiai skaičiai : baito turinys prieš operaciją, baitas – šablonas ir baito turinys po operacijos. Be to kiekvienas skaičius pateikiamas dvejetaine forma, kuri padeda vizualiai suvokti sprendžiamo uždavinio procesą. Baitas – šablonas tai duomenys parinkti taip, kad būtų galima išspręsti konkretų uždavinį, esant tam tikram pradiniam baito būviui ir naudojant loginę operaciją, kurios žymėjimo simbolis įrašomas vietoj simbolio “?”.
Operacijos ARBA.1) Pakeiskite pirmojo bito turinį į vienetą (padėtį “Įjungta”) taip, kad kiti bitai nepasikeistų.
Baitas prieš operaciją HEX ‘0F ’ 0000 1111 vBaitas – šablonas HEX ‘80’ 1000 0000
Baitas po operacijos HEX ‘8F ’ 1000 1111
2) Įjunkite du perjungėjus HEX ‘28’, nors prieš operaciją tebuvo įjungtas tik vienas iš jų HEX ‘20’.Baitas prieš operaciją HEX ‘20’ 0010 0000 vBaitas – šablonas HEX ‘08’ 0000 1000
Baitas po operacijos HEX ‘28 ’ 0010 1000
3) Nustatykite tik žemesniosios (dešinės) baito tetrados turinį.Baitas prieš operaciją HEX ‘49 ’ 0100 1001 vBaitas – šablonas HEX ‘F0’ 1111 0000
Baitas po operacijos HEX ‘F9 ’ 1111 1001
Operacijos IR.1) Išjunkite perjungėjus HEX ‘26’.Baitas prieš operaciją HEX ‘FF ’ 1111 1111 Baitas – šablonas HEX ‘D9 ’ 1101 1001
Baitas po operacijos HEX ‘D9 ’ 1101 1001
2) Išjunkite visus perjungėjus, kurie buvo įjunkti.Baitas prieš operaciją HEX ‘92 ’ 1001 0010 Baitas – šablonas HEX ‘00 ‘ 0000 0000
Baitas po operacijos HEX ‘00 ’ 1111 1001
Operacijos IŠSKIRTNĖ ARBA
1) Tegu turime atliktą IŠSKIRTINĘ ARBA operaciją :Baitas prieš operaciją HEX ‘7D ’ 0111 1101 Baitas – šablonas HEX ‘FF ‘ 1111 1111
Baitas po operacijos HEX ‘82 ’ 1000 0010
Šią operaciją su pateikiamu šablonu HEX ‘FF ’ galime naudoti, kai norime sužinoti, ar prieš operaciją baitas nebuvo nulinis : HEX ‘FF’. Taip pat šia operacija galima pakeisti pradinio baito turinį atvirkščiu t.y nuliniai bitai keičiami vienetais, o vienetiniai nuliniais.
2) Perjunkite aukštesniąją baito tetradą į atvirkštinį būvį, žemesniąją tetradą palikus nepakitusia.
Baitas prieš operaciją HEX ‘96 ’ 1001 0110 Baitas – šablonas HEX ‘F0 ‘ 1111 0000
Baitas po operacijos HEX ‘66 ’ 0110 0110
Loginių operacijų naudojimas duomenų paieškoje.Tegu turime tam tikrą sąrašą asmenų, kurie charakterizuojami baito turiniu:
1 bitas Vyras / ne 1 / 0, 2 bitas Vedęs / ne 1 / 0,3 bitas 25 metų / daugiau 1 / 0,4 bitas Aukštasis mokslas / n e 1 / 0,5 bitas Gimęs Lietuvoje / ne 1 / 0,6 bitas Neturi savo namo / turi 0 / 1,7 bitas Neturi vairuotojo teisių / turi 0 / 1,8 bitas Lietuvis / ne 1 / 0.
Žinodami kiekvieno bito kiekviename sąrašo baite reikšmę, galime tinkamai parinkti baitą – šabloną, kad sužinotume kiek yra sąraše asmenų, turinčių reikalingas savybes. Jeigu baitą šabloną parinksime HEX ‘80’, tai logiškai daugindami (operacija IR – ) jį iš vieno sąrašo baito, rezultato baite gausime HEX ‘80’, tai reiškia, kad tame sąrašo baite buvo charakterizuojamas vyras. Jeigu sąrašo baite aprašoma moteris, tai rezultato baitas bus HEX ‘00’. Logiškai dauginant kiekvieną sąrašo baitą iš šablono ir po kiekvienos daugybos veiksmo rezultato baitą sudedant su dvejetainiu žodžiu a= HEX ’0000’, pabaigę veiksmus su sąrašu, žodyje a gausime skaičių, kuris parodo, kiek sąraše yra vyrų.
Panašiai elgdamiesi, visus sąrašo asmenis, pagal jų savybes, galime sugrupuoti į 256 sąrašus ir apskaičiuoti kiek asmenų yra kiekviename iš tų sąrašų.Jeigu asmenų sąrašo baitas HEX ‘00’, tai reiškia, kad šiame baite charakterizuojama: moteris, nevedusi, daugiau, kaip 25 metų, neturinti aukštojo mokslo, gimusi ne Lietuvoje, neturinti savo namo, neturinti vairuotojo teisių, nelietuvė. Jeigu sąrašo baitas HEX ‘FF’, tai reiškia, kad šiame baite charakterizuojamas asmuo turi tokias savybes: vyras, vedęs, 25 metų, turintis aukštąjį išsilavinimą, gimęs Lietuvoje, turintis savo namą, turintis vairuotojo teises, lietuvis. Norint sužinoti visas minėtas asmens savybes tenka pateikti baitą – šabloną HEX ‘FF’ ir atlikti loginę operaciją IR. Akivaizdu, kad pateikus baite – šablone bet kokią kitą bitų kombinaciją, nustatysime ar turi analizuojamas asmuo tokias savybes, ar tik dalį tų savybių. Loginės daugybos rezultatų sumavimui parinkta dviejų baitų vieta a todėl, kad galėtume joje sukaupti didesnį analizuojamų asmenų skaičių negu 255, kurie telpa viename baite. Dviejuose baituose tilps skaičius FFFF16, t.y. 6553510.Naudodamiesi loginėmis aritmetinėmis operacijomis, reikiamai parinkdami operacijų vykdymo eiles, parinkdami įvairiausius šablonus, t.y. operacijų vykdymo parametrus ir kintamuosius, turime praktiškai neribotas manipuliavimo dvejetainiais duomenimis galimybes. Todėl šiuolaikiniai kompiuteriai, naudojantys dvejetainę logiką turi irgi tokias pat galimybes.1.4. Dvejetainės operacijos diskrečiuose kompiuterio elementuoseŠiame poskyryje parodoma principinė aritmetinių ir loginių operacijų atlikimo galimybė kompiuteryje. Operacijų demonstravimui į kompiuterio fizinę realizaciją neatsižvelgiama. Kompiuterio elementai nuolat kinta, tobulėja, o dvejetainių operacijų matematika lieka ta pati. Kad dvejetainių operacijų demonstravimas diskrečiame kompiuterio elemente būtų akivaizdesnis ir lengviau suvokiamas, tas elementas vaizduojamas schema, kurią sudaro elektros grandinė, susidedanti iš magnetinių (a ir b) ir elektromagnetinių įtaisų (A ir B), kontaktų ir elektros srovės šaltinio ir išėjimo arba operacijos rezultato taško C (pav. 1.1).
Pav. 1.1. Diskretus kompiuterio elementas
Dvejetainė informacija schemai pateikiama elektros srovės buvimu arba nebuvimu A ir B taškuose. Jeigu taškuose A ir B srovės nėra, tai kontaktus veikia magnetai a ir b, o jei yra, tai kontaktus veikia stipresni elektromagnetai taškuose A ir B. Jeigu abu kontaktai susijungia, tai rezultato (išėjimo) taške C įtampa yra, o jei bent vienas kontaktas nesujungtas, tai taške C įtampos nėra. Įtampos buvimas taškuose A, B ir C reiškia vienetą (1), o nebuvimas – nulį (0).Tegul į taškus A ir B pateikiami duomenys dvejetainėmis kombinacijomis:
A 0101, B 0011,
o taške C parodoma rezultatinė informacija priklausys nuo schemos, realizuojančios operacijas v, , ir .Pradiniai duomenys ir jų dvejetainės sąveikos rezultatas schemose visada vaizduojami vienodai nutolę nuo visų trijų dvejetainių skaičių pradžios.Žemiau pateikiamos pagrindinių loginių operacijų techninės realizacijos principinės schemos, vaizduojamos kaip diskretūs kompiuterio elementai.
Pav. 1.2. Operacijos ARBA (disjunkcijos) schema.
Pav. 1.3. Operacijos IR (konjukcijos) schema.
Pav. 1.4. Operacijos NE (inversijos) schema
Operacija IŠSKIRTINĖ ARBA yra žymiai sudėtingesnė ir paprastose schemose, kurios čia buvo pateiktos, negali būti realizuota todėl, kad vienu metu ir abiejų nulių ir abiejų vienetų operacijų rezultatas turi būti toks pat, t.y. lygus nuliui. Operacija IŠSKIRTINĖ ARBA gali būti atlikta sujungus į vieną sistemą ar tam tikrą diskrečių elementų rinkinį keletą diskrečių elementų, kuriuos galima išreikšti formule:
(m n) [ (m n)] (1.1)Čia m ir n yra bet kurie keturženkliai dvejetainiai skaičiai. Operacija ARBA (m v n) parodo, kuriose m ir n skiltyse sutampa nuliai. Ten rezultatas bus nulis. Operacija IR (m n) parodo, kuriose m ir n skiltyse sutampa vienetai. Jei tokių sutapimų nebūtų, visos operacijos esmė vis vien nesikeistų. Operacija NE, taikoma operacijos IR rezultatui (loginei sandaugai) ir pakeičia jį atvirkštiniu. Tai reiškia, kad abu gautieji dvejetainiai skaičiai turi nulius tose skiltyse, kur du pradiniai duomenys buvo vienodi, t.y. arba vienetai, arba nuliai. Taigi šiuos gautuosius dvejetainius skaičius dar kartą logiškai sudauginus gaunami vienetai tose skiltyse, kur pradiniai duomenys buvo skirtingi. Tai ir yra operacijos IŠSKITINĖ ARBA rezultatas (žiūr. lentelę 1.1).Tegu m = 0101, o n = 0011, tai
(m n) [ (m n)] =(0101 0011) [ (0101 0011)]== 0111 ( (0001)) = 0111 1110 = 0110.
Skaičius 0110 yra toks pat, kuris gaunamas, jeigu būtų atlikta operacija IŠSKIRTINĖ ARBA iš pat pradžių:
m n = 0101 0011 = 0110.
Diskrečius kompiuterio elementus, pateiktus pav. 1.2, 1.3 ir 1.4 sujungus į tam tikrą rinkinį pagal formulę (1.1) gaunama operacijos IŠSKITRINĖ ARBA schema (pav. 1.5).Nesunku įsitikinti, kad panašiai konstruojant schemas, kaip tai buvo padaryta operacijų ARBA, IR, NE, ir ypač IŠSKIRTINĖS ARBA atlikimui, galima sudaryti schemas bet kokios aritmetinės ar loginės operacijos realizavimui. Tai ypač akivaizdu, kai diskretūs elementai sudaromi elementarioms (daugiau nedalomoms) dvejetainėms procedūroms. Tokioje operacijoje dalyvauja tik du dvejetainiai vienženkliai skaičiai. Tokių dvejetainių operacijų bei jų schemų su dviem dvejetainiais vienženkliais skaičiais pakanka turėti penkiolika, kad būtų galima sudaryti bet kokios aritmetinės ar loginės operacijos atlikimo schemas (pav. 15).Elementarių operacijų 1, 2, 3 ir 4 (žiūr. lent. 1.2)pradiniai duomenys sudaro visas įmanomas dvejetaines kombinacijas, o jų rezultatai yra lygūs nuliams. Tokių pat kombinacijų rezultatai lygūs vienetams (operacijos 5, 6, 7 ir 8). Operacijos 9 ir A yra inversijos. Operacijos B, C, D ir E nėra kai kurių 1 – 8 operacijų pakartojimas, nes čia operacijos rezultatai siejami su vieneto ar nulio padėtimi, tai reiškia, kad rezultatas priklauso nuo to, kuris iš operandų (pirmas ar antras) yra vienetas arba nulis.Operacija F prie elementarių operacijų priskiriama tik sąlyginai, nes ją galima realizuoti tik sudėtingesne diskrečia kompiuterio elemento schema. Šią operaciją jungiant su kitomis nuo 1 iki E elementariomis operacijomis, galima atlikti bet kuriuos anksčiau pateiktus aritmetinius veiksmus.
Kadangi elementarių operacijų kiekiai bei jų integravimo kombinacijų įvairovė šiuolaikiniuose kompiuteriuose praktiškai mažai ribojami, tai įmanoma įvairiausias schemas integruoti taip, kad jos galėtų atlikti bet kokį reikiamą kiekį ir reikiamo sudėtingumo logines – matematines procedūras.Anksčiau pateiktos aritmetinės ir loginės operacijos leidžia suvokti dvejetainio manipuliavimo duomenimis esmę ir parodo šio proceso neribotas manipuliavimo duomenimis galimybes. Kita vertus, pateiktasis aritmetikos ir logikos realizavimo būdas gali būti visiškai kitoks. Tai reiškia, kad duomenų baite vienetas gali būti visiškai kitaip pateiktas, negu buvo pateikta poskyryje 1.1. Svarbu, jog fizinė schema “suvoktų”, kad ji turi reikalą su vienokiu ar kitokiu skaičiumi ar simboliu ir galėtų jį reikiamai apdoroti, pagal savo pačios paskirties funkciją.Pav. 1.5. Operacijos IŠSIKRTINĖ ARBA schema.
Elementarių operacijų lentelė 1.2.
Operacijos kodai 1 2 3 4 5 6 7 8 9 A B C D E FPradiniai duomenys 0 0 1 10 1 0 1 0 0 1 10 1 0 1 1 0 1 00 1 1 00 1 11Operacijos rezultatai 0 0 0 0 1 1 1 1 0 1 0 0 1 1 1 0
Praktikoje naudojamos įvairios skaičių, raidžių ar kitokių simbolių dvejetainio kodavimo sistemos. Net kai kurie skirtingų gamintojų kompiuteriai turi skirtingus vidinius kodus. Tokie skirtingumai netrukdo keistis duomenimis, nes perkodavimo principai labai paprasti ir lengvai fiziškai realizuojami.Perkodavimui imama 256 baitų lentelė, kurios baituose įrašomi dvejetainiai simboliai tos kodavimo sistemos, į kurią norima perkoduoti. Perkoduojamieji simboliai traktuojami kaip skaičiai, kurie nurodo reikiamo baito vietą lentelėje. Tame baite ir yra įrašytas šio perkoduojamojo simbolio atitikmuo. Pavyzdžiui, jeigu tam tikroje kodavimo sistemoje simbolis A yra šešioliktainis skaičius F1, tai jo atitikmuo, simbolis A, sistemoje, į kurią tas A perkoduojamas, turi būti įrašytas lentelės 241 baite, skaičiuojant nuo tos lentelės pradžios, nes
F116=24110 .
Pabrėžtina, kad nuo schemų realizavimo lygmens priklauso kompiuterių paskirtis. Jeigu schemos realizuotos taip, kad kompiuteris sprendžia galutinio vartotojo uždavinius, tai toks kompiuteris dažniausiai būna specialios paskirties kompiuteriu, t.y. sukurtas ribotam kiekiui konkrečių uždavinių spręsti. Tai gali būti labai įvairi kompiuterinė technika, nuo kompiuterio paprastų elementų panaudojimo įvairiuose įrenginiuose iki specialių kompiuterių, valdančių ištisus technologinius procesus. Jeigu kompiuterių schemos realizuotos taip, kad galutinio vartotojo uždavinio tiesiogiai nesprendžia, tai tokie kompiuteriai laikytini universaliais. Šių kompiuterių schemos sprendžia tam tikrus tarpinius uždavinius, o šių kombinacijos jau tenkina galutinio vartotojo reikmes. Šiuo atveju sprendžiamų uždavinių įvairovė gali būti labai didelė, todėl tokie kompiuteriai ir laikomi universaliais.
1.5. Universalaus kompiuterio įrenginiaiUniversalaus kompiuterio įrenginių pavadinimai ir jų jungimo schema pateikiama 1.6 pav. Visas šios knygos turinys orientuotas į universalios paskirties kompiuterius. Bendriausiuoju atveju universalų kompiuterį sudaro:– centrinis procesorius;– operatyvioji atmintis;– įvesties ir išvesties įrenginiai bei jų jungtys.
Pav. 1.6. Universalaus kompiuterio įrenginių jungimo schema.
Centrinis procesorius yra pagrindinis kompiuterinės sistemos valdymo ir duomenų apdorojimo įtaisas.Kompiuterio atmintis yra pagrindinis duomenų atsiminimo įtaisas. Šis įtaisas turi dvi atmainas: operatyviąją ir išorinę atmintis. Operatyvioje atmintyje centrinis procesorius atlieka duomenų apdorojimo operacijas, o išorinė atmintis skirta dideliems duomenų kiekiams įsiminti bei saugoti.Įvesties / išvesties įrenginiai skirstytini į įvesties įrenginius, išvesties įrenginius bei įvesties-išvesties įrenginius.Universalus kompiuteris gali būti įjungtas arba neįjungtas į įvairaus tipo lokalius ar globalius kompiuterių tinklus, todėl schemoje tinklų įjungimo galimybė nurodyta kaip fizinė jungtis, o ne konkretūs įrenginiai.Kompiuterio monitorius yra aparatinis įtaisas, kuris įgalina vizualiai teikti duomenis vartotojui bei padeda vizualiai stebėti klaviatūra ar kitaip į kompiuterį įvedamus duomenis.Pele vadinamas manipuliatorius, kuris įgalina operatyviau valdyti duomenų apdorojimo procesą, negu klaviatūra. Klaviatūros ir spausdintuvo paskirtį nusako pats šių įrenginių pavadinimas.Diskrečių kompiuterių elementų aprašymai bei pastaroji universalaus kompiuterio įrenginių ir jų tarpusavio jungimo schema užbaigė šioje knygoje pateikiamus fizinius kompiuterio elementų aprašymus. Visa kita knygos medžiaga skirta taikomosios matematikos dalykams.Toliau nagrinėjama viena iš esminių kompiuterijos pradmenų sampratų. Tai sudėtingos informacijos, kurią suvokia ir gali įvairiai reikšti žmogus, pateikimas dvejetaine simbolika ir atvirkščiai, dvejetainių simbolių pavertimas žmogui suvokiama informacija. Šio proceso analizė atlikta antrame kompiuterijos pradmenų skyriuje.
2. Informacija ir duomenysŽinios, reiškiamos bendra, dažniausiai žodine forma, priimta vadinti informacija, o konkretesnės, ypač pateikiamos skaičiais – vadinamos duomenimis. Apskritai informacijos ir duomenų sąvokos gana artimos, panašios, kadangi daugelį įvairios sandaros ar struktūros žinių galima pavadinti ir informacija ir duomenimis. Šiame darbe, kaip ir kituose matematinio pobūdžio informatikos darbuose, žinios, pareikštos žmogaus lengvai suvokiamu būdu laikomos informacija, o tos pačios žinios, turinčios matematizuotą išraišką – yra duomenys.Tad informacijos apdorojimą sudaro metodai ir būdai, įgalinantys matematizuoti informaciją, paverčiant ją duomenimis, perdaryti, apdoroti tuos duomenis ir vėl pateikti kaip informaciją, kuri jau kitokia, nauja, kitaip pateikta ir t.t. Kad būtų galima informaciją apdoroti, būtina turėti informaciją ir duomenis, kur nurodoma, kaip tai atlikti. Taigi, būtina informacija apie informaciją ir duomenys apie duomenis. Pastaruosius galima pavadinti metainformacija ir metaduomenimis. Praktikoje metainformacijos ir metaduomenų pavadinimai nėra populiarūs. Informacija apie informaciją ir duomenys apie duomenis vadinami kitaip ir labai įvairiai. Pavyzdžiui, viena iš metainformacijos rūšių gali būti vadinami algoritmais, o iš metaduomenų – programomis. Toliau šiame skyriuje pateikiama informacijos, duomenų, algoritmų ir programų samprata bei pagrindinės sąvokos.
2.1. InformacijaInformacija galima laikyti žinių apie realųjį pasaulį visumą. Tą visumą sudaro žinios apie įvairiausius objektus, nuo elementariausių iki labai sudėtingų. Todėl informacija, kaip visuma gali būti skirstoma ar rūšiuojama pagal įvairius požymius. Nuo tų požymių priklauso ir informacijos rūšių pavadinimai.Pagal informacijos apdorojimo periodus ji gali būti pradinė, tarpinė ir rezultatinė, kuri skirta galutiniam jos naudojimui. Pagal sprendžiamų uždavinių tipus informacija gali būti operatyvi, uždara, komercinė, mokslinė, ekonominė ir t.t.; pagal reikšmę – teisinga, klaidinga, pilna, nepilna, prieštaringa, nereikalinga ir kt. Nesunku pastebėti, kad vieno ir to paties pavadinimo informacija gali atitikti ne vienam, o keliems rūšiavimo kriterijams. Pavyzdžiui, ekonominė informacija gali būti ir pradinė, ir nepilna, ir mokslinė. Todėl paminėtasis informacijos rūšiavimas kompiuterijoje apčiuopiamos reikšmės neturi, bet leidžia geriau suprasti jos, kaip tokios esmę, o taip pat įvairovę ir gausą.
Šioje knygoje operuojama informacija, kuri gali būti charakterizuojama tokiais faktoriais: informacija priklauso galutiniam vartotojui; informacija reikalauja tam tikro kompiuterinio apdorojimo lygio; informacija gali būti išreikšta tam tikromis konkrečiomis matematinėmis konstrukcijomis.Galutiniu vartotoju laikomas asmuo arba organizacija (fizinis ar juridinis asmuo), turintys savo informacijos, kurią reikia, būtina arba tikslinga apdoroti kompiuteriu. Be to tokia informacija negali būti pilnai apdorojama esama programine sistemine, taikomąja, tipine ar kitokia įranga. Tai reiškia, kad tokios informacijos apdorojimui reikalinga sukurti specialią programinę įrangą, kuri visiškai savarankiškai, arba kartu su tipine, taikomąja ar kitokia programine įranga, išspręstų minėtos informacijos apdorojimo uždavinius.Informacijos apdorojimo lygiu laikytini tokie atvejai:1) kompiuterinis informacijos apdorojimas informacijos nekeičia, naujos informacijos negaunama, kompiuteris naudojamas kaip fizinis įrankis žmogaus darbui tobulinti;2) vartotojui pateikiama kito vartotojo informacija, apdorojant ją į kitam vartotojui reikiamą formą, eilę, apdorojimo trukmę ir pan.;3) informacijos apdorojimo rezultatas yra nauja informacija, kuri išreiškiama skaičiais, žodžiais, simboliais, kodais, kurie yra žinomų ar naujų atributų reikšmėmis.Suprantama, kad pateiktieji informacijos apdorojimo lygiai yra sąlyginiai. Kita vertus, net ir tokio sąlyginamumo pakanka, kad tik esant trečiajam apdorojimo lygiui, vartotojui tenka rūpintis specialių apdorojimo priemonių kūrimu. Antrojo atvejo problemas paprastai išsprendžia sisteminė, bendroji taikomoji programinė įranga. Pirmojo informacijos apdorojimo lygmens charakteringu pavyzdžiu gali būti įvairiausi tekstų redaktoriai. Tekstą redaguoja, gaudamas naują tekstą (naują informaciją) žmogus. Kompiuteris tik įrankis, kuris įvairiais aspektais palengvina žmogaus darbą. Kompiuterinė sistema šiuo atveju jokios naujos informacijos sukurti negali.Informacijos pateikimo forma – lentelės.Lentelė bet kuriam vartotojui įprasta, akivaizdi, dažnai sutinkama praktikoje ir ne tik kompiuteriais apdorojant informaciją. Kita vertus, lentelėmis pateikiamą informaciją nesunku transformuoti į matematinę konstrukciją – reliacines aibes. Pastarosios irgi turi plokščią keturkampį pavidalą. Reliacinės aibės literatūroje dar vadinamos sąryšiais, santykiais, sąsajomis. Reliacinių aibių panaudojimas tikslingas ir tuo aspektu, nes aibės turi išvystytą fundamentinį matematinį aparatą, kuris gali būti modifikuojamas taikomosios matematikos reikmėms, t.y. transformuojant informaciją į duomenis.Pažymėtina, kad reliacinės aibės išraišką turi didelė dalis techninės, technologinės, ekonominės, mokslinės ir kitokios informacijos.2.2. DuomenysŠiame poskyryje pateikiamos pradinės žinios apie duomenis. Tai pagrindinai informacijos keitimo duomenimis būdai, formalizacijos pradmenys ir duomenų aprašymai formaliomis išraiškomis, kurios kompiuterio atmintyje pateikiamos dvejetaine simbolika. Čia pateiktoji duomenų samprata įgalina suvokti kitus šios knygos dalies objektus: algoritmus, programas, programines sistemas ir t.t. Duomeniu laikoma pareikštis, kuri pateikiama logiškai savarankišku, daugiau nedalomu sakiniu. Toks sakinys turi loginį veiksnį ir pagrindą bei pažyminius ir papildinius. Pastarieji nurodo kokios yra veiksmo bei pagrindo savybės ir požymiai.Duomens pavyzdžiu gali būti pareikštis: “INSTITICIJOJE b, d METŲ PRADŽIOJE DIRBO c DARBUOTOJŲ, KURIE ŠIOJE INSTITUCIJOJE TURI e METŲ DARBO STAŽĄ”.Šios pareikšties loginis veiksnys yra žodis DARBUOTOJŲ, o pagrindas – c. Visos kitos sąvokos tik papildo, konkretina bei pažymi tam tikras veiksnio bei pagrindo savybes arba nurodo tam tikrus jų požymius.Pateiktoji pareikštis logiškai savarankiška ir negali prarasti ar įgyti naujų požymių ar papildinių. Jeigu taip įvyktų, tai jau būtų kita, t.y. dar viena pareikštis. Pavyzdžiui, jeigu iš sakinio būtų išbraukta dalis: “… KURIE ŠIOJE INSTITUCIJOJE TURI e METŲ DARBO STAŽĄ.” turėtų pasikeisti pagrindas c ir turėtume dvejus duomenis (dvi pareikštis) apie institucijos b darbuotojus. Net ir tuo atveju, jeigu c nepasikeistų, būtų dveji duomenys apie darbuotojus, nes būtų akivaizdu, kad institucijoje dirba c darbuotojų ir visi jie turi vienodą, t.y. e metų darbo stažą.Jeigu turimas ne vienas duomuo, o keletas ar keliolika duomenų apie institucijas bei jų darbuotojų darbo stažą, tai galima sudaryti tokių duomenų hipotetinę lentelę. Sudarant tokią lentelę, pirmiausiai išskiriami bendri visų duomenų požymiai. Šiuo atveju tokiu požymiu galėtų būti laiko momentas, t.y. metų pradžia. Šis požymis išskirtas iš visų duomenų aprašymų paprastai užrašomas lentelės priekyje ir tarnauja lentelės identifikatoriaus sudėtine dalimi.Kita identifikatoriaus dalimi turėtų būti subjektas, kurio duomenims skirta lentelė. Šiuo atveju tai institucijų visumos tam tikra dalis: kurio tai verslo visos institucijos, ar mokslo, ar švietimo įstaigos, arba kelių veiklos krypčių institucijos. Po to nustatoma ir koduojama lentelės schema, t.y. koduojami tam tikra eile surašyti atributai.Tad identifikuotą lentelės schemą sudarys identifikatoriaus atributų schema ir pačios lentelės schema.Identifikatoriaus schema: a – pačios lentelės, kaip savarankiško duomenų darinio, kodas; B – subjekto atributas – nuoroda, kad būtų pateikta, kokią veiklos sritį apima institucijos, kurių duomenys pateikiami lentelėje; D – laiko faktoriaus kodas, šiuo atveju reiškiantis metų pradžią, o pildant lentelę nurodoma kokių metų pradžios duomenys yra lentelėje.
Lentelės schema – jos atributų ir jų kodų sąrašas:
Institucijos pavadinimas Bendras darbuotojų skaičius Darbo stažas __ metų Darbo stažas __ metų Darbo stažas__ metųC1 C2 C3 C4 C5
Šioje schemoje ir toliau lentelėse atributai bus žymimi didžiosiomis raidėmis, o atributų reikšmės tomis pačiomis mažosiomis raidėmis. Taigi, a yra ne atributas, o atributo reikšmė, t.y. pačios konkrečios lentelės pavadinimo kodas, apie institucijų personalą. Lentelės schemoje C3, C4 ir C5 atributuose nenurodyti konkretūs stažo metai. Tai daroma sąmoningai ir todėl, kad čia nagrinėjama duomenų, kaip tokių, struktūra ir pateikimo forma. Nurodžius darbuotojų grupių susidarymą pagal konkretų dirbtų institucijoje metų skaičių – būtų jau sąlyga darbo stažo uždavinio sprendimui. Pastarasis objektas nėra šio duomenų nagrinėjimo tikslas. Be to jis rodo skaitytojui apie takoskyros esmę tarp informatikos dalyko ir tam tikros srities, kuri yra pasitelkusi informatiką, uždavinių. Kompiuterijai pagelbėja, bet nepakeičia ir negali pakeisti kitų veiklos sričių nei teorijos nei praktikos.
Lentelės, užpildytos duomenimis pavyzdys:a, B – b1, D – d1
C1 C2 C3 C4 C5c11 c 12 c 13 c 14 c 15c21 c 22 c 23 c 24 c 25c 31 c 32 c 33 c 34 c 35— — — — —— — — — —— — — — —
Lentelės a tipo duomenų cij (i = 1, 2, 3, …, j = 1, 2, 3, 4, 5) skaičius priklauso nuo to, kelių institucijų ir kurių metų pradžios duomenys apie darbuotojų stažą reikalingi. Nepriklausomai nuo duomenų cij gausumo, kompiuterio atmintyje lentelės schemą pakanka turėti tik vieną, o duomenis atmintyje laikyti atskirai nuo schemos tik su jų identifikatoriais. Tada duomenų struktūrai nustatyti turime vieną įrašą:
a, B, D; C1, C2, C3, C4, C5.
Atributų reikšmės turės parodytąjį pavidalą, o jų kiekį lemia skirtingų b ir d skaičius: