1. datora struktŚra · web viewtipu identitāte ir nepieciešama formāliem un faktiskiem...

124
RĪGAS TEHNISKĀ UNIVERSITĀTE Daugavpils mācību-zinātņu centrs J.Ivanovs DATORU MĀCĪBA (pamatkurss) Lekciju konspekts RTU 1. Kursa studentiem

Upload: others

Post on 31-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

RĪGAS TEHNISKĀ UNIVERSITĀTEDaugavpils mācību-zinātņu centrs

J.Ivanovs

DATORU MĀCĪBA(pamatkurss)

Lekciju konspekts RTU 1. Kursa studentiem

Daugavpils, 1998

Saturs1. Datora struktūra 4

Page 2: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

1.1. Ievads 41.2. Ievadierīces 61.3. Datora atmiņa 91.4. Procesors 181.5. Iespiedierīce 212. Programmēšanas valoda Pascal 262.1. Ievads 262.2. Kas ir PASKAL programma ? 272.3. Valodas alfabēts 302.4. Datu tipi 332.4.1. Datu tipu klasifikācija 332.4.2. Vienkāršie datu tipi 332.4.2.1. Veselie tipi 332.4.2.2. Loģiskais tips 342.4.2.3. Simboliskais tips 342.4.2.4. Pārskaitāmais tips 342.4.2.5. Diapazona tips 352.4.2.6. Reālie tipi 352.5. Izteiksmes 362.5.1. Mainīgie 362.5.2. Konstantes 372.5.2.1. Veselās konstantes 382.5.2.2. Reālās konstantes 382.5.2.3. Rindu un simboliskās konstantes 382.5.2.4. Konstanšu izteiksmes 392.5.2.5. Tipizētās konstantes 392.5.3. Standartā funkcijas 402.5.3.1. Aritmētiskās funkcijas 402.5.3.2. Tipa pārveidošanas funkcijas 402.5.3.3. Sakārtojuma tipa lielumu funkcijas 412.5.4. Operāciju zīmes 422.5.4.1. Aritmētiskās operācijas 422.5.4.2. Loģiskās operācijas 432.5.4.3. Operācijas ar informācijas bitiem 452.5.4.4. Attiecības operācijas 462.5.5. Apaļās iekavas 462.5.6. Izteiksmju skaitļošanas kārtība 462.6. Turbo Pascal valodas operatori 482.6.1. Vienkāršie operatori 482.6.1.1. Piešķiršanas operators

482.6.1.2. Beznosacījuma pārgājiena operators GOTO 48

2

Page 3: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

2.6.1.3. Tukšais operators 492.6.2. Strukturētie operatori 502.6.2.1. Saliktais operators 502.6.2.2. Nosacījuma operators IF 512.6.2.3. Nosacījuma operators CASE 51

2.6.2.4. Cikla operators REPEAT 522.6.2.5. Cikla operators WHILE 532.6.2.6. Cikla operators FOR 542.6.2.7. Standartprocedūru Break un Continue izmantošana 56

cikla operatoros Repeat, While un For2.7. Strukturētie datu tipi 572.7.1. Masīvs 572.7.2. String tipa rinda 592.7.3. ASCIIZ-rinda 602.7.4. Ieraksts 612.7.5. Kopu mainīgie (tips SET) 642.7.6. Fails 662.8. Datu tipu savienojamība un pārveidošana 662.8.1. Tipu identitāte 672.8.2. Tipu savienojamība 672.8.3. Savienojamība piešķiršanai 682.8.4. Tipu pārveidošana 682.9. Procedūras un funkcijas 702.9.1. Procedūra 702.9.2. Funkcija 712.9.3. Formālie un faktiskie parametri 722.9.3.1. Parametri-nozīmes 732.9.3.2. Parametri-mainīgie 742.9.3.3. Parametri-konstantes 752.9.3.4. Parametri bez tipa 762.9.3.5. Masīvi un virknes atklāta tipa 762.9.3.6. Parametri-procedūras un parametri-funkcijas 772.9.4. Procedūra EXIT 792.9.5. Rekursīvās procedūras un funkcijas 792.10. Ievada-izvada organizēšana 802.10.1 Standarta procedūras un funkcijas priekš visiem failiem 80Literatūra 83

1. DATORA STRUKTŪRA

1.1. IEVADS

3

Page 4: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

"Datori", "elektroniskās skaitļošanas mašīnas", "ESM", arī "kompjuteri" (šis no angļu valoda aizgūtais vārds gan nav ieteicams) - tie visi ir apzīmējumi plašai, būtībā līdzīgu informācijas apstrādes mašīnu saimei, kuru attīstība nu jau ir piektajā gadu desmitā.

Ja salīdzinām to datoru, kas atrodas uz rakstāmgaldā vai koferītī, ar tādu ESM, kuras sastāvdaļas aizņem lielu skaitļošanas centra zāli (dažkārt pat vairākas), tad līdzīgs šķiet vienīgi tas, ka abos gadījumos cilvēks darbojas ar kādu tastatūru un skatās televizoram līdzīgā ekrānā. Lielākas atšķirības var saskatīt, ja salīdzina datortehnikas pirmdzimtos ar mūsdienu elektroniskajām skaitļošanas mašīnām. Ne visai saprotama var likties arī iespēja viena un tā paša tipa datoru izmantot tik atšķirīgiem darbiem kā vēstuļu rakstīšana, debess ķermeņu trajektorijas noteikšana, šaha spēle vai pensiju aprēķini. Rodas jautājums - kas kopīgs visiem datoriem ?

Pirmkārt, jebkurš dators ir programmējamas darbības mašīna. Visi ar datoru veicamie darbi, kas šeit minēti, ir informatīvi uzdevumi. Iepriekš sastādītas programmas vadībā dators apstrādā tajā ievadāmo vai jau esošo informāciju - gan par šaha figūru skaitu, stāvokli un iespējamiem gājieniem, gan par pensionāra izpeļņu, nostrādāto gadu skaitu u.tml. Savukārt programmas sastādīšanai nepieciešams uzdevumu formulēt (izveidot tā algoritmu) - izteikt kā tādu elementāru darbību un nosacījumu kopumu, ko dators spēj izpildīt. Programmēšanas darbus veic informācijas apstrādes speciālisti, bet programmas izmantošanai parasti pietiek ar elementārām datora lietošanas iemaņām.

Otrkārt, visiem datoriem kopīga pazīme ir to funkcionālā struktūra. Katrai ESM ir pieci funkcionāli atšķirīgas sastāvdaļas, un katra no tām veic savu darba daļu informācijas apstrādē. Gadu gaitā ir mainījies šo sastāvdaļu konstruktīvais veidols un izmantotie elektronikas elementi; dažas sastāvdaļas konstruktīvi var būt apvienotas uz vienas pamatnes vai vienā ārējā čaulā, taču šo sastāvdaļu uzdevumi un loma datora programmas izpildē ir palikuši principā nemainīgi.

Datora 5 funkcionālās sastāvdaļas ir:¨ IEVADIERĪCE, ko izmanto apstrādājamās informācijas un darba

programmu ievadam;¨ ATMIŅA, kur nonāk un glabājas gan programmas, gan informācija;

¨ ARITMĒTISKI LOĢISKĀ IERĪCE, kas izpilda aritmētiskās un loģiskās darbības gan ar ievadīto informāciju, gan ar programmas komandām;

¨ VADĪBAS IERĪCE, kas organizē programmā esošo komandu pakāpenisku izpildi. Mūsdienu datoros aritmētiski loģiskā ierīce un vadības ierīce konstruktīvi parasti ir apvienotas un saucas par PROCESORU;

¨ IZVADIERĪCE, ko izmanto informācijas apstrādes rezultātu, ziņojumu par datoru darbību un citas informācijas saņemšanai.

Treškārt, visiem datoriem ir kopīga spēja jebkuru izvietojamo vai apstrādājamo informāciju pārvēst skaitliskā formā. Katru datorā ievadīto burtu, ciparu vai citu simbolu (pieturas zīmes, matemātisko darbību zīmes) dators

4

Page 5: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

automātiski pārvērš par astoņu binārās skaitīšanas sistēmas ciparu kopu (vieninieku un nuļļu kombināciju), ko sauc par baitu. Pēc šīs pārvēršanas dators ar visu informāciju darbojas kā ar skaitļiem. Tāpēc patiesībai atbilst bieži lietots datora apzīmējums - skaitļošanas mašīna vai skaitļotājs. Izvadot informācijas apstrādes rezultātus, katrs baits tiek pārveidots par tam atbilstošu burtu, ciparu vai citu simbolu mums pierastajā izskatā. Jāatzīmē, ka atmiņā glabājamo baitu skaits pieder pie galvenajiem datoru raksturojošiem lielumiem. Zinot, ka viens simbols atbilst vienam baitam, var, piemēram, aprēķināt, cik lielu vietu kādā atmiņas ierīcē aizņems informācija.

Šeit galveno uzmanību pievērsīsim mūsdienās visvairāk izplatītajiem datoriem - personālajiem (ESM) datoriem.

Kopš paša ESM izmantošanas sākuma pastāvīgi tika veikts darbs, lai palielinātu šo mašīnu jaudu. Tāpēc, neraugoties uz elektronisko elementu izmēru samazināšanos ( 1. paaudze - elektronu lampas, 2. paaudze - pusvadītāji, 3. paaudze - integrālās shēmas), vairākus gadu desmitus ESM novietošanai bija nepieciešama liela telpa - zāle vai vismaz prāvāka istaba. Arī šo mašīnu cenas bija augstas, un tādas ESM koncentrējās lielu uzņēmumu vai iestāžu skaitļošanas centros. Tikai septiņdesmito gadu vidū ESM attīstībā sākās jauns posms - sāka ražot neliela gabarīta, uz galda novietojamus datorus, kas arī cenas ziņā bija pieejami individuāliem lietotājiem. Tādi datori ieguva personālo datoru jeb personālo ESM nosaukumu. Personālajām ESM nav principiālu atšķirību no lielgabarīta ESM. Kā vienām, tā otrām ir tās pašas 5 funkcionālās sastāvdaļas un kā vienas, tā otras ir universālu iespēju datori. Dažāda tipa datoriem var būt atšķirīgs konstruktīvs izpildījums, bet darbības principi paliek līdzīgi.

Personālā datora pamatkomplektā ir 4 konstruktīvās sastāvdaļas:1. CENTRĀLAIS BLOKS jeb SISTĒMBLOKS tiešām ir datora centrālā

daļa, jo tajā ietilpst procesors ( t.i., vadības ierīce un aritmētiski loģiskā ierīce) un atmiņa. Tātad šinī blokā ir veselas 3 datora funkcionālās ierīces. Ārēji centrālais bloks ir datora neizskatīgākā daļa - horizontāla vai vertikāla kastīte ar dažām spuldzītēm, slēdžiem un spraugām.

2. TASTATŪRA ir galvenā, bieži vienīgā personālā datora ievadierīce.3. MONITORS - televizoram līdzīga ierīce, kuras ekrānā var redzēt

ievadāmo informāciju, darba rezultātus, kā arī ziņas par izpildāmo darbu, datora stāvokli u. tml. Monitors (reizēm saukts par displeju) pēc funkcionālā mērķa ir izvadierīce.

4. IESPIEDIERĪCE ir datora otra izvadierīce, kas paredzēta darba rezultātu drukāšanai uz papīra. Dažiem datoriem, piemēram, portatīvajiem, šādas sastāvdaļas nav. Komponentu izvietojums var būt dažāds, to nosaka lietotāja vēlēšanās un sastāvdaļas savienojošo kabeļu garums.

Datora komplektā var būt arī citi komponenti, ar tiem sastāsimies, sīkāk apskatot datora funkcionālās sastāvdaļas.

5

Page 6: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Eksistē arī cita veida skaitļošanas mašīnas, piemēram, analogās jeb modelējošās ESM, kas ir piemērotas tikai noteikta tipa uzdevumu risināšanai. Šīs ESM neizsaka apstrādājamo informāciju ciparu formā, bet visu skaitli kopumā aizstāj ar kādu fizikālu lielumu, visbiežāk elektrisko spriegumu. Analogās ESM vēsturiski ir vecākas par tam, kas izmanto ciparu formu, un to pielietojuma iespējas ir ierobežotas. Jāmin arī hibrīdās ESM, kas ir analogo ESM apvienojums ar dažām universālo ESM ierīcēm. Pastāv arī tādas mašīnas, kuru uzbūves pamatā ir nevis elektroniskie, bet gan mehāniskie vai elektromehāniskie elementi. Tās ir novecojušas un gandrīz vairs netiek izmantotas, jo ir paredzētas tikai vienkāršiem matemātiskiem aprēķiniem (aritmometri, skaitļāmašīnas, grāmatvedības mašīnas, tabulatori). Vēl eksistē tādas skaitļošanas mašīnas, kas gan ir konstruētas no elektroniskiem elementiem, bet kurām nav atmiņas vai arī tā ir ierobežota. Šādas ESM var uzglabāt tikai nelielu programmu vai nedaudz informācijas un tādēļ nevar veikt tos darbus , ko universālie datori. Tādi ir mikrokalkulatori, elektroniskās faktūrmašīnas un citas taustiņu skaitļošanas mašīnas.

Vēl viens skaitļošanas tehnikas paveids ir specializētās ESM. Tādas ir kases aparati, spēļu automāti, arī datori, kas paredzēti atsevišķiem uzdevumu tipiem (piemēram, audumu piegriešanas optimālo variantu atrašanai tekstilrūpniecībā, vilciena braukšanas režīma izskaitļošanai u.tml.).

1.2. IEVADIERĪCES

Ievadierīces uzdevums ir saņemto un apstrādājamo informāciju pārveidot datoram saprotamā formā, proti, elektriskajos impulsos, kas atbilst skaitļiem binārajā skaitīšanas sistēmā. Katrs ievadītais simbols tiek pārveidots par 8 bināro ciparu kopu - baitu (no angļu byte). Apstrādē šiem 8 cipariem parasti kontroles nolūkā pievieno vēl devīto.

Vienkāršākā ievadierīce ir TASTATŪRA (klaviatūra), ko izmanto gan informācijas, gan dažādu datoru vadības komandu ievadam.

Ievadierīces loma ir arī par PELI sauktajam manipulatoram - nelielai ieapaļos formas kārbiņai ar 2 vai 3 taustiņiem. Peli var lietot gandrīz jebkurā darbā, tādēļ to var uzskatīt par savdabīgu tastatūras papildinājumu. Ja pele ir lielākai daļai mūsdienu datoru, tad tālāk minētas ievadierīces ir paredzētas speciāliem uzdevumiem un ir sastopamas retāk.

ATTĒLU NOLASĪTĀJU (skeneri) lieto grafiskās un teksta informācijas nolasīšanai un ievadam datorā.

Uz GRAFISKĀS (elektroniskās) PLANŠETES var zīmēt attēlus (kontūras), kas tiek uztverti un ievadīti datorā.

KURSORSVIRA vai DŽOISTIKS (angl. joustick ) ir neliels manipulators, ko galvenokārt izmanto datorspēļu programmās.

OPTISKO (elektronisko) ZĪMULI parasti lieto svītru koda veidā attēlotās preces cenas un citu ziņu nolasīšanai un ievadam.

6

Page 7: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Agrāk lietoja arī perfokaršu un perfolenšu ievadierīces, kas nolasīja caurumiņu veida kodēto informāciju un ievadīja to datora atmiņā. Tādas ierīces bija lielgabarīta datoriem.

Iepazīsim IBM tipa personālā datora tastatūru. Arī cita tipa datoru tastatūras ir līdzīgi taustiņi un to funkcijas ir analogas, bet taustiņu apzīmējumi un izvietojums var nedaudz atšķirties.

Tastatūrā ir vairākas taustiņu grupas. Centrā vai kreisajā pusē atrodas tā tastatūras daļa, ko pēc izmantošanas biežuma var uzskatīt par galveno - sauksim to par alfabētisko tastatūru. Alfabētiskajā tastatūrā ir ne tikai burtu, bet arī ciparu, pieturzīmju un dažādu simbolu taustiņi. Garais bez nosaukuma taustiņš tastatūras apakšpusē ir intervāla (tukšuma) taustiņš. Ar tastatūru parasti ir iespējams ievadīt kā lielos, tā mazos burtus. Vairumam Latvijā lietoto datoru tastatūrās ir kā latīņu, tā krievu alfabēta burti. Turklāt parasti latīņu burtu izvietojums atbilst starptautiskajiem standartiem, bet krievu alfabēta burti izvietoti tā, kā krievu rakstāmmašīnās. Īpatnējos latviešu alfabēta burtus (ar garumzīmēm vai mīkstinājuma zīmēm) var ievadīt tikai ar taustiņu kombinācijas palīdzību, ja datora ir šim nolūkam paredzēta palīgprogramma. Dažās palīgprogrammas pirms īpatnējo latviešu burtu ievada ir jānospiež augšējā reģistra taustiņš, citās šim nolūkam lieto apostrofa taustiņu, bet var būt arī citi varianti.

Blakus alfabētiskajai tastatūrai, parasti labajā pusē, atrodas par citiem lielāks taustiņš, uz kura ir vārds Enter saliekta bulta, vai arī abi šie apzīmējumi. To var uzskatīt par galveno no vadības taustiņiem. Sauksim šo taustiņu par izpildtaustiņu, jo tā nospiešana liek izpildīt kādu no sagatavotajām vai izvēlētajām darbībām, piemēram, iedarbināt programmu vai ievadīt ar tastatūru rakstīto tekstu. (Šā iemesla dēļ to dēvē arī par ievadtaustiņu). Ja tiek rakstīts teksts, tad pēc šā taustiņa nospiešanas ekrānā notiek pāreja uz nākamās rindas sākumu.

Augšējā reģistra taustiņi , kurus galvenokārt lieto lielo burtu, kā arī taustiņa augšpusē esošo simbolu ievadam, atrodas abās pusēs alfabētiskajai tastatūrai. To apzīmējums ir uz augšu vērsta burtiņa vai angļu vārds Shift, vai arī abi. Augšējais reģistrs ieslēdzas, ja kādu no šiem taustiņiem tur nospiestu. Ja nevēlas turēt nospiestu augšējā reģistra taustiņu, var lietot augšējā reģistra nostiprināšanas (fiksācijas) taustiņu CapsLock, kas atrodas pa kreisi no alfabētiskās tastatūras. Tad augšējais reģistrs paliek ieslēgts līdz nākamajai šā taustiņa nospiešanai. Augšējā reģistra nostiprināšana attiecas tikai uz burtu taustiņiem, ciparu vai simbolu taustiņus nostiprināšanas taustiņš neietekmē. Par augšējā reģistra nostiprināšanu signalizē degoša spuldzīte, parasti tastatūras augšdaļas labajā pusē, ar uzrakstu CapsLock.

Bieži vajadzīgs ir arī dzēšanas taustiņa, kas parasti atrodas pa labi no alfabētiskās tastatūras, tā apzīmējums ir bultiņa, kas vērsta pa kreisi. Nospiežot šo taustiņu, ekrānā tiek nodzēsts tas simbols, kas atrodas pa kreisi no ekrāna aktīvās

7

Page 8: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

vietas. (Šo aktīvo vietu parasti rāda mirgojoša svītriņa - kursors. Nospiežot burta, cipara vai cita simbola taustiņu, šis simbols parādās tajā ekrāna vietā, kur atrodas kursors, un kursors pārvietojas uz nākamo ekrāna pozīciju). Katra taustiņa nospiešana dzēš vienu simbolu. Turot taustiņu nospiestu ilgāk, var nodzēst vairākus simbolus.

Tastatūras labajā malā atrodas taustiņu grupa, ko sauksim par ciparu tastatūru, lai gan uz taustiņiem ir ne tikai cipari, bet arī citi apzīmējumi - gan bultiņas, gan vārdi vai to saīsinājumi. Taustiņi ar bultiņām noder kursora (tātad ekrāna aktīvās vietas) pārvietošanai bultiņas norādītajā virzienā. Ar taustiņu Home dažkārt var kursuru pārvietot uz rindas sākumu, citreiz - uz ekrāna augšējo rindu, ar taustiņu End - uz rindas beigām. Ar taustiņu PgUp kursoru var pārvietot 1 lappusi (vienā ekrānā ietilpstošu rindu skaitu) atpakaļ, bet ar taustiņu PgDn - 1 lappusi uz priekšu. Taustiņš Ins noder viena vai vairāku simbolu iestarpināšanai. Atkarībā no izpildāmās programmas var būt dažāda minētā taustiņa lietošanas izpausme. Parasti pēc šā taustiņa nospiešanas iestājas iestarpināšanas režīms, t.i., ar tastatūru ievadītais simbols vai teksts tiek iestarpināts uz ekrāna redzamajā. No kursora pa labi esošais teksts automātiski pavirzās pa labi. Lai no iestarpināšanas režīma atgrieztos parastajā, vēlreiz jānospiež taustiņš Ins. Ir arī tādas programmas, kur iestarpināšanas režīms it pamatrežīms. Tādā gadījumā taustiņa Ins izmantošana izsauc aizvietošanas režīmu, t.i., ar tastatūru rakstītie simboli nodzēsīs un aizvietos tos simbolus, kas atrodas virs kursora. Taustiņš Del ir dzēšanas taustiņš, kam ir citādas funkcijas nekā dzēšanas taustiņam alfabētiskajā tastatūrā. Taustiņa Del nospiešana dzēš to simbolu, kas atrodas virs kursora. Teksts, kas atrodas pa labi no dzēstā simbola, tiek pievirzīts klāt. Ja taustiņu Del tur nospiestu ilgāk, tad var nodzēst visu tekstu pa labi no kursora. Daļai datoru minētie kursora pārvietošanas, kā arī dzēšanas un iestarpināšanas taustiņi ir dublēti un atrodas arī starp alfabētisko un ciparu tastatūru.

Lai ciparu tastatūru varētu izmantot tieši ciparu ievadam, ir jāpārslēdz šās tastatūras darba režīms. To dara ar taustiņu NumLock, kas atrodas virs ciparu tastatūras. Katra šā taustiņa nospiešana pārslēdz minētas tastatūras režīmu uz pretējo. Par ciparu režīma ieslēgšanu signalizē degoša spuldzīte ar uzrakstu NumLock virs ciparu tastatūras. Ciparu tastatūru ir ērti lietot skaitļu ievadam tad, ja ir daudz ievadāmās informācijas un lietotājs grib strādāt ar "aklo metodi", t.i., neskatoties uz tastatūru. Minētajā tastatūrā ciparu taustiņi izvietoti kompakti, tā ka viegli var pierast ar noteiktiem pirkstiem atrast vajadzīgos ciparus, turklāt vidējais taustiņš (5) ir ar nelielu izcilni. Ciparu tastatūrā ir arī taustiņa ar punktu, kas aprēķinos jālieto decimālā komata vietā.

Vēl viena taustiņu grupa ir funkcionālie taustiņi, ko apzīmē ar burtu F un taustiņa numuru. Daļai datoru ir 10, citiem - 12 funkcionālie taustiņi (F1 - F10 vai F1 - F12). Šo taustiņu nozīme dažādu darbu izpildē vai pat viena darba dažādos posmos var būt atšķirīga. Labi organizēta programma ekrānā (parasti apakšējā rindā) sniedz paskaidrojumus par katra funkcionālā taustiņa nozīmi.

8

Page 9: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Tastatūras augšējā kreisajā stūrī ir taustiņš Esc ( no angļu escape - izbeigt, izgaist), ko parasti lieto kādas darbības atcelšanai vai iepriekšējā stāvokļa atjaunošanai kļūmes gadījumā.

Vadības taustiņi Ctrl un Alt parasti tiek lietoti kombinācijā ar kādu citu taustiņu. Atkarībā no lietojamās programmas vai sistēmas minētos taustiņus var izmantot dažādiem mērķiem. Piemēram, ja tur nospiestu taustiņu Alt, tad ciparu tastatūrā var sastādiet tādas ciparu kombinācijas, kas pēc taustiņa Alt atlaišanas izsauc uz ekrāna simbolus, kuru tastatūrā nav. (Jāzina vajadzīgā simbola kods decimālajā skaitīšanas sistēmā). Kombinācijas Ctrl/C vai Alt/X var pārtraukt programmas izpildi.

Tabulācijas taustiņu Tab (bieži apzīmēts arī ar 2 horizontālām pretēji vērstām bultiņām) galvenokārt lieto kursora lēcienveida pārvietošanai.

Taustiņi ar matemātisko darbību zīmēm ( + , - , * , / ) alfabētiskajā tastatūrā noder šo simbolu ievadam. Ja šie taustiņi ir dublēti ciparu tastatūrā, tos var izmantot matemātisko, bet dažkārt arī citu darbību izpildei.

Taustiņš PrintScreen paredzēts ekrāna satura izdrukāšanai uz papīra. (Dažkārt šis taustiņš Jālieto kopā ar augšējā reģistra taustiņu).

Taustiņš ScrollLock ir vadības taustiņš, ko izmanto ekrāna satura pārvietošanai vai pārvietošanas apturēšanai. Dažkārt tas jālieto kopā ar citu taustiņu. Funkcija atkarīga arī no izpildāmās programmas.

Taustiņš Pause aptur informācijas izvadu uz ekrāna. Darbību var sākt, nospiežot jebkuru taustiņu.

Atkarībā no programmas ir iespējami arī citi kombinētas izmantošanas varianti.

1.3. DATORA ATMIŅA

Lai gan datora darbībai nepieciešamas visas 5 funkcionālās ierīces (tās minētas ievadrakstā), tomēr atmiņu var uzskaitīt par vienu no svarīgākajām, jo tās ietilpība būtiski ietekmē datora iespējas - gan darba izpildes ātrumu, gan to, kādus uzdevumus dators spēj veikt. Jo ietilpīgāka atmiņa, jo lielākas un sarežģītākas programmas un vairāk informācijas atmiņā var uzglabāt. Lielāka un sarežģītāka programma parasti spēj dot plašākas iespējas datora lietotājam un vienkāršot tā darbu. Turklāt lielāks uzglabājamās informācijas apjoms paver lietotājam plašākas iespējas un dažkārt ļauj izpildīt tādus uzdevumus, kuri ar mazāku informācijas apjomu vispār nebūtu veicami vai arī to izpilde būtu daudz sarežģītāka un ilgāka. Ne velti programmas vai programmu kompleksa raksturojumā parasti uzrāda programmas darbībai nepieciešamās atmiņas apjomu.

Datoru atmiņas ietilpību (apjomu) mēra baitos. 1 baits ir astoņu bināro ciparu (bitu) kopa, kuru izmanto viena simbola (burta, cipara, pieturzīmes u.tml.) glabāšanai. Tagadējo datoru atmiņas ir simtiem tūkstošu un miljoniem baitu lielas, tādēļ bieži izmanto lielākas mērvienības - kilobaitus un megabaitus. Lai

9

Page 10: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

gan "kilo" nozīmē tūkstoti, tomēr datora kilobaits ir nedaudz lielāks - 1024 ( =

210 ) baiti; parasti to apzīmē ar K. Tātad, ja lasām, ka atmiņas apjoms ir 640 K vai 640 K baitu (vai 640 Kb) tad, precīzi rēķinot, iznāk 640 * 1024 = 655360 baitu. Taču aprēķinu ērtības labad šo skaitli var noapaļot, pieņemot, ka 1K ir

1000 baitu. Ar megabaitu saprot 220 jeb aptuveni 1 miljonu baitu, un šo lielumu

apzīmē ar M ( reizēm raksta arī Mb jeb MB vai Mbaiti). Vēl lielāks ir 2 30 jeb gigabaits (G vai GB) - aptuveni 1 miljards baitu. Datora lietotājam, iesācējam, tādi apzīmējumi kā baits, bits, KB, MB u.c. sākumā šķiet neierasti. Lai tos izprastu, var izmantot līdzību ar pierastiem jēdzieniem. Piemēram, bits kā izvēle: 1 vai 0 (ir vai nav); baits - kā simbols vai arī kā skaitlis no 0 līdz 255, kurš vienāds ar simbola kārtas numuru standarta simbolu kopā (character set); kilobaits -aptuveni 1000 simbolu vai drukāta teksta lappuses ceturtdaļa; megabaits - aptuveni 1 miljons baiti vai nu 250 drukāta teksta lappušu, vai nu aptuveni tik liels informācijas daudzums, kas ierakstāms vienā datora disketē ar lielu ietilpību (HD - hign density).

Otru atmiņu raksturojošu lielumu - atmiņas ātrdarbību - min retāk. Lai izpildītu kādu komandu, tā jāizsauc no atmiņas uz vadības ierīci. Gandrīz katras komandas izpildes laikā kādu informāciju ieraksta atmiņā vai izsauc no tās. To ziņot, kļūst skaidrs, ka ātrdarbīgāka atmiņa uzdevumu ļauj izpildīt ātrāk, bet lēnāka atmiņa var būtiski paildzināt uzdevuma izpildes laiku, tātad ilgāk jāgaida rezultāti.

Atmiņas ātrdarbību var raksturot divējādi:¨ ar pieejas laiku, t.i. laika daudzumu, kāds nepieciešams, lai sameklētu

to atmiņas vietu, kur jāatrodas informācijai, un izdarītu šīs informācijas ierakstu jeb nolasīšanu;

¨ ar informācijas apjomu, ko iespējams nolasīt vai ierakstīt atmiņā kādā laika vieņibā, parasti sekundē.

Iekšējai atmiņai pieejas ātrumu min līdzās lasīšanas un rakstīšanas ātrumam. Neatkarīgi no tā, no kuras atmiņas vietas baits ir lasīts iepriekš, nākošā lasīšana vai rakstīšana jebkurā citā vietā notiek ar to pašu ātrumu. Operatīvas atmiņas (RAM) mikroshēmām pieejas ātrums ir aptuveni 60 - 70 ns (nanosekundes). Aptuvenā 1 Mb atmiņas mikroshēmas cena ir $50.

Turpretī magnētiskajām ārējās atmiņas iekārtām, tādām kā cietie diski, disketes, magnētiskās lentes un kasetes utt., lasīšana vai rakstīšana notiek ar mehāniski pārvietojamām magnētiskām galviņām. Tam ir mehāniskās daļas, un, pirms ir iespējama datu lasīšana, galviņa ir jāpārbīda precīzi uz to magnētiskās virsmas vietu, kurā informācija ir ierakstīta. Savukārt, lai informāciju ierakstītu, galviņa ir jāpārbīda uz brīvo vietu, kurā, ierakstot jaunos datus, nepazudīs iepriekš ierakstītie. Tādēļ ārējai atmiņai ir svarīgs arī tāds lielums kā (vidējais) pieejas ātrums. Cietajiem diskiem tas ir aptuveni 10 - 20 ms (milisekundes). Aptuvenā cietā diska atmiņas cena ir $1 par 1 Mb. No iepriekš minētā izriet, ka

10

Page 11: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

vislabākā būtu milzīga, pat neierobežota, atmiņa ar ļoti lielu darbības ātrumu, tātad minimālu pieejas laiku. Taču gan tehniski konstruktīvu, gan ekonomisku iemeslu dēļ tāda atmiņa nav iespējama (vismaz pašlaik), un tādēļ mūsdienu datoru atmiņa sastāv no atšķirīgām daļām. Viena atmiņas daļa mēdz būt ar lielu darbības ātrumu, taču ar relatīvi mazu ietilpību, cita - ar lielu ietilpību, bet mazāku atmiņas izmantošanas ātrumu. Liels darbības ātrumu ir t.s. iekšējai atmiņai, bet liela ietilpība - ārējai atmiņai. Katrai no minētajām atmiņas daļām parasti ir vairāki veidi.

Labi uzrakstītas programmas parasti pašas "rūpējas" par darba rezultātu un datu saglabāšanu cietajā diskā - lietotājam tikai jābeidz strādāt ar programmu legāli, t.i., programmā paredzētajā veidā. Angliski "runājošas" programmās datu noglabāšanai parasti izmanto komandas SAVE, SAVE AS vai WRITE, bet programmas pārtraukšanai - komandas EXIT, QUIT vai BYE.Iekšējā atmiņa atrodas sistēmbloka iekšpusē, lietotājam tā gandrīz nav redzama. Pastāv divi iekšējās atmiņas veidi: tiešas pieejas atmiņa (RAM - Random access memory), kurā var rakstīt un lasīt un kas pēc barošanas izslēgšanas informāciju zaudē; tikai lasīšanai paredzētā atmiņa (ROM - Read Only Memory), kas saglabā savu informāciju arī pēc datora izslēgšanas un tās saturs nav maināms. Ir jāpiebilst, ka pastāv arī EEPROM (Electrically Erasable Programmable Read - Only Memory) un cita tipa atmiņu mikroshēmas, kuras ļauj atkārtoti ierakstīt informāciju un saglabāt tās saturu arī pēc datora izslēgšanas. Lielai daļai novecojušo IBM PC XT un AT savienojamo datoru modeļu operatīvās atmiņas apjoms ir 640 Kb, jaunākiem modeļiem parasti tas nav mazāks par 2 Mb, bet izplatītākie ir datori ar 4 Mb. Tas saistīts ar to, ka 4 Mb RAM ir mazākais operatīvās atmiņas lielums, kas nepieciešams, lai grafiskās vides Windows 3.1 operatīvajā atmiņā varētu izvietot visas darba tabulas, šīm nolūkam nelietojot cieto disku.

Abām šīm atmiņām ir tikai elektroniskie elementi, tās konstruktīvi ir izvietotas mikroshēmās. Tāpēc iekšējā atmiņa strādā daudz ātrāk par ārējo atmiņu, kurā ir arī mehāniskie elementi. Vispopulārākā operāciju sistēma, ko lieto personālajos datoros, ir dažādu versiju DOS (Disk Operation System). Termini conventional memory, extende memory un expanded memory ir piesaistīti operāciju sistēmai DOS. Citās operāciju sistēmās, kā UNIX, OS/2, Windows/NT un pat Windows 3.1, no DOS funkcijām izmanto tikai tās, kas vada ārējo atmiņu. Šajās sistēmās visa operatīva atmiņa ir vienādi pieejama un izmantojama. Personālā datora DOS lietotāju visvairāk interesē tas iekšējās atminās veids, ko sauc par parasto operatīvo atmiņu (conventional memory), kas aizņem operatīvās atmiņas pirmos 640 K. Uzreiz aiz šīs atmiņas atrodas dažādas DOS sistēmas tabulas, kuru atrašanās vieta nav maināma.

Operatīvai atmiņai ir sakari ar visām pārējām ESM funkcionālajām ierīcēm. Operatīvā atmiņa saņem ievadīto informāciju no ievadierīces un var nodot to citām datora ierīcēm, to skaitā arī ārējai atmiņai. Operatīvajā atmiņā ir jāatrodas

11

Page 12: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

tām programmām un informācijai, kas tobrīd piedalās uzdevuma izpildē. Citu uzdevumu programmas un informācija, kā arī izpildāmajā uzdevumā neizmantotās programmas vai informācijas daļa var glabāties ārējā atmiņā. Vajadzīgo programmu un informācijas apmaiņa starp operatīvo un ārējo atmiņu notiek automatizēti, par to "rūpējas" gan uzdevuma programma, gan sistēmas kopējās vadības programmas. No operatīvās atmiņas uz ārējo un otrādi pārsūta ne atsevišķus baitus, bet lielākas informācijas porcijas - blokus, parasti 512 baitu apjomā. Operatīvajā atmiņā katram atmiņas baitam ir savs numurs, kuru sauc par adresi. Ja ieraksta informāciju atmiņā vai nolasa to no atmiņas, izmantojot adresi, ir iespējams tieši pievērsties jebkuram atmiņas baitam.

Lietotāju mazāk interesē tā iekšējās atmiņas daļa, kuru neizmanto kā operatīvo atmiņu. Tur glabājas, piemēram, ekrānā redzamā attēla saglabāšanai izmantojamā informācija, no perifērijas ierīcēm saņemtā informācija, dažādi tehniskas nozīmes dati u.tml. Viena iekšējās atmiņas daļa ir pastāvīgā atmiņa (Read only memory - ROM). To izmanto galvenokārt dažādu datora vadības programmu pastāvīgai uzglabāšanai. ROM atmiņa noder, piemēram, datora darba uzsākšanai pēc datora izslēgšanas. Parasti pastāvīgas atmiņas saturu ieraksta datora ražotāji un lietotājs to nevar izmainīt.

Daļai datoru ir ātrdarbīgs iekšējās atmiņas veids ar pieejas ātrumu 20 ns, ko var saukt par 2. līmeņa superoperatīvo atmiņu (2nd level cache memory). Tās ietilpība mēdz būt no 64 K līdz 256 Kb.

Datora iekšējās atmiņas faktiskā ietilpība var būt arī lielāka par praktiski izmantojamo. Atmiņas reālās izmantošanas iespējas nosaka lietojamais vadības programmu komplekss - operāciju sistēma. IBM savietojamo personālo datoru darbu vada operāciju sistēma MS DOS. Standarta variantā šī sistēma izmanto 1 Mb tiešas pieejas atmiņas, no kuriem pirmos 640 Kb izmanto kA conventional operatīvo atmiņu. Iekšējās atmiņas daļu virs 640 Kb līdz 1 Mb sauc par paplašināto atmiņu (expanded memory), papildu atmiņu (extended memory) virs 1 Mb var izmantot, ja lieto speciālas vadības palīgprogrammas (papildatmiņas vadības programmas, kas izmanto DOS iespēju rīkoties ar atmiņas lappusēm) vai citu operāciju sistēmu, piemēram, OS/2. Parasti programmas konstantē, cik expanded operatīvās atmiņas ir pieejams, un to efektīvi izmanto.

Apkopojot iepriekš teikto, var secināt, ka no dažādajiem iekšējas atmiņas veidiem lietotāju visvairāk interesē operatīvā atmiņa - tajā jāievieto gan konkrētā darba programma un apstrādājamā informācija, gan darba vadībai nepieciešamā operāciju sistēmas daļa, gan arī darba izpildē iegūtie starprezultāti un cita nepieciešamā informācija.

Kā jau minēts, operatīvās atmiņas ietilpība ir ierobežota. Turklāt, datoru izslēdzot, zūd arī operatīvās atmiņas saturs. Lai datus un programmas varētu izmantot atkārtoti un tie nepazustu pēc strāvas izslēgšanas, tos jāievieto speciālā ārējā atmiņā, piemēram, disketēs vai cietajos diskos.

12

Page 13: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Cache atmiņas darbības princips

Gandrīz visiem mūsdienu datoriem ir 2. līmeņa cache atmiņa - sevišķi ātrdarbīga, no 64 līdz 256 Kb liela atmiņas mikroshēma, kas novietota uz sistēmas pamatplates. Ātrdarbīgākajiem datoriem ir arī 1. līmeņa cache atmiņa - procesorā iebūvēta 1 Kb - 16 Kb liela atmiņa, kuras lasīšanas un rakstīšanas ātrdarbība ir tāda pati kā starp procesora reģistriem.

Cache atmiņas uzdevums ir palielināt ātrumu lasīšanai un rakstīšanai operatīvajā atmiņā (RAM) tajā gadījumā, kad procesoram vairākkārt jāstrādā vienā un tajā pašā atmiņas apgabalā. Ja no operatīvās atmiņas ir jānolasa vairāki baiti pēc kārtas, tad pirmajā lasīšanas reizē vajadzīgais atmiņas fragments nonāks Cache atmiņā. Ja nākošajā reizē no šīs atmiņas vietas jālasa atkārtoti, tad lasīšana notiks nevis no RAM atmiņas mikroshēmas, bet gan no daudz ātrdarbīgākās cache atmiņas mikroshēmas.

Ja programmas darba laikā šāda procesora atkārtota darbošanās ar vieniem un tiem pašiem RAM atmiņas apgabaliem ir bieža, tad kopējā datora ātrdarbība pieaugt pat 2 reizes.

Ārējā atmiņa

Ārējā atmiņa ietver trīs galvenās sastāvdaļas. Viena no tām ir fiziskā vide jeb informācijas nesējs, kur¦ ieraksta un uzglabā informāciju. Par informācijas nesējiem lielākoties lieto magnētiskos diskus, disketes, arī strīmerus (augstas ietilpības magnētisko lenšu kasetes), optiskos diskus.

Otra sastāvdaļa ir ierīce, kas veic informācijas nesēja pārvietošanu (diska griešanu vai lentes pārtīšanu), sameklē vajadzīgo vietu informācijas nesējā un ieraksta vai nolasa informāciju. Šo ierīci tiem ārējās atmiņas veidiem, kuri lieto magnētiskos vai optiskos diskus, sauc par disku ierīci.

Piemēram, kompaktdisku (CD) atskaņotājam informācijas nesēji ir kom-paktdiski, informācija tajos ir ar CD tehnikas paņēmieniem ciparu veidā kodētā mūzika, bet ierīce, kas nolasa šo informāciju, ir CD atskaņotājs. Datoru kompaktdisku lasīšanas ierīce (CD-ROM) ir ļoti līdzīga kompaktdisku atskaņo-tājiem, tikai atšķiras ar lielāku precizitāti un citiem datu atkodēšanas paņēmie-niem.

Trešā datoru ārējās atmiņas sastāvdaļa ir kontrolieris (controller), kas va-da ārējās atmiņas ierīces darbu, gan saņemot pieprasījumus no datora procesora, gan komandējot mehānisko elementu darbību, lai datus nolasītu, gan arī nododot nolasīto informāciju datora procesoram. Kontrolieris ir pieslēgts parasti daudz ātrdarbīgākai sistēmas maģistrālei un saņem instrukcijas no procesora, tas saņem vai atdod informāciju iekārtu portiem ar speciālām komandām ( valodā Assembler tās ir in un out). Parasti ar vienu komandu var saņemt vai nosūtīt uz portu 1, 2 vai 4 baitus - tas ir atkarīgs no datora datu maģistrāles platuma.

13

Page 14: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Magnētiskajā diskā informāciju uzņem un glabā ļoti plāna magnētiskā ma-teriāla kārta, ar kuru ir pārklāts nemagnētiska materiāla pamats. Šo kārtu var sadalīt ļoti sīkos posmos. Katrs no tiem var glabāt vienu binārās sistēmas ciparu - 0 vai 1 -, tātad uzglabāt 1 informācijas bitu. Minētie posmi veido koncentriskus riņķus - celiņus. Tos var dalīt sektoros, katra sektora ietilpība parasti ir 512 baitu. Magnētiskajam ierakstam piemīt vērtīga īpašība - vairs nevajadzīgo informāciju magnētiskajā informācijas nesējā var nodzēst un vietā ierakstīt ko citu. Magnētiskā materiāla kārta spēj izturēt ļoti daudzus ierakstus un nolasīšanas.

Katram personālam datoram ir vismaz divas disku ierīces , kuru uzdevums ir ierakstīt informāciju magnētiskajos diskos un nolasīt to. Disku ierīcē ir me-hānisms, kurš griež magnētisko disku, kā arī ieraksta un nolasīšanas galviņa. Nolasīšanas galviņas uzdevums ir ieraksta laikā magnetizēt magnētiskā diska posmus atbilstoši ierakstāmajiem binārās sistēmas cipariem, bet nolasīšanas laikā - konstatēt posmiņu magnētismu, tādējādi uztvert ciparus un pārvēst tos elektriskajos impulsos. Ieraksta un nolasīšanas galviņa var virzīties radiāli pāri magnētiskajam diskam, tādā veidā var ātri nokļūt līdz tam diska celiņam, kurā atrodas meklējamā informācija vai kurā informācija ir jāraksta. Ja magnētiskajam diskam lietojamas abas puses, kā arī tad, ja lieto disku paketi (vairākus magnētiskos diskus), tad ierīcē ir tik ieraksta un nolasīšanas galviņu, cik disku virsmu izmanto informācijas glabāšanai. Katra magnētiskā diska sākumā atrodas informācija par satura izvietojumu diskā. Šo informāciju izmanto disku ierīces vadības sistēma.

Eksistē vairāki magnētisko disku un disku ierīču veidi. Ir disku ierīces, kuras izmanto lokanos (mīkstos) diskus, jeb disketes (floppy disk). Šādās disku ierīces (floppy disk drive, FDD) var mainīt izmantojamos diskus, un ārējā atmiņa būs tik liela, cik diskešu ir lietotāja rīcībā. Otra priekšrocība disku ierīcēm ar maināmajiem diskiem ir iespēja izmantot disketi, kuras saturs ierakstīts citā datorā, tātad iespējama programmu un informācijas apmaiņa starp datoriem, t.i., datoru lietotājiem.

Pašlaik personālajos datoros lieto divu izmēru - 5.25 " un 3.5 " (collu) dia -metra disketes. Jāatzīmē, ka disketes izmēri nebūt nenosaka disketes ietilpību. Disketē ierakstāmās informācijas apjoms ir atkarīgs no magnētiskā materiāla kvalitātes. Tas, cik sīki ir magnētiskā materiāla posmi, nosaka, cik blīvi disketē var ievietot informāciju. Ierakstāmās informācijas apjoms ir atkarīgs arī no disku ierīces precizitātes - tai jāspēj pievērsities katram atsevišķajam posmam. Pašlaik izplatītākās ir divu veidu 5.25 " disketes ar 360 K baitu ietilpību (šīs disketes bieži apzīmē ar burtiem DD - no angl. double density - dubults blīvums) un 1.2 M baitu ietilpību (disketes apzīmē ar burtiem HD - no angl. hign density - augsts blīvums). Izmēros mazākajām 3.5 " disketiem parastā ietilpība ir 1.44 M baiti (HD disketēm), bet arī 720 K baitu disketes (DD). Tehnikai un ražošanas tehnoloģijai pilnveidojoties, kļūst iespējams iegūt arvien kvalitatīvāku diskešu

14

Page 15: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

magnētisko pārklājumu un tādas disku ierīces, kuras spēj precīzāk veikt disketes posmu magnetizēšanu. Ja magnētiskā pārklājuma kvalitāte ļauj disketes virsmu sadalīt vairāk celiņos un sīkākos posmos, tad palielinās ieraksta blīvums un līdz ar to disketes ietilpība. Diskete atrodas aizsargapvalkā, kas pasargā magnētisko pārklājumu no mehāniskiem bojājumiem. Aizsargapvalkā ir lodziņš pretī tai vietai, kur disku ierīce atrodas ieraksta un nolasīšanas galviņa. Mazajām (3.5 ") disketēm lodziņam virsū ir aizsargplāksnīte, kas tiek pabīdīta sāņus, ja disketi ievieto disku ierīcē. Lai aizsargātu disketē esošo informāciju, var aizliegt ierakstīt tajā. 5.25 " diskešu aizsargapvalka vienā malā ir neliels robiņš, ja to aizlīmē, ieraksts tiek aizliegts. No šādas disketes informāciju var tikai nolasīt, un, kamēr robiņš ir aizlīmēts, disketē neko ierakstīt nevar. Mazajai 3.5 " disketei aizsardzības princips ir pretējs - vienā aizsargapvalka stūrī ir caurumiņš, ko var aizvērt un atvērt. Ja caurumiņš atvērts, no disketes var tikai nolasīt, ja aizvērts, tad informāciju var gan nolasīt, gan ierakstīt.

Jauna diskete ir jāsagatavo lietošanai. Šo operāciju sauc par formatēšanu (dažkārt arī par inicializāciju). Formatēšanas laikā tiek pārbaudīta disketes kvalitāte, tiek iezīmētas sektoru un bloku robežas. Formatēšanu veic attiecīga programma, kas atrodas datora vadības programmu kompleksa - operāciju sistēmas - sastāvā, kā arī var būt dažu citu datoru apkalpojošo programmu sastāvā. Var formatēt arī lietotu disketi. Parasti to dara, ja pasliktinājusies disketes kvalitāte. Vienmēr jāatceras, ka formatēšana iznīcina iepriekšējo disketes saturu. Jāzina arī, ka disketē esošā informācija var tikt sabojāta. Iemesls var būt magnētiskā pārklājuma kārtiņas mehānisks bojājums, spēcīga magnētiskā lauka ietekme un arī nepareizi dotas lietotāja komandas. Lai nezaudētu informāciju vai vismaz tās zudumi būtu minimāli, disketes saturu nepieciešams dublēt, ierakstot to citā magnētiskajā diskā vai magnētiskajā lentē. Jāatceras, ka uz disketes aizsargapvalka drīkst kaut ko rakstīt (parasti ziņas par disketes saturu) tikai ar ļoti mīkstu zīmuli. Cits disku ierīces veids ir cieto disku ierīce (hard disk drive, HDD), saukta arī par vinčesterdisku. Cietajiem magnētiskajiem diskiem ir metāla (parasti alumīnija) pamats, kas pārklāts ar plānu magnētiska materiāla kārtu. Disku ierīce parasti atrodas disku pakete - vairāki cietie diski uz kopējas ass. Cieto disku ierīce atrodas hermētiski noslēgtā korpusā, tāpēc atšķirībā no lokanajiem diskiem cietie diski nav maināmi vai arī ir maināmi kopā ar korpusu. Var izņemt un nomainīt visu cieto disku ierīci, taču šāds darbs nav jādara lietotājam, bet gan datoru tehniskās apkopes speciālistam. Dažādu modeļu cieto disku ierīču ietilpība ir atšķirīga, bet vienmēr lielāka nekā lokanajiem diskiem. Mūsdienu personālajiem datoriem cieto disku ierīces ietilpība parasti nav mazāka par 80 M baitu, tipiska ir no 100 līdz 300 M baitu un lielāka ietilpība. Piemēram, UNIX datoriem, kurus mēdz saukt arī par darba stacijām, disku iekārtu ietilpība sasniedz miljardus baitu (G baitu, GB). Bez lielās ietilpības cieto disku ierīču priekšrocība salīdzinājumā ar lokanajiem ir lielāks pieejas ātrums, t.i., noteiktu informācijas apjomu var nolasīt no cieta diska vai ierakstīt

15

Page 16: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

tajā ātrāk nekā lokanajā. Par normālu cietā diska pieejas ātrumu parasti uzskata 10 -14 ms, par labu - mazāk nekā 10 ms. Viens no faktoriem, kas nosaka šādu priekšrocību, ir lielāks ieraksta blīvums cietajā diskā. Otrs faktors ir lielāks cieto disku griešanās ātrums (apmēram 3600 apgriezienu minūtē, desmitreiz ātrāk nekā lēnajam diskam). Treškārt, pēc datora iedarbināšanas cietie diski griežas nepārtraukti līdz datora izslēgšanai, tāpēc nav jāgaida, kamēr disku ierīce sasniegs vajadzīgo ātrumu. Atšķirībā no lokano disku ierīcēm nav jātērē laiks disketes ielikšanai ierīcē un izņemšanai no tās. Tādēļ lietotāji cenšas glabāt savas programmas un svarīgāko informāciju cietajos diskos. Cietā diska lietošanai ir arī negatīvie aspekti. Proti, ja cietajā diskā esošu programmu vai informāciju grib pārnest uz citu datoru, nodot citam lietotājam, tad šī programma vai informācija ir jāieraksta lokanajā diskā. Bez tam, ja datoru lieto vairākas personas un katra lietotāja programmām vai informācijai nav speciālas aizsardzības, tad pastāv iespēja, ka cits lietotāja var sabojāt kādu programmu vai informāciju. Lai viens datora lietotājs nevarētu piekļūt cita lietotāja informācijai, ar attiecīgas programmas palīdzību cieto disku var nosacīti sadalīt daļās. Katra no tām ir pieejama tikai noteiktas paroles zinātājam.

Diskešu ierīces parasti atrodas sistēmbloka kārbā, dažos gadījumos - atsevišķā korpusā ārpus sistēmbloka. Diskešu ierīces konstrukcija lietotājam nav redzama. Vienīgi lokano diskešu ierīcēm redzama sprauga, pa kuru disketi ieliek ierīcē. Par disku un diskešu ierīces darbu (lasīšanu vai rakstīšanu) liecina degoša spuldzīte datora korpusā pie disku ierīces. Diskešu ierīce un tās sprauga daļai datoru ir novietota horizontāli, daļai vertikāli. Lokano diskešu ierīcei pie disketes ielikšanai paredzētās spraugas atrodas slēdzis vai aizbīdnis, kas jāaizver pēc disketes ielikšanas un jāatver, lai disketi varētu izņemt. Lokano diskešu ierīce sāk darboties tikai tad, kad programmai nepieciešams darba procesā tajā rakstīt vai lasīt. Cieto disku ierīce sāk griezt disku tūliņ pēc datora pieslēgšanas strāvai un ir darba gatavībā visu laiku, kamēr ieslēgts dators.

Ja to neievēro, tad diska ierīces darbs tiek mehāniski traucēts un jūsu darba rezultāti var pazust.

Katrai diskešu ierīcei disku operāciju sistēmā DOS ir savs vārds, kuru izmanto, lai norādītu vajadzīgo ierīci lasīšanai vai rakstīšanai. Par ierīces vārdiem izmanto alfabēta burtus: A, B, C utt. Lai programmā vai atsevišķās komandās būtu redzams, ka runa ir par disku ierīcēm, aiz attiecīgā burta liek kolu. Lokano diskešu ierīču vārdi ir A: un B:, cietā diska ierīces - C:. Ja ir vairākas cietā diska ierīces vai cietais disks nosacīti sadalīts vairākās daļas, tad lieto alfabēta burtus D:, E: utt. Dators var būt pieslēgts datoru tīklam. Arī citā datorā novietota diska adresēšanai datoru tiklā izmanto burtus. Ja ir tikai viena lokanā diska ierīce, tad tā ir A: ierīce, bet burts B: paliek neizmantots. Datora lokano disku ierīces var būt dažādi komplektētas: viena 3.5 " un viena 5.25 " diskešu ierīce, tikai viena no šīm ierīcēm, tikai viena no šīm ierīcēm, divas 5.25 " diskešu ierīces - viena 360 K baitu disketēm, otra 1.2 M baitu disketēm.

16

Page 17: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Kompaktdisku jeb optisko disku ieraksta un nolasīšanas principi atšķiras tiem, kas darbojas no magnētiskajiem diskiem. Kompaktdiskos informāciju ieraksta, ar lāzera staru lokāli izmainot gaismu vadošās virsmas struktūras. Nolasot informāciju, konstatē šīs izmaiņas un pārvērš elektriskajos signālos. Kompaktdiskos ieraksta blīvums ir daudz lielāks nekā magnētiskajos diskos, piemēram, kompaktdiskā, kura diametrs tuvs 5.25 " diskam, var ierakstīt 540 Mb, tātad veselas enciklopēdijas saturu. Taču kompaktdiska ieraksta tehnoloģija pagaidām neļauj to lietot vairākkārt, izdzēšot veco ierakstu un aizvietojot to ar jaunu. Tāpēc kompaktdiski noderīgi nemainīgas informācijas uzglabāšanai.

Magnētisko lenšu ierīci (sauktu arī par strīmeri - streaming tape backup) var lietot kā rezerves ārējo atmiņu, kurā var dublēt cieto disku saturu. Šī ierīce lieto kasešu magnētiskās lentes, vienā kasetē var ierakstīt 150 - 160 M baitu. Ir arī tādi strīmeri (piemēram, darba stacijām), kuru kasetes ietilpība ir 10 GB. Magnētisko lenšu kasetes noderīgas gan informācijas glabāšanai, lai to varētu atjaunot magnētiskā diska sabojāšanai gadījumā, gan arī informācijas apjoma pārnešanai uz citu datoru (vienā kasetē var ierakstīt vesela cietā diska saturu). Magnētisko lenšu ierīces pieslēgšana datoram, līdzīgi kā citu iekārtu pieslēgšana, notiek, izvietojot brīvajā slotā uz sistēmas maģistrāles šīs ierīces vadības ierīci jeb kontrolieri. Kontrolierim savukārt ir pieslēgta pati lenšu iekārta, kas lasa vai raksta magnētiskajā lentē.

Noslēdzot nodaļu par datoru atmiņu, varam secināt, ka atmiņas iespējas, īpašības un veidi nosaka gan datora jaudu, gan datora lietotāja ērtības un iespējas. Pēdējo 10 gadu laikā ir strauji mainījušies priekšstati par to, kas ir liela apjoma atmiņa. Kad 1981. gadā izveidoja DOS operāciju sistēmu, tās izmantojamās operatīvās atmiņas daudzums 640 Kb šķita ļoti liels, jo lielākās tā laika programmas neizmantoja vairāk par 64 Kb. Taču datoru tehnoloģijas attīstība simtiem reižu palielinājusi datoru ātrdarbību un kļuvusi par pamatu daudz komplicētākām programmām. Piemēram, normāls DOS darbs iespējams, sākot ar 1 Mb operatīvo atmiņu, grafiskās vides Windows - ar 4 Mb, operāciju sistēmas UNIX - ar 8 Mb, specifiski lietojumi (sevišķi multimedija) operatīvajā (nevis disku) atmiņā uzglabā lielu pagaidu datu daudzumu, līdz ar to būtiski palielinot programmas kopējo ātrdarbību. Datoru attīstības gaitā pieaug kā atmiņas ietilpība, tā atmiņas darbības ātrums. Tuvākajā nākotnē joprojām saglabāsies dažādi atmiņas veidi un lietotājs varēs izvēlēties katram gadījumam efektīvāko.

1.4. PROCESORS

Datora centrālā daļa ir procesors. Tas organizē programmas izpildi, vada visu datora sastāvdaļu darbu, izpilda matemātiskās un loģiskās darbības ar informāciju. Tēlaini izsakoties, procesoru var uzskatīt par datora sirdi. Tā darbības principi un raksturlielumi nosaka datora jaudu un iespējas. Tāpēc personālā datora raksturojumā parasti vispirms min procesora tipu.

17

Page 18: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Lai iepazītu procesoru, sākumā apskatīsim, ko nozīmē izpildīt datora darbības programmu un vadīt datora sastāvdaļu darbu. Datora darba programmas sastāv no noteiktā kārtībā izpildāmu darbību virknes. Šīs programmas, kuras dažkārt ir ļoti garas un sarežģītas, var būt rakstītas dažādas programmēšanas valodās. Lai programmu varētu izpildīt, tā jāpārveido lietošanai derīgā formā. Arī šos pārveidojumus spēj veikt attiecīgas programmas. Mūsdienu dators darba izpildē konkrētā uzdevuma programma sadarbojas ar sistēmas vadības programmu kompleksiem, piemēram, operāciju sistēmām. Minēto sistēmu un sadarbības apskate ir cita raksta uzdevums. Lai izprastu procesora darbību, jāzina, ka pēc visiem pārveidojumiem darbam gatavā programma ir izteikta skaitliskā veidā (ar binārās skaitīšanas sistēmas cipariem), sastāv no komandu virknes un atrodas datora atmiņā. Katra komanda sastāv no operācijas koda un adrešu daļas. Operācijas kods norāda izpildāmās operācijas veidu, bet adrešu daļa parasti ir norādīts, no kuras atmiņas vietas ņemama informācija, uz kurieni jānosūta darbības rezultāts vai kurā atmiņas vietā atrodas nākošā izpildāmā komanda.

Lai izpildīt jebkuru programmas komandu, šī komanda vispirms jāizsauc uz procesoru no atmiņas. Kad tas izdarīts, tad operācijas kodā norādītās darbības izpildi organizē procesora elektroniskās shēmas. To uzdevums ir iedarbināt konkrētās operācijas izpildē iesaistāmos datora mezglus. Operācijas kodam atbilstoša elektrisko signālu kombinācija nonāk shēmas ieejā. Shēmā esošie loģiskie elementi liek izejas signāliem parādīties tikai tajās shēmas izejās, kuras ir saistītas ar operācijas izpildei vajadzīgajiem datora mezgliem, tātad izejas signāli iedarbina šos mezglus. Procesora sastāvā ir arī reģistri - tādas elektroniskās shēmas, kuras var gan uzglabāt skaitļus, gan izpildīt ar tiem aritmētiskās un loģiskās darbības. Reģistri atšķiras ar tajos iesūtāmo vai apstrādājamo bitu skaitu. Lielāks reģistrs ļauj vienlaicīgi apstrādāt vairāk baitu, tātad procesora darbs kļūst ražīgāks. Mūsdienu dators ir 8, 16, 32 un 64 bitu reģistri.

Katras programmas komandas izpilde parasti sastāv no daudziem soļiem jeb mikrooperācijām. Piemēram, divu skaitļu saskaitīšanai nepieciešams aprēķināt un saformēt katra skaitļa atrašanās vietas adresi, atrast šos skaitļus atmiņā un vienu pēc otra pieskaitīt reģistra saturam (arī šī pieskaitīšana var būt mikrooperāciju virkne); reizināšanu parasti izpilda kā daudzkārtēju saskaitīšanu u.tml. Katras mikrooperācijas izpildei ir sava mikrokomanda. Parasti katras programmas komandas izpildei nepieciešamās mikrooperācijas ir apvienotas mikroprogrammās. Mūsdienu datori sekundē izpilda miljoniem komandu un mikrokomandu. Dažādiem procesoriem var būt atšķirīga komandu izpildes gaita un iespējas. Procesora izpildāmo komandu komplekts tiek saukts par procesora komandu sistēmu. Komandu sistēmai un operāciju sistēmai jābūt savstarpēji saskaņotām. Ir tādi procesori, kas piemēroti vairāku programmu paralēlai izpildei, tiem vajadzīgas noteiktas operāciju sistēmas, piemēram, UNIX vai OS/2.

18

Page 19: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Elektronikas attīstības gados elektronisko shēmu elementu izmēri ļoti samazinājušies. Tagad simtiem un tūkstošiem elementu ir apvienoti integrālajās shēmās. Mazo izmēru dēļ šādas integrālās shēmas ieguva mikroshēmu nosaukumu, bet tādu mikroshēmu, kura izpilda procesora funkcijas, sauc par mikroprocesoru. Fiziski mikroprocesors (reizēm saukts par "čipu') redzams kā neliels ar laku vai plastmasu pārklāts taisnstūra paralēlskaldnis ar daudzām "kājiņām" - ievadiem. Datorā var būt vairāki mikroprocesori, katrs ar savu uzdevumu. Galvenās procesora funkcijas - programmas izpildes kopējo vadību - veic galvenais mikroprocesors. Tas arī nosaka datora jaudu. Viens no mikroprocesora raksturlielumiem ir bitu skaits reģistrā. Mikroprocesoru raksturo arī takts frekvence, ko izsaka megahercos (MHz). Jo lielāka takts frekvence, jo vairāk soļu (mikrooperāciju) procesors var izpildīt laika vienībā, tātad ātrāk strādā programma. Mūsdienu mikroprocesoriem ir dažādas takts frekvence, parasti starp 10 MHz un 66 MHz. Ir datori, kuri var strādāt divās takts frekvencēs, augstāku frekvenci panāk, ieslēdzot t.s. "turbo" režīmu.

Mikroprocesora datora citu elektronisko shēmu vadībai, signālu saņemšanai no tām, datu pārraidei izmanto signālu pārraides līniju kopumu, ko sauc par maģistrāli (angl. bus ). maģistrāli raksturo tās līniju skaits, respektīvi, vienlaicīgi pārsūtāmo bitu skaits. Jo vairāk līniju, jo vairāk bitu vienlaicīgi var pārsūtīt, jo ātrāk, ražīgāk var strādāt dators. Noteiktām maģistrāles līnijām ir savi uzdevumi un nosaukumi. Caur adrešu maģistrāli aktivizē to atmiņas vietu, no kuras jānolasa vai kur jāieraksta informācija. Bitu skaits adrešu maģistrālē nosaka adresējamās atmiņas (t.i., maksimāli iespējamās atmiņas) lielumu. Pa datu maģistrāli notiek mikroprocesora sakari ar citām shēmām. Līniju (bitu) skaits datu maģistrālē nosaka atmiņas izmantošanas ātrumu. Mikroprocesoru attīstības gaitā tiek palielināta gan reģistru ietilpība, gan maģistrāļu ietilpība. IBM tipa dators lieto Intel mikroprocesorus. Pirmais Intel Corporation firmas mikroprocesor Intel 4004 parādījās atklātībā 1971. g.; tas bija 4 bitu mikroprocesors, tātad reģistros bija vieta tikai 4 bitiem, kas ļāva apstrādāt tikai skaitlisko informāciju. No 1972. g. sāka lietot 8 bitu mikroprocesoru Intel 8008; 1982. g. tika izlaists 16 bitu mikroprocesors Intel 80286, 1985. g. - 32 bitu mikroprocesors Intel 80386, tagad IBM tipa dators plaši izmanto arī 486. mikroprocesoru. Praksē, minot vienu vai otru no šiem mikroprocesoriem, parasti atmet firmas nosaukumu un pirmos ciparus; piemēram, ja ir runa par i386. mikroprocesoru, jāsaprot Intel 80386 u. tml. Raksturojot datoru, bieži min mikroprocesora saīsināto numuru kopā ar takts frekvenci; tātad 486/50 nozīmē mikroprocesoru 80486, kurš strādā ar takts frekvenci 50 MHz.Ražo arī dažādas mikroprocesoru modifikācijas, kuras apzīmē ar papildu burtiem pie mikroprocesora numura . Piemēram, mikroprocesoram Intel 80386SX ir 16 bitu datu maģistrāle atšķirībā no Intel 80386, kuram ir 32 bitu datu maģistrāle. Intel 80386SX gan nav tik ražīgs kā Intel 80386, bet ir ievērojami lētāks. Protams, bez Intel mikroprocesoriem eksistē vēl daudz citu mikroprocesoru, piemēram, Macintosh tipa datoros ir mikroprocesori Motorola

19

Page 20: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

MC68030, Motorola MC68040 u.c. Viena no jaunākajām mikroprocesoru sērijām ir Power PC. Šīs sērijas mikroprocesoram MPC601 ir 32 bitu adrešu maģistrāle un 64 bitu datu maģistrāle; 1994. gadā gaidāmi mikroprocesori MPC602, MPC603, MPC604.

Datora darbu izpildē piedalās ne viens vien mikroprocesors. Līdz šim mēs apskatījām galveno procesoru, to, kurš vada datora darbību kopumā. Citi mikroprocesori ir vajadzīgi atsevišķu funkciju izpildei. Daļā datoru vēl līdzprocesors jeb koprocesors, kas ir specializēts mikroprocesors, veidots noteiktu darbību izpildei, kuras līdzprocesors var veikt ātrāk nekā galvenais procesors. Parasti tās ir matemātiskās operācijas ar peldošā komata skaitļiem. Ja datorā ar 8088.,80286. vai 80386. procesoru nav līdzprocesora, tad minētie procesori šīs operācijas spiesti izpildīt ar vairākiem desmitiem darbību. Tādēļ ir radīti līdzprocesori 8087, 80287, 80387. Tie paātrina darbu ar peldošā komata skaitļiem 5-15 reizes. Līdzprocesors pilda savas funkcijas, bet nevada citu datora shēmu darbu. Galvenais procesors nosūta uz līdzprocesoru darba izpildes un rezultātu formēšanas komandas. Līdzprocesors efektu dod tad, ja izpildāmajā programmā ir pietekami daudz tam piemērotu operāciju.

Personālajos datoros galvenais mikroprocesors un ar to saistītās mikroshēmas fiziski ir novietoti sistēmbloka iekšienē uz pamatplates (angl. motherboard). Pamatplate ir sistēmbloka mehāniskais pamats; tā ir iespiestā plate, kurā atrodas sistēmas maģistrāle, uz pamatplates ir kontaktligzdas (angl. slot), lai varētu ievietot papildplates. Papildplatēs var būt, piemēram, atsevišķi atmiņas veidi, videoadapteris, līdzekļi sakariem ar papildierīcēm, pieslēgšanai tīklam u.c.

Procesors vada arī informācijas apmaiņu ar datora ārējām ierīcēm - klaviatūru, peli, monitoru, iespiedierīci, arī modemu, zīmējumu nolasītāju, grafiku zīmētāju, ja dators izmanto šādas ārējās ierīces. Informācijas apmaiņa notiek caur portiem - daudzkontaktu rozetēm. Datoram ir paralēlie porti (LPT1 - LPT4) un seriālie porti (COM1 - COM3). Paralēlajos portos ir vairāk kontaktu, informācijas apmaiņa notiek ātrāk (visu baitu pārsūta vienlaicīgi), seriālajos portos kontaktu ir mazāk, informācijas apmaiņa ir lēnāka (katra baita bitus sūta vienu pēc otra). Caur paralēlo portu procesoram pieslēdz, piemēram, iespiedierīci, caur seriālo - modemu. Informācijas apmaiņu parasti vada t.s. kontrolieri, kas ir ārējo ierīču vietējās vadības ierīces. Kontrolieris no galvenā procesora saņem informācijas apmaiņas sākuma komandu un tālāk patstāvīgi organizē apmaiņas procesu.

1.5. IESPIEDIERĪCE

Iespiedierīce (angl. printer), saukta arī par drukas ierīci vai drukātāju, ir viena no plašāk lietotajām datora izvadierīcēm. Tās uzdevums ir izvadāmās informācijas, parasti teksta un skaitļu, pārnešana uz papīra. Savu iespēju robežās

20

Page 21: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

iespiedierīce spēj izdrukāt arī dažādus zīmējumus un attēlus, taču shēmu un rasējumu izvadam uz papīra speciāli ir paredzēti attēlu zīmētāji (angl. plotter).

Visa informācija, ko apstrādā un iegūst dators, glabājas datora atmiņā. Lai izvadāmo informāciju iegūtu uz papīra, tā ir jānosūta uz iespiedierīci. Katram burtam, ciparam vai citai zīmei ir savs kods - binārās sistēmas 8 ciparu kombinācija. Bez izvadāmo simbolu kodiem iespiedierīce saņem arī vadības kodus, kas liek izpildīt dažādas tehniskas operācijas, piemēram, papīra padevi, atgriešanos rindas sākumā u.c. No 8 binārajiem cipariem var veidot 256 dažādas ciparu kombinācijas (vieninieku un nullīšu kombinācijas) - 256 dažādus kodus. Daļu no šiem kodiem izmanto vadības signālu kodēšanai, pārējos - burtu, ciparu un pārējo simbolu kodēšanai. Parasti iespiedierīcei ir sava, mūsdienu iespiedierīcēm diezgan liela atmiņa. Tajā uzkrāj no datora atmiņas saņemto informāciju (parasti vienai rindai vai vienai lappusei paredzēto) un arī citas darbam vajadzīgas ziņas.

No datora iespiedierīces gribam, lai tā varētu ātri un kvalitatīvi (glīti, uzskatāmi) izvadīt lielu informācijas apjomu. Ne vienmēr iespējams reizē panākt ātrumu un kvalitāti. Jo mazāk iespiedierīcē mehānisko detaļu, jo ātrāk tā varētu darboties. Abo prasību (ātrumu un kvalitātes) optimālu savienošanu ar pieņemamām izmaksām mēģināts panākt ar dažādam metodēm, tāpēc izveidojušies pēc darbības principiem atšķirīgi iespiedierīču veidi.

Datoru attīstības pašā sākumā tie apstrādāja un izvadīja tikai skaitlisko informāciju - decimālās un heksa decimālās sistēmas skaitļus un skaitļu zīmes. Tikai pēc kāda laika datori attīstījās tiktāl, ka varēja uzņemt, apstrādāt un izvadīt arī alfabētisko informāciju. Tad lietoja galvenokārt divu veidu izvadierīces - elektrificētas rakstāmmašīnas un rotējoša veltņa tipa iespiedierīces.

Ar rakstāmmašīnas tipa iespiedierīcēm nevar sasniegt lielu darbības ātrumu. To ierobežo laiks, kas nepieciešams simbolu stieņa pacelšanai, uzsišanai pa krāsojošo lenti un nolaišanai atpakaļ.

Rotējošā veltņa tipa iespiedierīces galvenā sastāvdaļa ir plats veltnis, kuram katra rinda ir aizpildīta ar metālā lietiem viena simbola attēliem. Datora darba laikā veltnis griežas, un pakāpeniski katra simbolu rinda nonāk pret krāsojošo lenti un papīru. Vajadzīgā brīdī iespiedierīces āmuriņš uzsit pa papīru, piespiežot to pie krāsojošās lentes un veltņa. Tā iegūst attiecīgā simbola nospiedumu uz papīru. Šādām iespiedierīcēm darba ātrums ir liels - līdz 2000 veltņa apgriezienu minūtē, tātad var nodrukāt tikpat daudz rindu minūtē. Rotējošā veltņa tipa iespiedierīces ir lielas un masīva, tāpēc piemērotas tikai lielgabarīta datoriem.

Abām iepriekš minētajām iespiedierīcēm bija kopējs trūkums - to nemaināmais simbolu komplekts. Tās varēja drukāt tikai viena veida vai firmas burtus; simbolu komplekta paplašināšanu neatļāva iespiedierīces gabarīti. Šo iespiedierīču simbolu komplektā nebija latviešu alfabētam specifisko burtu ar garumzīmēm un mīkstinājuma zīmēm. Lai apzīmētu garumzīmi vai mīkstinājuma zīmi, parasti lietoja apostrofu (') aiz attiecīgā burta (piemēram, krūmiņš bija

21

Page 22: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

iegūstams kā kru'min's'). Dažkārt garo patskaņu apzīmēšanai lietoja burtu h aiz patskaņa, līdzīgi (lihdzihgi) kā latviešu rakstībā pirms simt gadiem. Vienā vai otrā variantā iegūtais teksts nebija glīts un nebija arī ērti lasāms.

Būtiskas izmaiņas iespiedierīču darbībā un arī izmantošanā notika līdz ar pāreju no gatavu metālā lietu simbolu izmantošanas uz simbola veidošanu no atsevišķiem elementiem (punktiem). Šo principu, gan atšķirīgā veidā, izmanto mūsdienu personālo datoru iespiedierīces. Tas ļauj lietot vairāk un dažādākus simbolus, to skaitā arī latviešu alfabēta specifiskos burtus, kā arī vieniem un tiem pašiem simboliem panākt dažādu formu un lielumu. Iespiedierīču mehānismi kļūst mazāki, un iespiedierīces nav tik masīva, kā rotējošā veltņa iespiedierīces. Arī visdažādāko attēlu veidošana kļūst iespējama, attēlu sastādot no punktiņiem. Tajā pašā laikā iespiedierīces vadība kļūst sarežģītāka - katra simbola sastādīšanai vai attēla veidošanai ir vajadzīga sava mikroprogramma. Tāda programma var atrasties iespiedierīces pastāvīgajā atmiņā (mikroshēmās), kur šo simbolu drukāšanas programmu ievieto iespiedierīces ražošanas procesā. Vienkāršākajā gadījumā katrs no datora atmiņas iespiedierīcē nonākušais simbola kods drukāšanas laikā izsauc attiecīgā simbola formēšanas mikroprogrammu (programmu, kas norāda, kur jāizvieto attiecīgo simbolu veidojošie punkti). Cenšoties arvien labāk apmierināt datoru lietotāju vajadzības, datoru ražotājiem kļūst skaidrs, ka visiem darba variantiem nepieciešamās mikroprogrammas nav iespējams iepriekš paredzēt un ievietot iespiedierīces pastāvīgajā atmiņā. Tādēļ mūsdienās ir izplatītas maināmās programmas, kuras pēc vajadzības no datora atmiņas ielādē iespiedierīces operatīvajā atmiņā.

Simboliem, īpaši burtiem, var būt daudzi atšķirīgi veidoli. Simbolu komplektu, kuram ir vienāda veidola stils (šrifta veids), sauc par garnitūru. Datoros katras atšķirīgas garnitūras simbolu veidošanai ir sava programma, ko sauc no angļu valodas pārņemtā vārdā par fontu. Lai uz papīra iegūtais teksts izskatītos labāk, lai varētu izcelt atsevišķas teksta daļas, fonti tiek gatavoti visdažādākā izskata un lieluma simbolu veidošanai un datori tiek apgādāti ar vairākiem fontiem (garnitūru komplektiem).

Personālie datori mūsdienās izmanto ļoti daudzu modeļu iespiedierīces, kuras pēc darbības principiem ir iedalāmas 4 grupās: adatu (matricu), lāzera, tintes (strūklu) un termiskās iespiedierīces. No minētajām iespiedierīcēm Latvijā izplatītākās ir adatu tipa iespiedierīces, bet pēdējā minētā grupa, termiskās iespiedierīces, pagaidām tikpat kā nav sastopama.

Adatu tipa iespiedierīcēm to iespiedmehānismā, kas darba laikā virzās gar papīru, ir perpendikulāri papīram izvietotu tievu metāla stienīšu jeb adatiņu komplekts. (Stienīši ir ļoti tievi, tāpēc tos dēvē par adatiņām, taču tie nav domāti caurduršanai, bet uzsitienam pa krāsojošo lenti un papīru.) Katras adatiņas darbināšanai iespiedmehānismā ir savs elektromagnēts. Attiecīgā simbola mikroprogramma caur elektromagnētiem iedarbina tās adatiņas un tajās vietās, kur tas vajadzīgs simbola veidošanai. Iedarbinātās adatiņas caur krāsojošo lenti

22

Page 23: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

uzsit pa papīru un, virzoties gar papīru, pakāpeniski izveido simbola attēlu. Tātad vienas un tās pašas adatiņas var nodrukāt jebkuru simbolu, kadu noteiks mikroprogramma. Šādās iespiedierīcēs katru simbolu izveido, it kā iekrāsojot vajadzīgos punktus matricā ar noteiktu punktu skaitu, piemēram, 5*7, 9*9 vai 18*24 punkti. Tāpēc otrs izplatīts nosaukums adatu tipa iespiedierīcēm ir matricu tipa iespiedierīces. Jo vairāk adatiņu iespiedmehānismā, jo labāku var iegūt simbola attēlu. Pašlaik ražotajām vienkāršākajām iespiedierīcēm ir 9 adatu iespiedmehānisms, bet labākajām - 24 adatu un sevišķi labām pat 48 adatu iespiedmehānisms. Dažām iespiedierīcēm darba ātruma palielināšanai iespiedmehānismā ir 2 adatiņu komplekti, kas atrodas blakus. Ja iespiedierīce var strādāt grafiskajā režīmā, tad raksturojošs lielums ir izšķirtspēja, ko norāda ar punktu skaitu collā, angl. dpi. Parasti adatu iespiedierīcēm izšķirtspēja ir 240*216 vai 360*360 punktu collā.

Iespiedierīces raksturošanai svarīgs lielums ir arī darbības ātrums, ko norāda ar simbolu skaitu sekundē (angl. CPS - caps per second). Adatu iespiedierīcēm parasti iespējams izvēlēties dažādus darba ātrumu. atkarībā no vēlamās nodrukātā teksta kvalitātes. Melnrakstam paredzēto ātro darba režīmu parasti apzīmē ar Draft; dažām ierīcēm ir arī paātrinātā melnraksta režīms - HS-Draft (Hign Speed Draft). Kvalitatīvāku tekstu iegūst, strādājot lēnākā režīmā, ko sauc par LQ vai NLQ (Near Letter Quality) jeb Roman. Atkarībā no konstruktīvajām īpatnībām un izvēlētā režīma adatu iespiedierīcēm var būt ļoti dažādi darbības ātrumi, no 37 līdz pat 1000 simboliem sekundē.

Adatu iespiedierīces ražo dažāda platuma papīram. Mazākās paredzētas A4 platuma (210 mm) papīram, lielākajās var ievietot A3 formāta (420 mm platu) papīru. Adatu iespiedierīces var lietot papīru kā loksnēs, tā ruļļos. Papīra kvalitāte nav sevišķi svarīga. Ar kopējamo papīru iespējams iegūt vairākus dokumenta eksemplārus.

Lāzera iespiedierīces (parasti angl. nosaukums Laser Jet) nodrošina visaugstākās kvalitātes dokumentus, bet pagaidām tās ir dārgākais iespiedierīču veids (3-4 reizes dārgāks par adatu iespiedierīcēm). Lāzera iespiedierīces izmanto kserogrāfijas principu. Burtus, ciparus un citus attēlus veidojošie punkti vispirms ar lāzera startu tiek nosūtīti uz iespiedierīces veltni, kurš pārklāts ar pusvadītāja materiāla (selēna) slāni. Šajās vietās veltnis pievelk krāsvielas pulveri, tātad uz veltņa izveidojas attēls. Piespiežot veltnim papīru, attēls pielīp papīram, kur to nofiksē sasildot.

Lāzera iespiedierīcēm parasti ir liela operatīvā atmiņa, kurā var glabāt lielu skaitu dažādu simbolu garnitūru un arī attēlus. Lielais pieejamo garnitūru daudzums, iegūto attēlu labā kvalitāte dara šīs iespiedierīces piemērotas poligrāfiski pavairojamo tekstu sagatavošanai. Šo pašu iemeslu dēļ lāzera iespiedierīces iecienījuši tie lietotāji, kuri vēlas ar datoru iegūt dokumentus, kas izskata ziņā neatšķiras no tipogrāfiski iespiestajiem. Darba ātrums lāzera iespiedierīcēm ir 4-8 lapas minūtē (angl. ppm - pages pro minute); izšķirtspēja

23

Page 24: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

parasti 300*300 punktu collā, ir arī 600*600 punktu collā. Iespiedierīce var izmantot tikai lokšņu papīru; dažas ierīces spēj tekstu iespiest lapas abās pusēs.

Tintes iespiedierīces (angl. Deskjet, arī Inkjet) izmanto šķidru krāsvielu, ko caur šauru sprauslu uzpūš papīram. Uzpūšamā krāsviela veido it kā strūklu, tāpēc izplatīts arī otrs nosaukums - strūklu iespiedierīces. Arī šīs iespiedierīces dod labas kvalitatīvs papīrs, lai sīkie krāsvielas pilieniņi neizplūstu. Cenas ziņā tintes (strūklu) iespiedierīces ir līdzīgas adatu iespiedierīcēm.

Termiskās iespiedierīces izmanto vadāma siltuma starojuma iedarbību uz materiālu. Vecākajās un vienkāršākajās termiskajās iespiedierīcēs izmantoja ar speciālu sastāvu pārklātu papīru, kas sasildītajās vietās iekrāsojās. Tagad ražo arī tādas termiskās iespiedierīces, kuras ir krāsojošu vasku pārklāts veltnis, pie kura piespiež papīru. Siltuma stars tekstam atbilstošās vietās sasilda vasku, kas pielīp papīram un atstāj uz tā tekstu vai attēlu.

Iespiedierīces, ar kurām var iegūt krāsainu tekstu vai attēlus, pagaidām vēl ir maz izplatītas. Adatu iespiedierīcēs krāsainu dokumentu var panākt ar vairākām krāsojošām lentēm vai dažādu krāsu joslām lentē, tintes iespiedierīcēm - lietojot vairāku krāsu tinti. Taču praktiski krāsainu tekstu vai attēlus varēs iegūt tikai tad, ja datoram būs attiecīgā programmatūra, kas paredzēta krāsu izvēlei un kombinēšanai.

Iespiedierīču darba vadību veic gan datora izpildāmā programma, gan iespiedierīcē ielādētie fonti, gan datora lietotājs, izmantojot iespiedierīces slēdžus, vadības taustiņus un programmatūras dotās izvēles iespējas. Tādēļ ar mūsdienu iespiedierīcēm iespējams iegūt ļoti daudzveidīgu iespiesto materiālu. Iespējami dažāda lieluma un platuma burti; tekstu var drukāt gan ar parastajiem vertikālajiem burtiem, gan arī slīpiem (kursīvu), trekniem burtiem, pasvītrotu un arī pārsvītrotu tekstu; iespējams arī drukāt dažādus indeksus augstāk vai zemāk par teksta rindu, kā tas vajadzīgs formulās. Iespiestā teksta izskats atkarīgs arī no tā, vai katra simbola aizņemtais platums ir vienāds simboliem (to sauc par fiksēto izvietojumu) jeb atbilstošs simbola platumam (proporcionālais izvietojums). Fiksētā izvietojuma gadījumā tādiem burtiem kā 'i' un 'm' uz papīra būs vienāda aizņemtā telpa, resp. ap burtu 'i' būs lielāks tukšums nekā ap burtu 'm'. Strādājot ar tekstiem latviešu valodā, jārēķinās ar to, ka specifisko latviešu burtu kodiem iespiedierīcē no ražotāja dotajās mikroprogrammās atbilst pavisam citu simbolu ( parasti t.s. pseidografikas) kodi, jo pagaidām tieši latviešu tekstiem paredzētas iespiedierīces neražo. Tādēļ ir vajadzīga palīgprogramma, kas liek formēt latviešu alfabēta burtus. Parasti šādu palīgprogrammu ielādē operatīvajā atmiņā tūlīt pēc datora iedarbināšanas. Ievērojot to, ka datorā lietojamo kodu skaits ir ierobežots - kopā ar vadības kodiem ne vairāk par 256 - var rasties vajadzība pēc sarežģītākām procedūrām, ja jālieto vairāku valodu alfabēti.

Vairums lietišķo programmu pakešu, sevišķi teksta redaktori, veido savu darba vidi, kura attiecas arī uz iespiedierīces darbību. Tādās paketēs ir noteikts fontu komplekts, un lietotājs pēc izvēlnēm var noteikt katrā gadījumā vajadzīgo

24

Page 25: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

simbolu veidu un citus parametrus. Šādu programmu paketēs parasti ir to iespiedierīču saraksts, kuras var izmantot, strādājot ar attiecīgo paketi. Tāpēc iespējams vispirms iepazīties ar dažādu lietišķo programmu pakešu un iespiedierīču iespējam un, tās iegādājoties, izvēlēties optimālo variantu.

Pasaules informātikas līdzekļu rūpniecība ražo ļoti daudz iespiedierīču tipu un modeļu. Tie parasti nav saistīti ar kādu noteiktu datora tipu.

2. PROGRAMMĒŠANAS VALODA PASCAL

2.1. IEVADS

Pasaulē ir tūkstošiem programmēšanas valodu. Šādai daudzveidībai ir dažādi iemesli. Pirmkārt, tam ir vēsturiski iemesli, kas saistīti ar laiku un vietu, kurā parādī -jušās programmēšanas valodas. Lielākais programmēšanas valodu vairums pamatojas uz angļu valodas leksikas izmantošanu, jo valstīs ar angļu valodu notika visintensīvākā informātikas attīstīšana. Ar to var saistīt daudzas valodas iepludinātos, ar informātiku saistītos angļu vārdus - kompjūters, fails, printeris u.tml.

25

Page 26: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Otrs iemesls programmēšanas valodu daudzveidībai ir tehniskais. Pirmie datori bija tik primitīvi, ka tas neļāva realizēt universālas valodas. Tāpēc to vietā sākumā parādījās daudz vienkāršākas programmēšanas valodas.

Trešais iemesls - programmistu pieredze. Sākumā tā bija tik niecīga un programmistu skaits tik mazs, ka nevarēja būt ne runa par universālas programmēšanas valodas izveidi. Uzdevumu skaits bija ierobežots ar profesionālu programmistu skaitu. Bet pēc tam notika informātikas ieviešana visās informatīvās darbības sfērās, kas savukārt noveda pie programmēšanas valodu izstrādes atbilstoši katrai sfērai.

Ceturtais iemesls - nacionālais. Sakarā ar informātikas ieviešanu daudzās valstīs, katra no tām centās izstrādāt savas programmēšanas valodas, kas balstījās uz nacionālajām valodām. visbiežāk tie bija pazīstamo programmēšanas valodu tulkojumi. Protams, ir zināmas arī patiešām oriģinālas izstrādes. Jāpiezīmē, ka īpašu attīstību šis virziens neguva, izņemot, varbūt , Japānu. Tas ir saistīts ar to, ka programmēšanas valodu izstrāde un ieviešana prasa ļoti lielus ieguldījumus, kas bieži vien ir nepieejami lielākam valstu vairumam. Bez tam starptautiskā pro-grammu apmaiņa prasa vienotu programmēšanas sistēmu. Tās valstis, kas mēģina izveidot savas iekšējās sistēmas, nonāk izolācijā.

Visbeidzot, ir vēl viens svarīgs programmēšanas valodu daudzveidības iemesls, kas saistīts ar datoru pielietošanas nozaru lielo skaitu.

Tāpat kā runā par matemātikas. mūzikas un tml. valodām kā par specifiskām zināšanu attīstības valodām, var arī runāt par programmēšanas valodām. kurās speciālisti var brīvi veidot dažādu procesu algoritmus.

Var rasties jautājums, ja programmēšanas valodu ir tik daudz, tad kā tajās orientēties? Kuras no tām jāstudē pirmkārt? Atbildes uz šiem jautā jumiem ir at-karīgas no uzdevumu veida. Ja tie ir specifiski uzdevumi, tad, konsultējoties ar speciālistiem, ir jāizvēlas atbilstoša programmēšanas valoda. Ja šiem uzdevumiem ir vispārīgs raksturs, tad parasti izvēlas kādu universālu programmēšanas valodu. Parasti par šādu valodu sākuma posmā var būt, piemēram, PASKAL valoda.

PASKAL valodas autors ir Niklaus Virts, Šveices matemātiķis. Pirmā versija parādījās 1973. gadā. Valoda nosaukta par godu franču fiziķim Blezam Paskalam (1623. - 1662.g.), kura viens no pirmajiem piedāvāja mehanizēt informācijas apstrādes procesus.

PASKAL valoda ātri attīstījās, un tagad ir pietiekoši spēcīga daudzu problēmu risināšanai. Par PASKAL valodas galveno priekšrocību tiek uzskatīta tās struktualitāte.

Studējot PASKAL valodu, jāņem vērā tās lielo dialektu skaitu. Latvijā jāpievērs uzmanību diviem dialektiem:

- TURBO-PASKAL IBM PC tipa datoriem, kas strādā MS DOS sistēmā;- PASKAL IBM PC/AT datoriem, kas strādā WINDOWS sistēmā.

26

Page 27: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

2.2. Kas ir PASKAL programma ?

Programma PASKAL valodā - tas ir specifisks teksts ar datiem un darbību secību, kuras izpildot ar datora palīdzību tiks atrisināts kāds uzdevums. Šo tekstu, līdzīgi parastam tekstam, pieraksta rindiņu veidā, kuras sastāv no savdabīgiem teikumiem. katram teikumam ir obligāti jābeidzas ar semikolu. Parasti tanī jā-ietilpst noteiktiem vārdiem angļu valodā vai arī to saīsinājumiem. Šos vārdus sauc par aprakstītājiem un operatoriem. Aprakstītāju piemēri: TYPE, ARRAY, VAR, CONST, LABEL. Operatoru piemēri: DO, READ, REPEAT, WHILE, WRITE. Daudzi teikumi PASKAL programmās līdzinās formulām, piemēram:

y := x + 5; z := a - sin(x);Aprakstītājus PASKAL programmās lieto paziņojot datoram informāciju

par mainīgām, konstantēm un iezīmēm, kā arī uzdodot programmās sarežģitas funkcijas, procedūras un blokus.

Operatorus PASKAL programmās lieto pierakstot sarežģitas darbības, lēmumu pieņemšanu pēc uzdoto nosacījumu pārbaudes rezultāta atkārtojot programmas blokus, kā arī izvēloties programmas blokus.

Programmām var būt dažādas sarežģītības pakāpes, bet tajās noteikt jābūt vismaz vienam operatoram, ar kura palīdzību tiek risināts uzdevums.

Lūk, kādas vienkāršas programmas piemērs: PROGRAM TEKSTS; BEGIN WRITE('Labdien, draugi !'); END.Šī programma uz datora ekrāna parādīs tekstu: "Labdien draugi !". Prog-

rammas teksts sastāv no četrām rindiņām. Pirmā rindiņā: PROGRAM TEKSTS; - pasludina programmas nosaukumu, tam jāatbilst programmas saturam. Otrā rindiņā: BEGIN - nozīmē programmas sākuma aprakstītāju, kam obligāti jābūt katrā programmā. Trešā rindiņā sākas tā saucamais programmas ķermenis , kas dotajā gadījumā ir viens operators WRITE, kas nodrošina attiecīgās informācijas parādīšanu ekrāna. Pašu tekstu liek iekavas un izdala ar apostrofiem. Teksts var būt jebkur, jo to dators neanalizē. Ceturtā rindiņā: END. - nozīmē programmas beigu aprakstītāju, kam obligāti jābūt katrā programmā.

Jāņem vērā, ka programmas pēdējais simbols ir punkts, kas nozīmē, ka tālāk rindiņu nav. Sarežģītai programmai atbilst sarežģīta struktūra. Vispārīgā gadīju-mā tā sastāv no sekojošiem elementiem:

- programmas nosaukums; - konstantu apraksts; - mainīgo tipu apraksts; - funkciju un procedūru apraksts; - BEGIN

27

Page 28: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

- programmas ķermenis; - END.

Ar programmas nosaukumu mēs jau iepazināmies. Jāpiezīmē, ka parasti tas sastāv no latīņu burtiem un cipariem, bet pirmajam simbolam obligāti jābūt latīņu burtam, piemēram: TESTS13, S25B, KODOLS un tml. Kā burtu var izmantot arī _ simbolu.

Konstantu aprakstā jābūt visu pastāvīgo lielumu nosaukumiem ar to vērtī-bām, piemēram: CONST Pi = 3.14; MAX = 1000; tu = 'Liene'; Šajā gadījumā programmā 3.14, 1000 un Liene vietā var izmantot konstantes Pi, MAX un tu. Tas padara programmu uzskatāmu.

Bez konstantēm PASKAL valodā, protams, izmanto arī mainīgos, bet, lai dators varētu darboties ar mainīgiem, PASKAL valodā jāuzdod tā saucamo mainīgo tipu. PASKAL valodā ir pazistāmi šādi tipi: INTEGER - veseliem skaitļiem, REAL - reāliem skaitļiem, CHAR - simboliem, BOOLEAN - loģis-kiem mainīgiem, STRING - tekstuāliem mainīgiem, FILE - datiem, kas ierakstīti disketē vai citā informācijas nesējā. Dažādas PASKAL valodas versijās var būt uzdoti arī citi tipi, bez tam programmistam dota iespēja pašam uzdot savus datus tipus, tas notiek programmās sākumā. Piemēram, ja ir jāapraksta tipu mainīgiem, kas atbilst darba dienam, to var izdarīt sekojoši:

TYPE DARBADIENA = (PIRMDIENA, OTRDIENA, TREŠDIENA,

CETURTDIENA, PIEKTDIENA);Mainīgo apraksti PASKAL valodā vajadzīgi, lai dators varētu izpildīt

aritmētiskas, loģiskās u.c. operācijas. Ja mainīgā tips sakrīt ar PASKAL valodā uzdoto tipu, tad, aprakstot mainīgo, ir vienkārši jāuzdod atbilstošais tips, piemēram:

Var SKAITS, L13,J:INTEGER; X,Y:REAL;Šeit mainīgie SKAITS, L13 un J - aprakstīti kā veselie un X, Y kā reālie. Ja

mainīgā tips atbilst tam, ko uzdod pats programmists, tad, aprakstot mainīgo, jāuzrāda šis tips. Piemēram:

Var DOLE, SAKTA, IMANTA: DARBADIENA;Šeit mainīgie DOLE, SAKTA, IMANTA atbilst veikalu darbadienām, t.i.

pirmdiena, otrdiena, trešdiena, ceturtdiena, piektdiena - attiecīgi augšā minētam mainīgo tipam. Tas nozīmē, ka programmā PASKAL valodā mainīgajiem DOLE, SAKTA, IMANTA vērtības ir nevis skaitļi, bet dienu nosaukumi.

28

Page 29: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Funkciju apraksts nozīmē PASKAL valodā zināmo funkciju (sin, cos, exp, u.tml.) papildināšanu ar jaunām. Piemēram, var uzdot funkciju APLIS, kas rēķina apļa garumu pēc uzdota rādiusa R:

FUNCTION APLIS(R:REAL):REAL; BEGIN APLIS := 2*3.14*R; END;Šeit FUNCTION ir funkcijas APLIS virsraksts, R: REAL - nozīmē, ka

funkcijas arguments ir reāls skaitlis, pašas funkcijas vērtība arī ir reāls skaitlis, uz ko norāda virsraksta rindiņas beigas. Starp BEGIN un END atrodas funkcijas ķermenis. Tas ir mainīgā APLIS vērtības aprēķins (protams, te var būt daudz rindiņas).

Programmā ar funkciju APLIS var veikt aprēķinus, izmantojot šo funkciju ierastā veidā, piemēram, Y := APLIS(5) + 0.5;

Procedūras aprakstu PASKAL valodā lieto, lai izdalītu visbiežāk programmā izmantotos blokus. Šos blokus, ko noformē kā procedūras, var izmantot vienkārši izsaucot atbilstošo procedūru pēc tās nosaukuma.

Funkcijas un procedūras lieto arī, lai strukturizētu programmas. Kā rāda pieredze, šādas programmas ir daudz vieglāk izstrādāt un pilnveidot nekā nestrukturizētas. Lūk, kādas programmas piemērs, kurā izmanto trīs procedūras:

PROGRAM APSTRADE; [ datu apraksts ] [ funkciju un procedūru apraksts ] BEGIN DATU_IEVADS; DATU_APSTRADE; REZULTATU_IZVADS;END;Šeit procedūras DATU_IEVADS, DATU_APSTRADE, REZULTATU-

_IZVADS - tiek aprakstītas blokā (funkciju un procedūru apraksts ). Pievērsiet uzmanību, ka vārdi APSTRADE un REZULTATU ir bez garumzīmēm, jo tās nedrīkst lietot PASKAL programmas pamattekstā. Ja programmā vajag komentēt (atstāt programmētāja piezīmes) kādas darbības, blokus un tml., tad komentāra tekstu ievieto figūru iekavās (TURBO-PASKAL variantā):

C := 2 * PI * R { riņķa garums }

2.3. Valodas alfabēts.

Alfabēts - tas ir valodā pieļaujamo simbolu kopums (vai simbolu grupa, kas apskatāma kā viens vesels). Valodā TURBO PASCAL visas komponentes tiek formētas no liela daudzuma ASCII standartsimboliem.

29

Page 30: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Alfabēta elementi var tikt nosacīti iedalīti sekojošās grupās:¨ simboli, izmantojamie identifikatoros;¨ sadalītājos;¨ speciālos simbolos;¨ neizmantotos simbolos.

Simboli, izmantojamie identifikatoros

Identifikators - jebkura programmas objekta vārds var ietvert sevī burtus, ciparus un pasvītrošanas simbolu.

Par burtiem var tikt izmantoti 26 latīņu burti (lielie un mazie) no A .. Z, a .. z. Bez identifikatoriem burti var tikt izmantoti sešpadsmitnieku sistēmā, lai apzīmētu ciparus no 10 līdz 15 (burti A .. F, a .. f), rindas konstan tēs, at-slēgvārdos un komentāros. Jāņem vērā, kā lielie un mazie burti identifikatoros, skaitļos un atslēgvārdos neatšķiras: piemēram, NAME, Name, name būs identiski. Tomēr simbolu rindās un komentāros lielie un mazie burti atšķiras un translēšanas rezultātā netiek pārveidoti.

Par cipariem tiek izmantoti 10 arābu cipari 0 .. 9. Identifikatoros tie var atrasties jebkurā pozīcijā, izņemot pirmo. Tāpat cipari tiek izmantoti skaitļu konstantu atveidošanā, piemēram, 157 vai 12.8.

Pasvītrošanas simbols var atrasties jebkurā pozīcijā.Identifikatora garums nav noteikts, bet skaitās tikai pirmie 63 simboli, un

pēc šiem simboliem visiem identifikatoriem jābūt unikāliem.

Sadalītāji

Sadalītāji tiek izmantoti identifikatoru, skaitļu un rezervēto vārdu at-dalīšanai. Par sadalītājiem var tikt izmantoti:

¨ tukšumzīme ¨ jebkurš vadības simbols (kodi no 0 .. 31), ietverot ievada taustiņu (kods

13); ¨ komentārs.

Jebkurā programmas vietā, kur var novietot vienu sadalītāju, tos var ievietot jebkurā veidā un skaitā. Tas atļauj uzskatāmāks uztvert programmas struktūru.

Komentāri tiek ieslēgti iekavās: { }, vai (* *) un var aizņemt jebkuru rindu skaitu. Komentāru, kurā pēc iekavas atvēršanas seko simbols $, sauc par translatora direktīvu (sk. 17.7 par.).Translēšanas laikā visi programmas komentāri, izņemot translatora direktīvas, tiek ignorēti.

30

Page 31: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Speciālie simboli

Speciālie simboli, kas valodā izpilda noteiktas funkcijas, tiek sadalīti trijās kategorijās:

¨ - punktuācijas zīmes;¨ - operācijas zīmes;¨ - rezervētie vārdi.

Punktuācijas zīmes

Pieļaujamās punktuācijas zīmes un to nozīmes ir dotas tabulā Nr.1.

Tabula 1. Valodas punktuācijas zīmes

Zīme Izmantošana { } komentāra iekavas (* *) komentāra iekavas [ ] masīvu indeksu, kopumu, rindas garuma norādītāji ( ) izteiksmju, parametu sarakstu norādītāji ' apostrofs simbola vai rindas konstantes izdalīšanai := mainīgā piešķiršanas, tipizētas konstantes vai funkcijas zīme ; programmas (operatoru un ziņojumu) teikumu atdalīšanas

zīme : mainīgā vai tipizētas konstantes atdalīšanas no tipa vai

iezīmes no tipa apraksta zīme Zīme Izmantošana = identifikātora tipa atdalīšanas no tipa apraksta vai konstantes

no tās vērtības zīme , saraksta elementu atdalīšanas zīme .. diapazona robežu atdalīšanas zīme . programmas beigu zīme, reālā skaitļā veselās daļas no

mantisas atdalīšanas zīme, ieraksta lauku atdalīšanas zīme un identifikātora atdalīšanas no moduļa vārda vai objekta, kurā tas atrodas zīme

^ (jumtiņš) rādītāja tipa apzīmēšanas, lieluma vērtības zīme @ "komerciālais pa", mainīgā adreses, tipizētas konstantes,

apakšprogrammas, metodes apzīmēšanas zīme # simbola apzīmēšanas pēc tā koda zīme $ translatora direktīvas vai sešpadsmitnieku sistēmas skaitļa

31

Page 32: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

apzīmēšanas zīme

Operācijas zīmes

Operācijas zīmes ir paredzēti kaut kādas aritmētikas, loģiskas vai citas darbības iezīmēšanai. Šādām operācijām ir divi tipi: sastādīti no neburtiskiem simboliem (piemēram, + - * utt.) un burtu operācijas (piemēram, not, div, mod utt.), kas ir rezervētie vārdi. Rezervētie vārdi

Rezervētie vārdi ietver sevī dienesta vārdus (piemēram, begin, end, div utt.) un direktīvas vārdus (piemēram, external, forward un t.t.). Rezervētos vārdus var izmantot tikai pa tiešam norādījumam un tos vārdus nevar pārveidot. TURBO PASCAL valodas rezervēto vārdu pilns saraksts ir ielikumā.

Neizmantojamie simboli

Daži no ASCII kodēšanas simboliem, piemēram, %, &, " utt., ir neizmanto-ti TURBO PASCAL valodā, bet šos simbolus var izmantot kommentāros un simbolu rindiņās.

2.4. DATU TIPI

Datu tips - tas ir pieļaujamo datu vērtību kopums, bez tam operāciju kopums ar datu tipiem.

2.4.1. Datu tipu klasifikācijaPASCAL valodā var izdalīt sekojošas tipu grupas:

¨ vienkāršie tipi;¨ strukturētie tipi;¨ rādītāji;¨ procedūras tipi;¨ objekti.

PASKAL valodā ir standarttipi un tipi, ko definē programmētājs. Stan-darttipi ir veselie tipi, reālie tipi, loģiskie tipi, simbolu tips, rindas tips, teks-tu fails, tips-rādītājs. Visi pārējie tipi jādefinē vai tipu apraksta nodaļā, vai mainīgo apraksta nodaļā.

32

Page 33: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Tipu apraksta nodaļa sākas ar rezervēto vārdu TYPE, pēc tam tiek defi-nēti ievadāmie tipi. Katra jauna tipa definējums sākas no tipa identifikatora. Tālāk iet vienādības zīme, un tālāk - pats definējums, kurš beidzas ar semikolu:

TYPE<tipa vārds 1> = <tipa definējums 1><tipa vārds 2> = <tipa definējums 2> . . .

<tipa vārds N> = <tipa definējums N>Šeit būs aprakstīti tikai vienkāršie tipi.

2.4.2. Vienkāršie datu tipi

Vienkāršie tipi definē parametra vērtību sakārtotu kopumu. TURBO PASCAL valodā ir sekojošās vienkāršo tipu grupas:

¨ veselie tipi;¨ loģiskie tipi;¨ simboliskais tips;¨ pārskaitāmais tips;¨ diapazonu tips;¨ reālie tipi.Visi vienkāršie tipi bez reāliem tipiem saucas par kārtas tipiem.

2.4.2.1. Veselie tipi

Ir pieci veselu skaitļu standārttipi: Shortint, Integer, Longint, Byte, Word. Šo tipu raksturojumi ietilpst tabulā 2.

Tabula 2. Veselie datu tipi

Tips Diapazons Formāts Izmērs (baitos)Shortint -128 .. 127 ar zīmi 1Integer -32768 .. 32767 ar zīmi 2Longint -2147483648 .. 2147483647 ar zīmi 4Byte 0 .. 127 bez zīmes 1

Word 0 .. 65535 bez zīmes 2

2.4.2.2. Loģiskais tips

33

Page 34: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Standarta loģiskais tips BOOLEAN (izmērs 1 baits) - tas ir tāds datu tips, kura elementi var pieņemt tikai divas nozīmes: TRUE un FALSE. Šajā gadijumā ir pareizi sekojošie nosacījumi:

False < True; Succ(False) = True;Ord(False) = 0; Pred(True) = False;Ord(True) = 1.TURBO PASCAL 7.0 valodā ir pielikti vel trīs loģiskie tipi :ByteBool (izmērs 1 baits), WordBool (izmērs 2 baiti), LongBool (izmērs 4

baiti). Šā papildies tipi ir ietilpināti, lai unificētu TURBO PASCAL ar citām valodām un ar WINDOWS vidi.

2.4.2.3. Simboliskais tips

Simboliskais standarttips CHAR ietver sevī visus ASCII simbolus. Funkcija ORD no CHAR tipa lieluma dod attiecīgā simbola kodu. Salīdzinās simboliskā tipa lielumi pēc saviem kodiem.

2.4.2.4. Pārskaitāmais tips

Pārskaitāmais tips nav standarttips un tiek noteikts ar identifikatoru komplektu, ar kuriem var sakrist parametra nozīmes. Identifikatoru saraksts tiek norādīts apaļajās iekavās, identifikatorus atdala komati:

TYPE

<tipa vārds> = (<identifikators 1>,<identifikators 2>, ... , <identifikators N>);

Ir svarīgi kādā kārtībā tiek pārskaitīti identifikatori tipa definēšanā, tā kā pirmajam identifikatoram tiek piešķirts kārtas numurs 0, otrajam - 1 utt. Viens un tas pats identifikators var tikt izmantots tikai viena pārskaitāmā tipa definēšanā. Funkcija ORD no pārskaitāmā tipa lieluma dod tā kārtas numuru.

Piemērs. Pārskaitāmais tips.

TYPEOperat = (Plus, Minus, Mult, Divide);

Loģiskais tips ir atsevišķs pārskaitāmā tipa gadījums:TYPE

Boolean = (False, True);

2.4.2.5. Diapazona tips

34

Page 35: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Jebkurā sakārtotā tipā var izdalīt daudz vērtību apakškopu, ko nosāka minimālā un maksimālā vērtības, kurās ietilpst visas izejas tipa vērtības, kuras atrodas šajās robežās, ieskaitot pašas robežvērtības. Tāda apakškopa nosāka diapazona tipu. Diapazona tips tiek uzdots norādot minimālo un maksimālo vērtības, kuras tiek atdalītas ar diviem punktiem:

TYPE <tipa vārds> = <minimāla vērtība> .. <maksimāla vērtība>;Tāda tipa definēšanā minimālā vērtība nedrīkst būt lielākā par maksimālo. Piemērs. Diapazona tipu definēšanaTYPE

Dozen = 1 .. 12; { skaitļi no 1 līdz 12 }AddSub = plus .. minus; { saskaitīšanas un atņemšanas operācijas }

2.4.2.6. Reālie tipi

Atšķirībā no Paskāla standartversijas, kur ir iespējams tikai viens reālais tips REAL, TurboPaskālā ir pieci reālie standarttipi: Real, Single, Double, Extended, Comp. Šo tipu nozīmes dotas tabulā 3.

Tabula 3. Reālie datu tipi

Tips Diapazons Zīmīgu ciparu skaits

Izmērsbaitos

Real 2.9 * 10 -39 .. 1.7 * 10 38 11-12 6Single 1.5 * 10 -45 .. 3.4 * 10 38 4Double 5.0 * 10 -324 .. 1.7 * 10 308 8Extended 3.4 * 10 -4932 .. 1.1 * 10 4932 10Comp -2263+1 ..2263-1 8

Comp tips faktiski ir palielinājuma diapazona veselu skaitļu tips, bet šo tips ir nesakārtots.

Single, Double, Extended un Comp tipi drīkst izmantot programmās tikai tād, jā ir aritmētisks soprocesor vai soprocesora emulatora ieslēgšanai.

2.5. Izteiksmes

35

Page 36: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Izteiksmes tās ir sintaktiskās valodas vienība, kura definē kaut kādās nozīmes aprēķināšanas veidu. PASCAL valodā izteiksmes tiek formēti saskaņā ar noteikumu rindu no konstantēm, no mainīgiem, no ierakstu laukiem, no objektu laukiem, no funkcijām, no operāciju zīmēm un apaļām iekavām.

2.5.1. Mainīgie

Mainīgie - tie ir programmas parametri, kuru vērtības var izmainīties prog-rammas izpildīšanas procesā.

Visi izmantojamie programmā mainīgie jādefinē ar mainīgu tipu norādīju-miem. Mainīgos drīkst definēt:

¨ programmas mainīgo pasludinājumu nodaļā;¨ apakšprogrammas mainīgo pasludinājumu nodaļā;¨ moduļa mainīgo pasludinājumu nodaļā;¨ apakšprogrammas virsrakstā.Mainīgo pasludinājumu nodaļa sākas ar rezervēto vārdu VAR, pēc tam seko

konkrētu mainīgo pasludinājumi. Mainīgo pasludinājumi sastāv no mainīgā vārda (no mainīgo vārdiem, kuri ir pārskaitīti caur komatu, ja mainīgiem ir vienādi ti -pi), no kola un no mainīgā (mainīgo) tipa. Katrs pasludinājums beidzas ar semikolu. Piemēram:

Var <mainīgo saraksts 1> : <tips 1> ; <mainīgo saraksts 2> : <tips 2> ; . . . <mainīgo saraksts N> : <tips N> ;

Mainīgo pasludinājumu nodaļā var izmantot ne tikai iepriekš noteiktus tipus, bet arī tipus, kuri jau definēti tipu pasludinājumu nodaļā, tāpat arī jaunus tipus, kuri tiek ievadīti priekš konkrētiem mainīgiem.

Programmas virsrakstā pie mainīgo noteikšanas var izmantot tikai standartā vai agrāk noteiktus tipus.

Piemērs.TYPE OPERAT = (PLUS, MINUS, MULT, DIVIDE);VAR X,Y,Z:REAL; { iepriekš noteikts tips } I,J,K:INTEGER; { iepriekš noteikts tips } OPERATOR:OPERAT; { agrāk noteikts tips } DIGIT:0 .. 9; { jauna tipa pasludināšana}

36

Page 37: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Mainīgie, kuri nav pasludināti apakšprogrammā, saucas par globālajiem mainīgiem, t.i. tie ir pieejami visās programmas daļās, tajā skaitā arī apakšprogrammās, un ievietojas segmentu izmērā ar 65520 baitiem.

Mainīgie, kuri pasludināti apakšprogrammā, saucas par lokālajiem mainīgiem, t.i. tie ir pieejami tikai tajā apakšprogrammā, un ievietoti steka segmentā. Steka segmenta izmērs ir 16384 baitu pie noklusēšanas, bet ar kompilatora atslēgas {$M} palīdzību var izmainīt tā izmēru no 1024 līdz 65520 baitiem.

Globālie mainīgie visu laiku atrodas atmiņā, lokālie mainīgie ievietojas stekā uz apakšprogrammas izpildīšanas laiku, pēc tam steka apgabals atbrīvojas.

TURBO PASCAL valodā var izmantot absolūtos mainīgos, kuri ievietoti noteiktā atmiņas apgabalā. Absolūtie mainīgie tiek apgādāti ar direktīvi absolute un ar šī mainīgā ievietošanas vietas norādījumu. Pie tam ir divi varianti:

¨ absolūtās adreses norādījums operatīvajā atmiņā segmenta adreses un nobīdes tiek uzdotas caur kolu;

¨ mainīgā "piesaistīšana" pie citas mainīgo sākuma adreses.Piemērs.VAR STR:string[32]; { tips-rinda } STRLEN: Byte absolute STR; { piesaistīšana pie rindas sākuma } CrtMode:Byte absolute $0040:$0049 { absolūtās adreses norādījums }

2.5.2. Konstantes

Par konstantēm saucas tie programmas parametri, kuru vērtības nemainās programmas izpildījuma procesā. TURBO PASCAL valodā ir divējādi iespējama konstantu izmantošana:

¨ tieši konstantes vērtības izmantošana;¨ konstantes identifikatora izmantošana.

Konstantu identifikatori tiek uzdoti konstantu pasludināšanas nodaļā, kura sākas ar rezervēto vārdu Const. TURBO PASCAL valodā ir divi konstantu veidi, kuri tiek uzdoti ar identifikatoriem:

¨ parastās konstantes, kuras tipi definējas ar konstantu vērtībām;¨ tipizētās konstantes, kuriem tiešā veidā ir norādīts tips.

Parastās konstantes var būt vesela, reāla, simboliska, loģiska tipa un string tipa, tipizētās konstantes var būt jebkura tipa izņemot failu tipu ( vai tipu, kuram ir failu tipa komponente). Parastām konstantēm tiek uzdoti vārdi un vērtības, kas ir atdalīti ar vienādības zīmi:

37

Page 38: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Const <konstantes vārds 1> = <vērtība 1>; <konstantes vārds 2> = <vērtība 2>; . . . <konstantes vārds N> = <vērtība N>; Konstantu vērtības var būt uzdotas gan ar konkrētiem lielumiem, gan ar

konstantu izteiksmēm.

2.5.2.1. Veselās konstantes

Veselo konstanšu attēlošanā izmanto tikai zīmi un skaitļus (zīmi + var nenorādīt). Tiek lietota desmitnieku skaitīšanas sistēma, taču var tikt izmantota arī sešpadsmitnieku skaitīšanas sistēma. Šai gadījumā pirms konstantes ir jānorāda zīmi $. Veselo decimālo skaitļu diapazons ir no mīnus 2147483648 līdz + 2147483648, bet sešpadsmitnieku sistēmā no $00000000 līdz $FFFFFFFF. TURBO PASCAL valodā ir divi pirms noteikti skaitļi:

MaxInt = 32767;MaxLongInt = 2147483648;

2.5.2.2. Reālās konstantes

Reālās konstantes savā attēlojumā satur decimāla punktu un/vai pakāpes rādītāju (simbolu E vai e), piemēram:

Var X = -0.5; Y = 1.0; Z = -1E-5; W = 7.5e+15;

2.5.2.3. Rindu un simboliskās konstantes

Simbolu rinda ir jebkura ASCII simbolu skaita kopums, ieskaitot arī tukšu rindu, kas atrodas vienā rindā un ir iekļauta apostrofos. Par ierobežojumu var būt maksimālais rindas izmērs, ko uztver kompilators - 126 simboli.

Rinda, kas sastāv no viena simbola, saucas par simbolisko konstanti.Ja starp apostrofiem nav neviena simbola, tad tāda rinda saucas par tukšu

rindu (vai nulles rindu).Simbola "apostrofs" ievietošanas nepieciešamības gadījumā to ir jānorāda

divreiz, piemēram, 'Valoda' ' TURBO PASCAL' ' 'Lai ieslēgtu rindā simbolus, kuriem nav redzama attēla, tiek izmantots to

ASCII kods ar simbolu # pirms tā. Lai attēlotu vadības simbolus (kodi no 0 līdz

38

Page 39: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

31) var izmantot simbolu ^ un atbilstošo burtu, kuras kods ir vienāds ar vadības simbola kodu + 64.

Piemērs. Rindas konstantes. Const Symbols = 'TURBO'; Apostroph = ' ' ' '; TwoLines = 'Line1'#13#10'Line2'; Return = ^M^J;

2.5.2.4. Konstanšu izteiksmes

Konstanšu Izteiksmes ir tādas izteiksmes, kas var būt izskaitļotas kompilācijas stadijā, nepalaižot pašu programmu. Šīs ir izteiksmju atsevišķi gadījumi un var sastāvēt no konstantēm, operāciju zīmēm, apaļajām iekavām un dažādām standartfunkcijām.

Piemērs. Konstanšu izteiksmes.

$A00 { Izteiksme, kas sastāv no konstantes }' A ' { Izteiksme, kas sastāv no simboliskas konstantes }Pi/4 { Izteiksme ar funkcijas un operācijas zīmes

izmantošanu }' TURBO ' + '-' + ' PASCAL ' { rindu

apvienošana } Konstanšu izteiksmēs var izmantot sekojošās funkcijas: Abs, Chr, Hi, High,

Length, Lo, Low, Odd, Ord, Pi, Pred, Ptr, Round, SizeOf, Succ, Swap, Trunc.

2.5.2.5. Tipizētās konstantes

Tipizētās konstantes faktiski ir inicializētie mainīgie un to var izmantot kā parastie mainīgie, tā skaitā piešķiršanas operācijas kreisā daļā. Katrai tādai konstantei tiek uzdots konstantes vārds, tips un sākotnēja vērtība. Tips no konstantes vārda ir atdalīta ar kolu, sākotnēja vērtība no tipa - ar vienādības zīmi:

ConstMaximum: Integer = 9999;Rea: Real = -0.5;Bell: Char = #7;

Jāzina, kā tipizētās konstantes tiek inicializēti tikai vienu reizi - programmas darba sākumā.

2.5.3. Standartā funkcijas

39

Page 40: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

TURBO PASCAL valodā pastāv rinda iepriekš izstrādātu apakšprogrammas-funkcijas, kuras var izmantot ka gatavus objektus. TURBO PASCAL valodā to skaits palielināts salīdzinājumā ar standarta valodu un tie visi apvienoti standarta moduļos. IEVADA-IZVADA un dinamiskās atmiņas izvietojuma standarta funkcijas aprakstītas agrāk.

2.5.3.1. Aritmētiskās funkcijas

Aritmētiskās funkcijas var izmantot tikai ar veselā un reālā tipa lielumiem. Aritmētiskas funkciju saraksts ir ievietots tabulā 4.

Tabula 4. Aritmētiskās funkcijas

Funkcija Noteikšana Rezultāta tipsAbs(X) Argumenta absolūtā vērtība Sakrīt ar X tipamArctan(X) Argumenta arktangenss ReālsCos(X) Argumenta kosinuss ReālsExp(X) eksponenta no X Reāls Funkcija Noteikšana Rezultāta tipsFrac(X) Skaitļa daļskaitļa daļa ReālsInt(X) Skaitļa veselā daļa ReālsLn(X) Naturālais logaritms ReālsPi Lieluma vērtība Pi =

3.1415926535897932385 Reāls

Sin(X) Argumenta sinuss ReālsSqr(X) Argumenta kvadrāts Sakrīt ar X tipamSqrt(X) Kvadrātsakne no argumenta Reāls 2.5.3.2. Tipa pārveidošanas funkcijas

Tās funkcijas tiek noteiktas lai pārveidotu lielumu tipus, piemēram, simbolu pārveidot uz veselo skaitli, reālo skaitli - uz veselo skaitli u.tml. Tādas funkcijas ir sekojošas:

Chr(X) - ASCII koda pārveidošana uz simbolu. Funkcijas argumenta vērtībai jābūt diapazonā no 0 līdz 255. Funkcijas rezultāts ir simbols, kurš atbilsts dotajam kodam.

Hign(X) - maksimālas vērtības lieluma saņemšana. Funkcijas arguments ir sakārtota tipa, masīva tipa, rindas tipa vai atklāts masīvs. Sakārtota tipa funkcijas lieluma rezultāts ir tā lieluma maksimālā vērtība. Masīva tipa lieluma funkcijas rezultāts ir indeksa maksimālā vērtība. Rindas tipa lieluma funkcijas rezultāts ir pasludinātais rindas izmērs. Atklātā masīva lieluma funkcijas rezultāts ir masīva

40

Page 41: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

komponentu daudzums bez 1 ( maksimālais indekss, kad numerācijas sākums no nulles).

Low(X) - minimālās vērtības lieluma saņemšana. Funkcijas arguments ir sakārtota tipa, masīva tipa, rindas tipa parametrs vai identifikators vai atklāts masīvs. Sakārtota tipa lieluma funkcijas rezultāts ir tā lieluma minimālā vērtība. Masīva tipa lieluma funkcijas rezultāts ir indeksa minimālā vērtība. Rindas tipa lieluma funkcijas rezultāts ir 0. Atklāta masīva lieluma funkcijas rezultāts ir 0.

Ord(X) - jebkura sakārtošanas tipa pārveidošana uz veselo tipu. Par funkcijas argumentu var būt jebkura sakārtošanas tipa (loģiskā, simbolā, pārskaitāmā tipa) lielums. Funkcijas rezultāts ir tipa LongInt lielums.

Round(X) - reālā skaitļa noapaļošana līdz tuvākajam veselajam. Funkcijas arguments ir reālā tipa lielums, bet funkcijas rezultāts ir līdz tuvākājam veselajam noapaļotā tipa LongInt lielums.

Trunc(X) - reāla skaitļa veselā daļas saņemšana. Funkcijas arguments ir reālā tipa lielums, bet funkcijas rezultāts ir ša skaitļa veselā daļa. Rezultāta tips ir LongInt.

2.5.3.3. Sakārtojuma tipa lielumu funkcijas

Šīs funkcijas ļauj izpildīt darbību rindu ar sakārtojuma tipa lielumiem, piemēram, atrast iepriekšējo vai sekojošo elementu, pārbaudīt skaitļa neparību. Pie šīm funkcijām pieder sekojošas funkcijas:

Odd(X) - neparības X lieluma pārbaude. Funkcijas arguments ir LongInt tipa lielums, rezultāts ir True, ja arguments ir pāra, un - False, ja arguments ir nepāra.

Pred(X) - iepriekšējās vērtības X lieluma noteikšana. Funkcijas arguments ir kaut kāda sakārtota tipa lielums, bet rezultāts ir iepriekšējā vērtība ta paša tipa, piemēram, Pred(2) ir vienādi 1. Ja izmanto šo funkciju pie secības pirmajam elementam, tad rodas kļūda.

Succ(X) - sekojošās vērtības X lieluma noteikšana. Funkcijas arguments ir kaut kāda sakārtota tipa lielums, bet rezultāts ir sekojošā vērtība ta paša tipa, piemēram, Succ(2) ir vienādi 3. Ja izmanto šo funkciju pie secības pēdējam elementam, tad rodas kļūda.

2.5.4. Operāciju zīmes

Visas operācijas TURBO PASCAL valodā var sadalīt sekojošās grupās:¨ aritmētiskās operācijas;¨ loģiskās operācijas;¨ operācijas ar informāciju bitiem;¨ operācijas ar rindām;¨ attiecības operācijas;¨ adrešu operācija @.

41

Page 42: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Ja operācijās ir izmantoti daži dati, tad datu tipiem jābūt vai identiskiem vai savienojamiem.

2.5.4.1. Aritmētiskās operācijas

Aritmētiskās operācijas var izmantot tikai pie veselā un reālā tipa lielumiem. Šīs operācijas var sadalīt uz unārām un binārām operācijām. Unārā zīme plus +, kura ir novietota iepriekš veselā, vai reālā tipa lielumam, neietekmē uz lieluma vērtību. Unārā zīme minusi -, kura ir novietota iepriekš veselā vai reālā tipa lielumam, maina lieluma vērtības zīmi. Binārās aritmētiskās operācijas un operāciju zīmes ir uzrādītas tabulā 5.

Tabula 5. Aritmētiskās operācijas

Zīme Operācija Operandu tipi Rezultāta tips + Saskaitīšana veselie vesels + Saskaitīšana kaut viens operands ir

reāla tipa reāls

- Atņemšana veselie vesels - Atņemšana kaut viens operands ir

reāla tipa reāls

* Reizināšana veselie vesels

Zīme Operācija Operandu tipi Rezultāta tips * Reizināšana kaut viens operands ir

reāla tipa reāls

/ Dalīšana veselie vai reālie reāls Div veselu skaitļu

dalīšana veselie vesels

Mod atlikums no veselo skaitļu dalīšanas

veselie vesels

Operācijas izmantošanas piemēri:C := A + B; C := A - B; C := A * B; C := A / B;C := A div B (ja, piemēram, A = 10 un B = 3, tad C = 3);C := A mod B (ja, piemēram, A = 10 un B = 3, tad C = 1).

2.5.4.2. Loģiskās operācijas

42

Page 43: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Loģiskās operācijas tiek izmantotas pie loģiskā tipa lielumiem, operācijas rezultāts - arī loģiskā tipa lielums. TURBO PASCAL valodā ir viena unārā loģiskā operācija NOT (negācija) un trīs binārās operācijas, tā ir AND (un), OR (vai) un XOR ("vai" izslēgšana). Loģiskās operācijas ir definētas ar patiesības tabulām 6. un 7.

Tabula 6. NOT operācijas patiesības tabula

X not X False True True False

Tabula 7. AND, OR un XOR operācijas patiesības tabula

X Y X and Y X or Y X xor YFalse False False False FalseFalse True False True TrueTrue False False True TrueTrue True True True False

TURBO PASCAL valodā ir loģisko izteiksmju aprēķināšanas divi veidi: pilnā aprēķināšana un saīsinātā aprēķināšana. Pilnā aprēķināšana nozīmē, ka tiek rēķināts katrs operands, pat tad, kad jau ir zināms visas izteiksmes rezultāts. Saīsinātā aprēķināšana ir veidotā līdz tām, kamēr būs zināms visas izteiksmes rezultāts, pēc tam sekojošo operandu aprēķināšana beidzas.

Pieņemsim, ka ir izteiksme A and B, kur A un B ir dažas loģiskās izteiksmes (operandi). Jebkurā gadījumā pie pilnās aprēķināšanas tiek aprēķināta gan izteiksme A, gan izteiksme B, un tikai pēc tam tiek formēta visas izteiksmes vērtība. Saīsinātā aprēķināšanā, ja lielums A = False, tad izteiksme B neaprēķinās, jo izteiksmes B vērtība uz rezultātu neietekmē , kurš jebkurā gadījumā būs False. Tādā gadījumā tiek samazināts aprēķināšanas laiks.

Aprēķināšanas veida izvēle tiek izpildīta ar kompilatora atslēgas palīdzību $B. Ja tiek izmantota atslēga {$B-}, tad tiek realizēta saīsinātā aprēķināšana. Ja tiek izmantota atslēga {$B+}, tad tiek realizēta pilna aprēķināšana.

Piemērs. Gadījums, kad nepieciešams izmantot loģiskās izteiksmes saīsināto aprēķināšanu.

if (i >= Low(Arr)) and (i <= High(Arr)) and (Arr[i] < 0) then Arr[i] := -Arr[i];

43

Page 44: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Šajā piemērā pārbaudes kāda i-ta elementa masīva Arr zīme, kurš satur skaitļus : (Arr < 0). Ja zīme negatīva, tad to nomaina ar zīmi +. Pie tam iepriekš vajag pārbaudīt, vai eksistē elements ar tādu indeksu: (). Te Low un High - standarta funkcijas, kuri nosaka minimālos un maksimālos masīva elementu indeksus. Protams, ja elementa nav, tad nevar pārbaudīt neesošā elementa zīmi. Tādēļ, ja nosacījums (i >= Low(Arr)) and (i <= High(Arr)) ir nepatiess, tad otro nosacījumu (Arr[i] < 0) pārbaudīt nevar. To var nodrošināt tikai izmantojot loģiskās izteiksmes saīsināto aprēķināšanu.

Piemērs. Gadījums, kad nepieciešams izmantot loģiskās izteiksmes pilno aprēķināšanu.

Lai nepieciešams no faila Fil nolasīt pa pāriem tajā atrodošos veselos skaitļus un saskaitīt gadījumu skaitu, kad abi skaitļi ir lielāki par nulli. Uzdevuma aprēķināšanai uzrakstīsim funkciju FuncRead, kura formē vienu nolasītu skaitli no faila.

Program EXAMPLE2;VAR Fil : file of Integer; N:word; {skaitļu pāru skaitļotājs}beginfunction FuncRead;{sekojoša skaitļa iegūšanas funkcija} var X : Integer;begin

if not Eof(Fil) then {faila beigu pārbaude} Read(Fil, X) {nolasīšana, ja ir tāds elements} else X := 0; {0 - ja nav tāda elementa}

FuncRead := X;end;begin {pamatprogramma}

N := 0;WHILE not (Eof(Fil)) doif (FuncRead > 0) and {pirmā skaitļa pārbaude}

(FuncRead > 0) then {otrā skaitļa pārbaude}Inc(N); {pāru skaitļotāja palielināšana}

. . .end.

Šajā piemērā katrā cikla WHILE iterācijā nepieciešams lasīt pa diviem skaitļiem. Tas ir iespējams tikai tad, ja loģiskā izteiksme (FuncRead > ()) and (FuncRead > ()) būs aprēķināta pa pilnai shēmai.

44

Page 45: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

2.5.4.3. Operācijas ar informācijas bitiem

NOT, AND, OR, XOR operācijas var izmantot pēc bitu operācijās ar veseliem skaitļiem, līdz ar to rezultāta tips tiek nosacīts ar mazākam tipa operandam, t.i. operandam, kuram ir mazāks izmērs. Šājām operācijām ar veselajiem skaitļiem ir sekojoša nozīme:not - veselā skaitļa visu bitu inversijas unārā operācija;and - bitu loģiskā operācija UN diviem veseliem skaitļiem;or - bitu loģiskā operācija VAI diviem veseliem skaitļiem;xor - bitu loģiskā operācija VAI IZSLĒGŠANA diviem veseliem skaitļiem;

Pie tās pašas grupas var pieskaitīt SHL un SHR operācijas, kurām ir sekojoša nozīme:

shl - I shl J operācija nobīda saturu I uz J bitu pa kreisi. Atbrīvotie biti tiek piepildīti ar nullēm.

shl - I shl J operācija nobīda saturu I uz J bitu pa labi. Atbrīvotie biti tiek piepildīti ar nullēm.

Piemērs. Operāciju izmantošana ar informācijas bitiem . Nepieciešams ievadīt veselu skaitli bez zīmes. Ja šis skaitlis ir pārā

skaitlis, tad jāizved skaitļa vecāko baitu, bet, ja šis skaitlis ir nepārā skaitlis, tad jāizved skaitļa jaunāko baitu.Program EXAMPLE3;CONST

Mask = $FF; {jaunākā baita izdalīšanas maska}VAR

Value:Word;BEGIN Write ('Lūdzu, ievadiet veselu pozitīvu skaitli: '); Readln(Value); if Value and 1 = 0 then {parības pārbaude} Writeln (' Skaitlis ir pāra, vecākais baits ir vienāds ', (Value shr 8) and Mask) else Writeln (' Skaitlis ir nepāra, jaunākais baits ir vienāds ', Value and Mask)END.

2.5.4.4. Attiecības operācijas

Attiecības operācijas ir domātas priekš divu lielumu salīdzināšanas (lielumiem jābūt savienojuma tipa). Salīdzināšanas rezultātam ir loģisks tips. Attiecības operācijas ir sekojošas:

45

Page 46: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

= - vienādi;<= - mazāks vai vienāds;<> - nevienādi;>= - lielāks vai vienāds;< - mazāks;> - lielāks.

2.5.5. Apaļās iekavas

Apaļās iekavas izmanto priekš iekļaušanas tajās izteiksmes daļu, kuras vērtību nepieciešams izpildīt pirmām kārtām. Izteiksmēs var būt jeb kāds apaļo iekavu skaits, pie kam attaisāmo apaļo iekavu skaitam jābūt vienādam ar aiztaisāmo apaļo iekavu skaitam. Izteiksmes daļas, iekļautas apaļajās iekavās, var būt iekļautas viena otrā.

2.5.6. Izteiksmju skaitļošanas kārtība

Izteiksmju vērtības izskaitļošana izpildās noteiktā kārtībā. Izskaitļošana sākas ar mainīgo un konstantu noteikšanu, kuras atrodas šajā izteiksmē. Tās ir pamats tālākā skaitļošanā. Tālākās darbības tiek izpildītas attiecībā ar to prioritātēm. Tā, pirmām kārtām izskaitļojas izteiksme, kura atrodas apaļajās iekavās. Priekš diviem dažādiem viens otrā iekļautajiem apaļo iekavu pāriem, sākumā izskaitļojas iekšējā izteiksme, bet pēc tam ārējā izteiksme. Tālāk izskaitļojas funkcijas vērtības, kuras atrodas izteiksmē utt. Visu darbību prioritātes iekļautas tabulā 8.

Tabula 8. Izteiksmju skaitļošanas darbības prioritātes

Grupa

Darbības tips Operācijas vai elementi

1 Skaitļošana appaļājās iekavās

( )

2 Funkcijas vērtību skaitļošana

Funkcijas

3 Unārās operācijas @, not, unārā +, unārā -4 Reizināšanas tipa

operācijas*, /, div, mod, and, shl, shr

5 Saskaitīšanas tipa operācijas

+, -, or, xor

6 Attiecības operācijas =, <>, <, >, <=, >=, in Piemērs.

46

Page 47: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

(X > 0) and (X < 5)Šajā piemērā sākumā izpildes divas salīdzinājuma operācijas (6-tās grupas

operācijas), bet pēc tam loģiskā operācija (4-tās grupas operācijas).

2.6. TURBO PASCAL VALODAS OPERATORI

Valodas operatori tiek aprakstīti dažās algoritmiskās darbībās, kuras jāizpilda uzdevuma risināšanai. Programmas ķermenis ir tādu operatoru secība. Programmas operatori tiek atdalīti cits no cita ar semikolu.

TURBO PASCAL valodas operatorus var sadalīt uz divām grupām: vienkāršie operatori un strukturētie operatori.

2.6.1. Vienkāršie operatori

Vienkāršie operatori ir tie operatori, kuri nesatur sevī citus operatorus. Šie operatori ir:

¨ piešķiršanas operators;¨ procedūras izsaukšana;¨ beznosacīta pārgājiena operators GOTO;¨ tukšais operators.

2.6.1.1. Piešķiršanas operators

Ar šā operatora palīdzību mainīgajam vai funkcijai tiek piešķirta izteiksmes vērtība. Lai to izdarītu, tiek izmantota piešķiršanas zīme := . Mainīgā vai funkcijas vārds tiek rakstīts pa kreisi no zīmes, bet pa labi no zīmes tiek rakstīta izteiksme, kuras vērtība tiek aprēķināta līdz piešķiršanai.

Ir pieļaujama kaut kāda tipa vērtību piešķiršana mainīgiem un funkcijām. Izteiksmes tipam un mainīgo (vai funkcijas) tipam jābūt savienojami piešķiršanai.

Piemērs:X := Y;X := A + B;RES := (I >0) AND (I < 100);I := Sqr(J) + J*K;

47

Page 48: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

2.6.1.2. Beznosacījuma pārgājiena operators GOTO. Operators GOTO atļauj izmainīt izpildāmo operatoru standarta secības

kārtību un pāriet pie programmas izpildīšanas, sākot ar uzdoto operatoru. Operatoram, uz kuru notiek pāreja, jābūt atzīmētam ar iezīmi. Tai pašai iezīmei jābūt norādītai operatorā GOTO.

Iezīmes, kuras izmanto TURBO PASCAL valodā, var iedalīt divos tipos: veselie skaitļi robežās no 0 līdz 9999; parastam identifikatoram. Visām izmantojamām iezīmēm ir jābūt aprakstītām iezīmju pasludināšanas nodaļā, kuras sākas ar rezervētu vārdu LABEL , piemēram:

Label1, 2, Metka;

Ar vienu iezīmi var iezīmēt tikai vienu operatoru. Iezīme no iezīmētā operatora tiek atdalīta ar kolu. Operatoru GOTO vajag izmantot uzmanīgi. Tā plaša pielietošana bez ārkārtējas vajadzības pasliktina programmas darba loģiku. Beznosacījuma pārgājienu var izpildīt ne no katras programmas vietas un ne uz katru programmas vietu. Piemēram, ar šā operatora palīdzību nedrīkst pāriet no pamatprogrammas uz apakšprogrammu vai iziet no tās, tapāt nav ieteicams realizēt pāreju strukturētā operatora vidū, tā kā tas var nedot pareizu rezultātu utt.

Piemērs. Atrast dalījumu no veselo skaitļu dalīšanas.Program EXAMPLE4;Label

Out;Var

X, Y, Res: Integer;Begin

Write ('Ievadiet dalāmo');Readln (X);Write ('Ievadiet dalītāju');Readln (Y);if Y = 0 thenbegin Writeln ('Dalīšana ar nulli'); Goto Out;end;Res := X div Y;Writeln (' Dalījums ir vienāds: ',Res);Out: { tukšais operators }

End.

48

Page 49: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

2.6.1.3. Tukšais operators

Tukšais operators neizpilda nekādu darbību un nekādi netiek atainots programmā ( izņemot var būt iezīmes vai semikolus, kas atdala tukšo operatoru no iepriekšējiem un sekojošiem operatoriem). Tas var būt nepieciešams beznosacījuma pārejas izpildei.

2.6.2. Strukturētie operatori

Strukturētie operatori ir tādi operatori, kuri sastāv no citiem operatoriem. Tie ir:

¨ saliktais operators;¨ nosacījuma operators IF;¨ nosacījuma operators CASE;¨ cikla operators REPEAT;¨ cikla operators WHILE;¨ cikla operators FOR;¨ operators WITH darbam ar ierakstiem.

2.6.2.1. Saliktais operators

Saliktais operators sastāv no secīgi izpildāmiem operatoriem, kas ieslēgti starp operatoriekavām begin un end:

begin<operators 1 >;<operators 2 >;

. . .<operators N >;

end;

Saliktais operators var būt nepieciešams gadījumos, kad saskaņā ar programmas pareizrakstības noteikumiem var tikt izmantots viens operators, bet ir jāizpilda vairākas darbības. Tādā saliktā operatorā ieiet operatoru rinda, kas arī izpilda vajadzīgās darbības.

Turpmāk visur, kur tiks norādīts, ka var tikt izmantots viens operators, tātad var būt izmantots arī saliktais operators.

Atsevišķie operatori saliktā operatora vidū atdalās viens no otra ar semikolu. Tā kā saliktā operatora beigu vārds end nav atsevišķs teikums, tad pirms tā semikolu var arī nelikt, citādi kompilators domās, ka pirms end stāv tukšais operators.

49

Page 50: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Var pieņemt, ka arī pats programmas ķermenis, tā kā tas arī ir ieslēgts starp begin un end, arī ir saliktais operators.

2.6.2.2. Nosacījuma operators IF

Operators IF realizē algoritmisko konstrukciju Sazarojums un maina programmas izpildes kārtības veidu atkarībā no izteikuma patiesības vai nepatiesības. Ir divi operatora varianti:

If S then A else B; {pilnais sazarojums}unIf S then A; {saīsinātais sazarojums}Šajos operatoros:¨ S - kaut kāda loģiskā izteiksme, kuras patiesība tiek pārbaudīta;¨ A - operators, kurš tiek izpildīts, ja izteiksme S ir patiesa;¨ B - operators, kurš tiek izpildīts, ja izteiksme S ir nepatiesa.Tā kā nosacījuma operators IF ir viens teikums tad ne pirms then, ne pirms

else semikolu likt nedrīkst. Operatora izmantošanas piemēri:

if X < 0 then X := -Y;if X < 1.5 then Z := X + Y else Z := 1.5;

Piemērs. Ievadīt veselu skaitli un izvadīt simbolu, kas atbilst šim skaitlim ASCII kodos, ja tāds simbols ir, vai arī ziņojumu, ka tāda simbola nav. Vadības simboli neskaitās.

Program EXAMPLE5;Var

X : Integer;begin

Write (' Ievadiet veselu skaitli ');Readln (X);if (X > 31) and (X < 256) then

Writeln ('Atbilstošais simbols - ', Chr(X)) elseWriteln ('Tāda simbola NAV');

end.

2.6.2.3. Nosacījuma operators CASE

50

Page 51: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Ar ši operatora palīdzību var izvēlēties variantu no jebkura variantu skaita. Šī operatora struktūra TURBO PASCAL valodā:

Case S ofc1: Instruction1;c2: Instruction2;

. . .cN: instructionN;

Else Instructionend;

kur :¨ S - sakārtotā tipa izteiksme, kuras vērtība tiek aprēķināta;¨ c1, c2, ..., cN - konstantes, ar kurām tiek salīdzināta izteiksmes S

vērtība;¨ Instruction1, Instruction2, InstructionN - operatori, no kuriem tiek

izpildīts tas, ar kura konstanti sakrīt izteiksmes S vērtība;¨ Instruction - operators, kurš izpildās, ja S vērtība nesakrīt ne ar vienu no

pārskaitītajām konstantēm c1, ... ,cN.Operatora else lietošana nav obligāta. Ja tā nav un S vērtība nesakrīt ne ar

vienu no konstantēm, viss operators tiek uzskatīts par tukšu. Atšķirībā no operatora IF pirms vārda else ir jālieto semikols.

Ja vairākām konstantēm jāizpilda viens operators, tad tos var pārskaitīt caur komatu ( vai pat norādīt diapazonu, ja iespējams), apvienojot tos ar vienā operatorā.

Piemērs.Readln (I);Case I of

0, 2, 4, 6, 8 : Writeln ('Pāra skaitlis'); 1, 3, 5, 7, 9 : Writeln ('Nepāra skaitlis');

10 .. 100: Writeln ( 'Skaitlis no 10 līdz 100');else

Writeln (' Negatīvs skaitlis vai lielāks kā 100')end;

2.6.2.4. Cikla operators REPEAT

51

Page 52: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Cikla operators Repeat organizē cikla izpildi, kas sastāv no jebkura operatoru skaita, ar iepriekš nezināmu atkārtojumu skaitu. Cikla ķermenis izpildās kaut vienu reizi. Izeja no cikla izpildās kāda loģiska nosacījuma patiesīguma gadījumā. Šī operatora struktūra:

RepeatInstruction1;Instruction2;

. . .InstructionN;

until S;kur :¨ Instruction1, Instruction2, ... , InstructionN - izpildāmie operatori, kas

veido cikla ķermeni;¨ S - loģiskais izteikums, kura patiesīgums tiek pārbaudīts katras

iternācijas beigās.Tā kā vārdi repeat un until ir sava veida operatoriekavas, semikolu pirms

vārda until var nelietot.Piemērs. Modificētā programma, kura aprēķina divu skaitļu kopsummu.Program EXAMPLE6;Var

X, Y, Sum: Integer;Ch : Char;

beginrepeat

Write ('Ievadiet skaitļus X un Y');Readln (X, Y);Sum := X + Y;Writeln (' X un Y skaitļu summa ir vienāda ', Sum);Write ('Programmu beigsim ? ');Readln(Ch);

until (Upcase (Ch) = 'Y') or (Ch = 'j') or (Ch = 'J');end. {UpCase - lielā burta saņemšana}

2.6.2.5. Cikla operators WHILE

Cikla operators While organizē cikla izpildi, kas sastāv no jebkura operatoru skaita, ar iepriekš nezināmu atkārtojumu skaitu. Izeja no cikla izpildās, ja kāda loģiska nosacījuma nepatiesīguma gadījumā. Tā kā loģiskās izteiksmes

52

Page 53: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

patiesība tiek pārbaudīta katras iterācijas sākumā, cikla ķermenis var neizpildīties ne reizi. Šī operatora struktūra:

While S do Instruction;Šeit:¨ S - loģiskā izteiksme, kuras patiesība tiek pārbaudīta katras iterācijas

sākumā; ¨ Instrukcion - izpildāmais cikla operators.

Piemērs. Atrast vesela pozitīva skaitļa visus dalītājus (bez 1 un paša skaitļa).

Program EXAMPLE7;Var

X: Integer;Half : Integer;Divider : Integer;i : Integer;

beginrepeat

Write ('Ievadiet skaitli, kurš ir lielāks, kā nulle);Readln (X);if X <= 0 then Writeln ('Nepareizs ievads');

until X > 0;Half := X div 2;Divider := 2;i := 0;While Divider <= Half dobegin

if X mod Divider = 0 thenbegin

Inc(i); {Skaitlītāja palielišana par 1}Writeln (i,' - ais dalītājs ir vienāds: ', Divider)

end;Inc(Divider); {Dalītāja palielišana par 1}

end;If i = 0 then Writeln (' Dalītāju nav ');Writeln ('Risinājuma beigas');

end.

2.6.2.6. Cikla operators FOR

Cikla operators FOR organizē viena operatora izpildīšanu agrāk zināmu reižu skaitu . Ir operatora divi varianti:

53

Page 54: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

for Param := Start to Finish do Instrukcion;for Param := Start downto Finish do Instrukcion;Šeit:¨ Param - cikla parametrs, kurš ir sakārtotā tipa mainīgais;¨ Start - izteiksme, kura definē cikla parametra sākumvērtību;¨ Finish - izteiksme, kura definē cikla parametra beigvērtību;¨ Instruction - izpildāmais operators.Start un Finish jābūt savietojamiem ar cikla parametru.Cikls strādā šādā veidā. Sākumā tiek izskaitļoti un iegaumieti sākuma - Start

un beigu - Finish cikla parametra vērtības. Pēcāk cikla parametram Param tiek piešķirta sākuma vērtība Start, kas pēc tam tiek pielīdzināta vērtībai Finish. Tālāk, kamēr cikla parametrs ir mazāks vai vienāds beigu vērtībai (pirmajā operatora variantā) vai lielāks un vienāds beigu vērtībai (otrajā operatora variantā), tiek izpildīta kārtējā cikla operācija; pretējā variantā notiek izeja no cikla. Kārtējās iterācijas izpilde ietver sevi sākuma operatora Instruction izpildi, pēc tam piešķir cikla parametram nākošo lielāko vērtību (pirmajā operatora variantā) vai nākošo mazāko vērtību (otrajā variantā).

Dabiski, ka ja pirmajā variantā Start vērtība ir lielāka par Finish vai otrajā variantā Start vērtība ir mazāka par Finish, operators neizpildās ne reizi.

Pēc izejas no cikla cikla parametrs kļūst nenoteikts, izņēmumā kad izeja no cikla tika veikta ar operatora GOTO vai standartprocedūras Break palīdzību.

Piemērs. Izvadīt uz ekrānu burtus no Z līdz A.Program EXAMPLE8;Var

i : Char;begin

for i := 'Z' downto 'A' do write (i);writeln;

end.

Piemērs. Izskaitļot 101 Sin(X) vērtību ar doto soli un izvadīt pirmo negatīvo sinusa vērtību.

Program EXAMPLE9;Label 1;Var

Si : array [0..100] of real; {reālo skaitļu masīvs}Step : real;X : real;i : Integer;

beginWrite ( 'Ievadiet izskaitļošanas soli');

54

Page 55: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Readln(Step);X := 0; {Sākumarguments}for i := 0 to 100 dobegin

Si[i] := Sin(X);X := X + Step;

end;for i := 0 to 100 doif Si[i] < 0 thenbegin Writeln ('Pirmā negatīvā sinusa vērtība: ', Si[i],,

' Elementa numurs : ', i); Goto 1;

end;Writeln ( ' Negatīvas vērtības nav ');

1:end.

2.6.2.7. Standartprocedūru Break un Continue izmantošanacikla operatoros Repeat, While un For

TURBO PASCAL 7.0 versijā ciklos REPEAT, WHILE un FOR var izmantot divas jaunas procedūras - Break un Continue. Procedūra Break atļauj pirmslaicīgi iziet no cikla, negaidot cikla beigu nosacījumu. Procedūra Continue ļauj sākt jaunu cikla iterāciju pat ja iepriekšējā nav beigta.

Piemērs. Veselo skaitļu masīvā atrast pirmo negatīvo skaitli un izvadīt to uz displeja ekrāna.

Program EXAMPLE10;Const

N = 10;Var

Mas: array [1 .. N] of Integer;i : byte;Yes : boolean;

beginWriteln ('Ievadiet masīva elementus');for i := 1 to N dobegin

write ('Mas [',i,'] = ');readln (Mas[i]);

end;

55

Page 56: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Yes := False; {Skaitlis nav atrasts}for i := 1 to N dobegin

if Mas[i] >= 0 then Continue; {Skaitlis nav negatīvs - uz nakošo skaitli} Writeln ('Pirmais negatīvais skaitlis = ', Mas[i],, ' Numurs = ', i);

Yes := True; Break;end;If not Yes then Writeln ('Negatīvu skaitļu nav');Readln;

end.

2.7. STRUKTURĒTIE DATU TIPI

Strukturētos datu tipus nosaka vienveidīga vai dažādu tipu komponenšu komplekts. Komponenšu tipi veidojas no citu datu tipiem.

TURBO PASCAL valodā ir sekojošie strukturētie datu tipi:¨ masīvs - tips;¨ ieraksts - tips;¨ kopums - tips;¨ fails - tips;¨ string - tips;¨ Pchar - tips.String un Pchar tipi ir masīva tipa paveids. Turpmāk strukturēto tipu objekti

tiks saukti tais pašos vārdos, kā to tipi, bez vārda "Tips" - masīvs, ieraksts, kopums, fails, rinda.

Standartversijā eksistē iepakoti (Packed) un neiepakoti strukturētie tipi. TURBO PASCAL valodā vārds Packed, kas apzīmētu iepakotu tipu, neizrāda nekādu ietekmi; gadījumā kad tas iespējams, datu iepakošana tiek veikta automātiski.

2.7.1. Masīvs

Masīvs - tips ir sakārtoto vienveidīga tipa komponenšu fiksētais skaits. Komponentēm ir indeksi. Masīvs var būt vienmērīgs vai daudzmērīgs. Lai nosacītu masīva tipu, izmanto rezervēto vārdu Array , pēc kura jānorāda komponenšu indeksa (indeksu) tips kvadrātiekavās un tālāk pēc vārda of jānorāda komponenšu tips:

Type

56

Page 57: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

<tipa vārds> = array [ <indeksa (indeksu) tips >] of <komponenšu tips>

Piemērs.

typeArr = array [1 .. 3] of Real; {masīvs no 3 reāliem skaitļiem}Matrix = array [1 .. 3, 1 .. 2] of Integer;{tips - veselo skaitļu divmērīgs masīvs , kurš sastāv no 3 rindām un 2 stabiņiem}

Pēc masīva tipa aprakstus var uzdot tā paša tipa konstantes un mainīgos. Masīva izmērs var būt jebkurš, masīva komponenti var būt jebkura, tai skaitā strukturēta tipa, indekss (indeksi) var būt jebkura sakārtota tipa izņemot tipu Longint.

Kad tiek uzdotas nozīmes masīva konstantei, tad komponentes tiek norādītas apaļās iekavās un ir atdalītas ar komatiem.

Piemērs.type

Arr = array [1 .. 3] of Real; {masīvs no 3 reāliem skaitļiem}Matrix = array [1 .. 3, 1 .. 2] of Integer;

VarM1, M2 : Arr;Matr : Matrix;

ConstM3 : Arr = ( 1, 2, 3 );Mat : Martix = (( 1, 2), ( 3, 4), (5, 6)) ;

Pēdējā konstante atbilst sekojošai struktūrai:1 23 45 6

Masīvu var aprakstīt arī mainīgo aprakstījuma nodaļā. Piemēram,Var

M1, M2 : array [1 .. 3] of Real;Matr : array [1 .. 3, 1 .. 2] of Integer;

Šā gadījumā jāatceras, ka to tipi nebūs identiski nevienam citam tipam, pat ja tiem ir vienāda struktūra. Tāpēc tos nedrīkst nodot apakšprogrammai kā parametrus, tapāt nedrīkst piešķirt tiem citu masīvu vērtības (un otrādi), pat ja tiem ir vienāda struktūra.

Pieeja masīva komponentēm tiek veikta norādot masīva vārdu aiz kura kvadrātiekavās tiek norādīta komponentes indeksa (indeksu) vērtība. Vispārējā gadījumā katrs komponentes indekss var tikt uzdots ar attiecīgā tipa izteiksmi, piemēram:

57

Page 58: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

M1[2],Matr[X, Y],M2[Succ(I)] utt.

Vienam masīvam var piešķirt cita masīva vērtību, taču tiem jābūt identiska tipa. Tā, ja uzdoti sekojošie masīvi,

VarA, B : array [1 .. 5] of Integer;C : array [1 .. 5] of Integer;

tad ir pieļaujams sekojošs operators:A := B;

Bet operatorsC := A;

ir nepieļaujams, tā kā mainīgiem A un C ir neidentiski tipi.

2.7.2. String tipa rinda

TURBO PASCAL valodā rindas tips (standarttips string) ir patvaļīga garuma simbolu secīgums (līdz 255 simboliem). Rindu var apskatīt kā simbolu masīvu, bet sakarā ar to, ka rindas tiek plaši izmantoti PASCAL valodā, tās izdalītas uz atsevišķu tipu.

Ja rindas izmērs nav norādīts, tad rindas izmērs ir pieņemts, ka tas ir vienāds 255. Piemēram,

VarStr : string[80];Maxstr : string; {rinda ar 255 simbolu garumu }

ConstJanuary : string [10];

Priekš rindu mainīgo operācijām konkatenācijas (+) un salīdzinājumi.Konkatenāciju operācijas pie pirmās rindas pieliek klāt otro rindu.Piemērs. Divu rindu apvienošana.Var

Str, Str1, Str2: string [80];begin

. . .Str1 := 'Turbo ';Str2 := 'Pascal ';Str := Str1 + Str2; {STR mainīgajā - 'Turbo Pascal'

. . .end.Salīdzināt var rindas ar dažādiem garumiem. Salīdzināšana notiek no kreisās

uz labo pusi atbilstībā ar ASCII-kodiem atbilstošiem simboliem. Uzskata ka, ja

58

Page 59: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

trūkst simbolu visai īsās rindās, tad tām ir mazāks kods par jebkuru darbojošās simbola kodu. Piemēram, 'XS' lielāks, nekā 'X'.

Piemērs. Pārbaudīt, vai ievadāmo simbolu kopums ir mēneša vārds latviešu valodā.

Program EXAMPLE11;Const

Instance: array [1 .. 12] of string [10] = ('JANVĀRIS','FEBRUĀRIS','MARTS','APRĪLIS','MAIJS','JŪNIJS','JŪLIJS', 'AUGUSTS','SEPTEMBRIS','OKTOBRIS','NOVEMBRIS', 'DECEMBRIS');

Month : Boolean = False; Var

Str : string =[10];i: Integer;

Begin Writeln ('Ievadiet, lūdzu, lielajie simboli'); Readln (Str); for i := 1 to 12 do if Str = Instance[i] then Month := True; if Month then Writeln (' Ir ievadīts mēneša vārds ')

else Writeln (' Nav ievadīts mēneša vārds ');end.

Simbolu faktiskā rinda N ir masīvs no N+1 simbola:string [N] = array [0..N] of Char.Nulles simbols ir paredzēts priekš izmantojamo simbolu rindu skaita

norādes un var mainīties no simbola ar kodu 0 līdz simbolam ar kodu N. Ar to var strādāt kā ar parējiem rindu simboliem (pierakstīt un lasīt to vērtības u.t.t.), bet neaizmirstot par tā pamatnozīmi.

2.7.3. ASCIIZ-rinda.

Versijā 7.0 priekš savienotības ar citu programmēšanas valodu un vidi Windows ir ievadīts vēl viens rindu veids - rindas, kuras beidzas ar nulles baitu - simbolu ar kodu 0 (tā saucamās ASCIIZ -rindas). Atšķirībā no rindu tipa string šīm rindām nav ierobežojumu uz viņu izmēriem (faktiski izmērs var būt 65535 baiti). Šīm rindām ir piešķirts standarttips PChar. Faktiski šis tips ir rādītājs uz simbolu:

PChar = ^Char,tomēr paplašināta sintaksisa (atslēga { x+} ) izmantošana atļauj izmantot

tādu mainīgo kā rindu, ekvivalentu masīvu tipamPChar = array [ 0 .. K ] of Char,

59

Page 60: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

kur K - simbolu skaits rindā, neskaitot noslēdzošo simbolu ar kodu 0. Atšķirībā no tipa string simbols ar indeksu 0 te ir pirmais rindas simbols, bet pēdējais simbols ar indeksu K - noslēdzošais simbols ar kodu 0.

Strādājot ar ASCIIZ - rindām ir ieteicams uzdot paplašinātu sintaksisi; šajā gadījumā nerodas grūtības izmantojot dažādas standarta apakšprogrammas, kuras strādā ar rindām.

Piemērs. PChar tipa rindu izmantošana paplašinātā sintaksisā.Program EXAMPLE12;{$X+} { ne obligāti - izmanto pie noklusēšanas}type

T = array [0 .. 7] of Char; { masīvs priekš rindas ar 7 simboliem}var

Str : PChar;const

A : T = 'Sveiks !'#0;begin

Str := 'SVEIKS!';Writeln (Str); {Rindas "SVEIKS!" izvads }Str := @A; {Ir pieļaujams arī Str := A}Writeln (Str); {Rindas "Sveiks! "izvads }Writeln (Str[1]); {Simbola "v" izvads} Readln;

end.Ja izmanto atslēgu { $x-}, tad PChar tipa mainīgo izskata kā rādītāju uz

vienu vienīgo simbolu. Šajā gadījumā neviens no iepriekšējā piemēra operatoriem, izņemot operatoru Str:=@A; un ReadLn, nav pieejami, bet operators WriteLn(Str^), kurš ir izpildīts pēc operatora Str:=@A; , izdos vienu simbolu "v".

Darbā ar ASCIIZ - rindām versijā 7.0 izmanto speciālus standartmoduļus String un WinDos.

2.7.4. Ieraksts.

Tips-ieraksts ietver sevī komponentu rindu, kas saucas par laukiem, kuri var būt dažādu tipu. Pie tipa-ieraksts uzdošanas pēc rezervētā vārda record vajag nosaukt visus tipa-ieraksts laukus ar to tipu norādi caur kolu un nobeigt tipa uzdošanu ar vārdu end. Lauki viens no otra atdalās ar semikolu. Ierakstu lauku skaits var būt jebkāds.

Piemērs.type Complex = record

60

Page 61: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Re : Real; Im : Real end; Data = record Year : Integer; Month : 1. .12; Day : 1. .31 end; Person = record Name : string [20]; Sex : (Male, Female); Age : Integer; Married : Boolean end; PIEBILDE. Ja vairākiem tipa-ieraksta laukiem ir viens un tas pats tips, tad

to vārdus var uzskaitīt caur komatu un pēc tam norādīt vienu kopīgu tipu. Tā, piemērā izskatīto komplekso skaitļu tipu var ievadīt arī citā veidā:

type Complex = record Re, Im : Real end;Pēc tipa-ieraksts ievadīšanas var uzdot mainīgos vai tipizētas konstantes šī

tipa-ieraksti.Pie konstantes vērtības uzdošanas, tās lauks rakstās apaļajās iekavās caur

semikolu. Priekš katra lauka uzdošanas vērtības sākumā norāda lauka vārdu, bet pēc tam caur kolu - tā vērtību.

Tādā veidā, agrāk minētajiem tipiem var uzdot, piemēram, sekojošās konstantes un mainīgos:

var X, Y, Z : record; Dat : Data;const Birthday : Data = (Year: 1971; Month: 12; Day: 9);

Ozols: Person = (Name: 'Ozols'; Sex : Male; Age: 40; Married : True)PIEBILDE. Tipa-ierakstu var uzdot tieši mainīgo un tipizēto konstanšu

aprakstu nodaļās. Piemēram, fragmentsvar x, y, z : record

re, im : real end;

noteic tos pašus kompleksos mainīgos, kuri bija iepriekšējā piemērā.Piekļūšana pie ierakstu laukiem realizējas ar mainīgā (konstantes) vārda

norādi un ar lauka vārda norādi, uzrakstāmu caur komatu, piemēram:

61

Page 62: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Ozols . Age,X . Re,Dat . Day un tā tālāk.Piemērs. Ierakstu lauku izmantošana.X.Re := 1.5;X.Im :=1.7;Y.Re := -X.Re;Y.Im := -X.Im;Ozols.Married := False;Lai katru reizi nevajadzēt izrakstīt ieraksta vārdu pie tās lauku piekļūšanas,

var izmantot ierakstu operatoru WITH. Tā struktūra izskatās sekojoši:with < ieraksta vārds > do < operators >;Šajā gadījumā operatora iekšā var norādīt tikai ieraksta lauku.Piemēram, fragments:

With X dobegin Re := 1.5; Im := 1.7; Y.Re := -Re; Y.Im := -Im;end;

With Ozols do Married := False; ir ekvivalenti iepriekšējā piemēra fragmentam.Tipa-ierakstam var būt varianta daļa, kura mainās pie dažādām realizācijām,

piemēram, ieraksta tipa parametriskajām ģeometrijas figūrām priekš kvadrāta uzdodas mala, priekš trijstūra - divas malas un leņķis starp tām, priekš riņķa - rādiusu utt. Varianta daļa var būt tikai viena un tai ir jāizvietojas ieraksta beigās.

Piemērs.Varianta daļas izmantošana.Type

Figure = (Square, Triangle, Circle);Param = record

X, Y: Real; Case Fig:Figureof {piesaistīšanas punkts } Square : (Side: Real); {figūru parametri}

Triangle : (Side1, Side2, Angle : Real); Circle : (Radius : Real)

end;Var

Mysquare, Mycircle : Param;

62

J, 03.01.-1,
Page: 79
Page 63: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Varianta daļa sākas ar vārdu Case, pēc kura seko izvēles varianta mainīgais (piemērā Fig) ar tipa norādi. Tālāk norāda konstantes, kuru vērtības var pieņemt izvēles varianta mainīgais (piemērā - Square, Triangle, Circle). Pēc katras konstantes caur kolu apaļajās iekavās ieraksta dotā varianta ieraksta lauku ar to tipu norādi. Apaļās iekavas ir nepieciešamas, kaut arī varianta daļas nav dotajā variantā. Seko atzīmēt, ka varianta daļai nav savas operatora iekavas end, kā parastajā konstrukcijā CASE, jo tālāk tiek visu tipu beigu operatora iekavas end.

2.7.5. Kopu mainīgie (tips SET)

Daži aprēķini pamatojas uz kopu jēdziena. TURBO PASCAL valodā par kopu-tipu sauc izejas sakārtoto tipa objektu kopas lielu daudzumu.

Sākotnējais kopas elementu skaits TURBO PASCAL valodā nevar būt lielāks par 256, bet elementu kārtas numuriem (t.i. funkcijas ORD vērtībai) jābūt robežās no 0 līdz 255. Lai TURBO PASCAL valodā uzdotu kopu-tipu, ir jāizmanto rezervētos vārdus SET un OF, un pēc tam norādīt šās kopas elementus, parasti uzskatījuma vai diapazona veidā, piemēram:

TypeAlfa = Set of 'A' .. 'Z';Count = Set of (Plus, Minus, Mult, Divid);Tem = Set of 0 .. 9;Number = Set of '0' .. '9';

Uzdodot kopu-tipu, var uzdot šā kopas-tipa mainīgās un tipizētās konstantes. Lai uzdotu konstantes-kopas nozīmes, tās elementi tiek uzskaitīti ar komatu (var norādīt diapazonus) un tiek ievietoti kvadrātiekavās. Piemēram, augstāk minētiem tipiem var uzdot šādus mainīgas un tipizētās konstantes:

VarCharval:Alfa;Operation:Count;

ConstIndex: Ten = [0, 2, 4, 6, 8];Digit: Number = ['0' .. '9'];

Piebilde. Tāpat kā citiem struktūretiem tipiem, kopu tipu var uzdot tieši, uzdodot mainīgas vai tipizētās konstantes:

VarCharval: Set of 'A' .. 'Z';Operation: Set of (Plus, Minus, Mult, Divid);

ConstIndex: Set of 0 .. 9 = [0, 2, 4, 6, 8];Digit: Set of '0' .. '9' = ['0' .. '9'];

63

Page 64: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Programmā kopai var piešķirt to vai citu nozīmi. Parasti nozīme tiek uzdota ar kopas konstruktora palīdzību. Konstruktors uzdod elementu daudzumu uzskaitot kvadrātiekavās izteiksmes, kuru nozīmi dod šās kopas elementi.

Piemērs. Sekojošas struktūras ir kopas konstruktori:[Plus, Minus][1 .. K mod 12, 15][Chr(0) .. Chr(31), 'A', 'B']

Katrai kopai ir arī t.s. tukšā kopa [ ], kura neietver sevī nekādus elementus.Kopas konstruktoru var lietot tieši kopas operācijās.Kopām tiek definētas sekojošas operācijas;+ - kopu apvienošana;- - kopu starpība;* - kopu šķelšanās;= - divu kopu ekvivalences pārbaudīšana;<> - divu kopu neekvivalences pārbaudīšana;<= - pārbaudīt, vai kreisā kopa ir labās kopas apakškopa; >= - pārbaudīt, vai labā kopa ir kreisās kopas apakškopa;in - pārbaudīt, vai pa kreisi norādītais elements ir kopā, kura

norādīta pa labi.Apvienošanas, starpības vai šķelšanas operāciju rezultāts ir attiecīga kopa,

citas operācijas dod loģiska tipa rezultāti.

Piemērs. Ievadīt simbolu rindu, kas sastāv no latīņu burtiem, cipariem un tukšuzīmēm. Pārbaudīt ievadīto simbolu pareizību.

Program EXAMPLE13;var

Str : string; L : byte; Tru : boolean;begin

writeln('ievadiet rindu ');readln (Str);L := Length(str); {ievadīto simbolu skaits}Tru := L > 0; {true, ja rinda nav tukša }while Tru and (L > 0) do {pārbaudīt no rindas beigām }begin

Tru := str[L] in ['0' .. '9', 'A' .. 'Z', 'a' .. 'z', ' ']; {simbola pareizības pārbaudījums}

Dec (L);end;if Tru then writeln ( 'pareiza rinda') else writeln ( 'nepareiza rinda');

end.

64

Page 65: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

2.7.6. Fails

Faila tips ir viena tipa komponentu secība, kuras atrodas ārējas ierīcē. Komponenti var būt jebkura tipa, izņemot faila tipu un objekta tipu. Komponentu skaits failā nav norādīts. Lai TURBO PASCAL valodā uzdotu failu-tipu, ir jāizmanto rezervētos vārdus FILE un OF, un pēc tam jānorāda šo komponentu tips.

Piemērs.Type

Number = File of Integer; {Veselo skaitļu faila tips}Symb = File of 'A' .. 'Z'; {Lielo latīņu burtu faila tips}

Standarta tips TEXT definē faila tipu, kas ietver sevī simbolus, kuri apvienoti rindās. Jāzina, kā TURBO PASCAL valodā Text-tips un tips File of Char nav ekvivaventi.

Uzdodot faila-tipu, var definēt šā faila-tipa mainīgās:Var

F1, F2: Number; F3: Text;TURBO PASCAL valodā var lietot failu bez tipa, kura definēšanai nav

norādīts komponentu tips. Šajā gadījumā darbs ar failu tiek realizēts fiziskā līmenī atbilstoši datu faila iekšējam formātam. Līdz ar to reālie faila komponenti var būt dažāda tipa.

Piemērs.Type

Untyp = File;Faila tipu var uzdot tieši, uzdodot mainīgos:Var

F1, F2 : file of Integer;Failu mainīgie tiek lietoti specifiski. Ar šā tipa mainīgiem nedrīkst izdarīt

nekādas operācijas (nozīmes piešķiršanu, salīdzinājumu utt.). Tos var izmantot vienīgi tikai operācijām ar failiem (lasīšanai, ierakstīšanai, faila dzēšanai utt.). Bez tam ar faila mainīgo palīdzību var saņemt informāciju par konkrētu failu (tips, parametri, faila vārds utt.). Darbs ar failiem tiks aprakstīts 3.1. pantā.

2.8. Datu tipu savienojamība un pārveidošana

Kad jebkurām operācijām vai operatoriem ir dažādu tipu dati, tad var rasties jautājums par tipu atbilstību. Šajā gadījumā runā par tipu identitāti, par tipu savienojamību un tipu savienojamību piešķiršanai. Kad rada problēmas ar datu tipu atbilstību, tad var izdarīt vienu vai otru tipu pārveidošanu.

65

Page 66: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

2.8.1. Tipu identitāte

Tipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā.

Divi tipi T1 un T2 ir identiski šādos gadījumos:¨ T1 un T2 - viens un tas pats tipa identifikators (piemēram, Integer, Real

utt.);¨ viens tips tiek norādīts kā ekvivalents citam tipam.Piemērs.Type

T1 = Boolean;T2 = T1;T3 = Boolean;

Visi tipi T1, T2, T3 un Boolean ir identiskie tipi.Type

M1 = array [1 .. 5] of Integer;M2 = array [1 .. 5] of Integer;

VarV1, V2: array [1 .. 5] of Integer;

Šeit tipi M1, M2 nav identiskie tipi, bet V1 un V2 ir identisko tipu mainīgie.

2.8.2. Tipu savienojamība

Tipu savienojamība ir nepieciešama izteiksmēs (tajā skaitā attieksmes operācijās).

¨ Divi tipi T1 un T2 ir savienojami šādos gadījumos: ¨ T1 un T2 - viens un tas pats tips vai tie ir identiski;¨ T1 un T2 - reālie tipi;¨ T1 un T2 - veselie tipi;¨ T1 vai T2 ir reālais tips, bet T2 vai T1 ir veselais tips;¨ viens tips ir otra tipa tips-diapazons;¨ abi tipi ir kāda viena tipa tipi-diapazoni;¨ abi tipi ir kopu-tipi ar savienojamu bāzu tipiem;¨ viens tips ir rinda, bet otrs ir rinda vai simbols;¨ viens tips ir Pointer, bet otrs ir jebkurš rādītāja tips;¨ viens tips ir PChar, bet otrs ir simbolu masīvs, kas beidzas ar simbolu,

kura kods ir 0 (tikai, ja ir kompilatora atslēga {$X+});¨ abi tipi ir rādītāji, kas ir iegūti ar adrešu operācijas @ palīdzību,

piemērojot to identisku tipu lielumiem (tikai, ja ir kompilatora atslēga {$T+});

66

Page 67: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

¨ abi tipi ir procedūru tipi ar identisku tipu rezultātiem (funkcijai-tipam), ar identisku parametru skaitu un ar šo parametru pāru tipu identitāti.

2.8.3. Savienojamība piešķiršanai

Šī savienojamība ir nepieciešama tad, kad jebkuras izteiksmes nozīme tiek piešķirta mainīgam, tipizētai konstantei, funkcijai. Ja tipa T2 objekta nozīme tiek piešķirta tipa T1 objektam, tad tas ir iespējams šādos gadījumos:

¨ T1 un T2 ir identiskie tipi, izņemot failu tipus vai strukturētus tipus, kuriem ir failu tipu komponenti jebkurā strukturēšanas līmenī;

¨ T1 un T2 ir savienojamie sakārtotie tipi un tipa T2 nozīme atrodas tipa T1 objekta iespējamo vērtību robežās;

¨ T1 un T2 ir reālie tipi un tipa T2 nozīme atrodas tipa T1 objekta iespējamo vērtību robežās;

¨ T1 ir reālais tips, bet T2 ir veselais tips;¨ T1 un T2 ir rindas;¨ T1 ir rinda, bet T2 ir simbols;¨ T1 un T2 ir savienojamie kopas-tipi un visas tipa T2 komponentu

nozīmes atrodas kopā T1;¨ T1 un T2 ir savienojamie rādītāji;¨ T1 ir PChar tips, bet T2 ir rindas konstante (tikai, ja ir kompilatora

atslēga {$X+});¨ T1 un T2 ir savienojamie procedūras tipi;¨ T1 ir procedūras tips, bet T2 ir procedūra vai funkcija ar identisku tipa

rezultātu, parametru skaitu un ar šo parametru pāru tipu identitāti;¨ T1 un T2 ir objektu tipi un T2 ir T1 pēcnācējs;¨ T1 un T2 ir objektu tipu rādītāji. T2 norāda uz tā tipa pēcnācēju, uz

kuru norāda T1.

2.8.4. Tipu pārveidošana

Dažos gadījumos ir nepieciešams pārveidot viena tipa mainīgo par cita tipa mainīgo. TURBO PASCAL valodā tāda pārveidošana tiek realizēta samērā vienkārši, ja abu tipu mainīgajiem ir tāds pats izmērs. Lai pārveidotu viena tipa mainīgo par cita tipa mainīgo, ir nepieciešami norādīt tipa identifikatoru un pēc tam apaļajās iekavās norādīt sākotnējā tipa mainīgo. Ja jaunais tips ir strukturētais tips, tad var nepieciešamības gadījumā izvēlēties komponentu saskaņā ar vispārējiem noteikumiem.

Piemērs.

67

Page 68: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

TypeByteRec = record

Lo, Hi: byte; end;

WordRec = record Low, High: word;

end;PtrRec = record

Ofs, Seg: word; end;

BytePtr = ^Byte;var

B : byte;W : word;L : longint;P : Pointer;

beginW := $1234;

{Vērtības piešķiršana mainīgajam W} B := Byterec(W).Lo;

{Mainīgā tipa Word pārveidošana uz divu baitu ierakstu un mazākā baitu izdalīšana}

Byterec(W).Hi := 0;{Mainīgā tipa Word pārveidošana uz divu baitu ierakstu un vērtības 0 ierakstīšana ielākajā baitā}

L := $01234567; {Vērtības piešķiršana mainīgam L}

W := Wordrec(L).Low; {Mainīgā tipa Longint pārveidošana uz divu vārdu ierakstu un mazākā

vārda izdalīšana} B := Byterec(Wordrec(L).Low).Hi; {Mainīga tipa Longint pārveidošana uz divu vārdu ierakstu, mazākā

vārda izdalīšana, mazākā vārda pārveidošana uz divu baitu ierakstu un vecākā baita izdalīšana}

B := Byteptr(L);{Mainīgatipa Longint pārveidošana rādītājā, parametra vērtības iegūšana, uz

kuru norāda rādītājs}P := Ptr ($40,$49);

{Vērtības piešķiršana rādītājam P ar standartfunkcijas Ptr palīdzību}W := PtrRec(P).Seg;

{Rādītāja pārveidošana uz divu vārdu ierakstu un otrā vārda (faktiski segmenta adreses) izdalīšana}

68

Page 69: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Inc (PtrRec(P).Ofs, 4);{Rādītāja pārveidošana uz divu vārdu ierakstu, pirmo vārda (faktiski

adreses nobīdes) izdalīšana , pirmā vārda vērtības palielināšana uz 4 ar standartprocedūras Inc palīdzību}

end.Tāda pārveidošana ir iespējama ne tikai tad, kad sākotnējam un galīgajam

tipam ir vienāds izmērs. Tas ir iespējams arī tad, kad divi sakārtoti tipi jāpārveido viens otrā, neatkarīgi no to izmēra, un arī tad, kad jāpārveido bez tipa parametrs.

2.9. Procedūras un funkcijas

TURBO PASCAL valodā ir divi apakšprogrammu veidi - procedūras un funkcijas.

Katras apakšprogrammas struktūra ir analoģiska visas programmas struktūrai. Apakšprogramma jāapraksta līdz tam, kad tā tiks lietota programmā vai citā apakšprogrammā. Visus parametrus, kurus izmanto apakšprogramma, var sadalīt divās kategorijās: lokālie parametri, kuriem jābūt aprakstītiem pašā apakšprogrammā un kuri ir pieejami tikai pašai apakšprogrammai, un globālie parametri, kuri tiek aprakstīti pamatprogrammā un ir pieejami gan programmai, gan visām programmas apakšprogrammām. Informācijas apmaiņa starp pamatprogrammu un apakšprogrammu var tikt realizēta tikai ar globālo parametru palīdzību.

Apakšprogramma var izmantot globālos parametrus divos veidos: tieši pievēršoties globālajam parametram vai lietojot formālo parametru mehānismu. Apakšprogrammā var lietot jebkurus globālos parametrus, izņemot tos parametrus, kuriem ir vienādi vārdi ar lokāliem parametriem.

2.9.1. Procedūra

Apakšprogramma-procedūra ir paredzēta kādu pabeigtu darbību secības izpildīšanai. Jebkura procedūra sākas ar virsrakstu. Atšķirībā no pamatprogrammas procedūras virsrakstam jābūt obligāti. Procedūras virsraksts sastāv no rezervētā vārda procedure, aiz kura seko procedūras vārda identifikators un tālāk formālo parametru saraksts apaļajās iekavās:

Procedure <procedūras vārds> (<formālo parametru saraksts>);Aiz virsraksta var sekot tās pašas nodaļas kā pamatprogrammā. Pretēji

pamatprogrammai procedūras beigās liek ne punktu, bet semikolu.Piemērs. N veselo skaitļu ievada procedūra.Pieņemsim, ka pamatprogrammā tiek definēts tips:Type tArr = array [1 .. 100] of Integer;Procedūrai var būt šāds veids:

69

Page 70: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Procedure InpInt (var Mas: tArr; N: Integer); {Procedūras virsraksts ar formālo parametru sarakstu, pārbaudei N <= 100

jābūt pamatprogrammā} var i: integer;{lokālais parametrs, t.i. cikla parametrs}

beginWriteln ( 'Ievadiet ', N, ' veselos skaitļus ');for i := 1 to N do

Read( Mas[i]);end;Lai izsauktu procedūru no pamatprogrammas vai no kādas citas

apakšprogrammas, jāuzraksta operators, kurš sastāv no procedūras vārda un no faktisko parametru saraksta. Faktiskajiem parametriem jāsakrīt pēc skaita un pēc tipa ar formālajiem parametriem. Piemēram,

InpInt (M, K); tas nozīme, ka tiek izsaukta procedūra InpInt K veselo skaitļu ievadei uz masīvu M. Dabiski, ka šajā gadījumā parametram K ir veselais tips, bet parametram M ir tipa tArr masīvs.

2.9.2. Funkcija

Apakšprogramma-funkcija ir paredzēta kāda parametra vērtības aprēķināšanai. Šai apakšprogrammai ir divas atšķirības no procedūras.

Pirmkārt, funkcijas virsraksts sastāv no rezervēta vārda funkction, aiz kura seko funkcijas vārda identifikators, tālāk formālo parametru saraksts apaļajās iekavās un pēc semikola tiek uzrakstīts funkcijas tips, t.i. atdošanas parametra tips. Funkcija var atdot sekojošu tipu parametru vai rezultātu: jebkura sakārtota tipa rezultātu, jebkura reāla tipa rezultātu, standarta tipa string rezultātu, jebkura rādītāja parametru, tājā skaitā tipa PChar parametru.

Otrkārt, funkcijas ķermenī kaut vienu reizi funkcijas vārdam ir jāpiešķir vērtība.

Piemērs. Skaitļa N faktoriāla aprēķināšanas funkcija.Function Factorial ( N : byte ) : LongInt;var

Fact : LongInt;i : byte;

beginFact := N;for i := N - 1 downto 2 do

Fact := Fact * i;Factorial := Fact;

end;

70

Page 71: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Ja funkcijas vārds tās aprakstā tiek lietots nevis piešķiršanas operatora kreisajā pusē, tad tas nozīme, ka funkcija izsauc sevi rekursīvi.

Lai izsauktu funkciju no pamatprogrammas vai no kādas citas apakšprogrammas, funkcijas vārdu ar faktisko parametru sarakstu jāuzrāda izteiksmē, kurā jālieto funkcijas vērtība. Faktiskajiem parametriem jāsakrīt pēc skaita un pēc tipa ar formālajiem parametriem. Piemēram, Part := Sqr(T) / Faktorial (i);

Šajā operatorā:Sqr (T) - standartfunkcijas izsaukums, lai kāpinātu kvadrātā faktisko

parametru T;Faktorial (i) - funkcijas izsaukums, kura aprēķina faktoriālu ar faktisko

parametru i, .

2.9.3. Formālie un faktiskie parametri

Apakšprogrammas formālie parametri norāda, ar kuriem parametriem jāpieversas šā apakšprogrammai (parametru skaits, to secība, tipi). Šie parametri tiek norādīti apakšprogrammas virsrakstā formālo parametru saraksta veidā, kurš ir sadalīts pa grupām, kas ir atdalītas ar semikoliem. Formālo parametru grupā tiek ietverti vienas kategorijas vientipīgi parametri.

Visus formālos parametrus var sadalīt četrās kategorijās:¨ parametri-nozīmes(šos parametrus apakšprogramma pamatprogrammā

nemaina );¨ parametri-mainīgie (šos parametrus apakšprogramma pamatprogrammā

var izmainīt);¨ parametri-konstantes (šos parametrus var lietot tikai 7.0 versijā);¨ parametri-procedūras un parametri-funkcijas (t.i. procedūras tipa

parametri).Katram formālajam parametram jānorāda vārds un parasti parametra tips,

bet parametra-konstantes vai parametra-mainīgā gadījumā jānorāda parametra kategorija. Parametru vārdi var būt jebkuri, tājā skaitā tie var sakrist ar programmas objektu vārdiem. Tikai jāatceras, ka sājā gadījumā pamatprogrammas parametrs ar tādu vārdu kļūt nepieejams apakšprogrammas tiešai izmantošanai. Formālā parametra tips var būt praktiski jebkurš, bet apakšprogrammas virsrakstā nevar norādīt jaunu tipu. Piemēram, nedrīkst rakstīt

Function Max (A: array [1 .. 100] of Real) : Real;Lai pareizi uzrakstītu šo virsrakstu, tips-masīvs jāapraksta

pamatprogrammā, pēc tam tas jāizmanto virsrakstā:Type tArr = array [1 .. 100] of Real;Function Max (A : tArr) : Real;

71

Page 72: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Pievēršoties apakšprogrammai, formālie parametri tiek apmainīti ar izsaukšanas programmas vai apakšprogrammas attiecīgajiem faktiskajiem parametriem.

2.9.3.1. Parametri-nozīmes

Pamatprogramma nodod parametrus-nozīmes caur steku tos kopiju veidā apakšprogrammai un, tātad, apakšprogramma programmas pašu parametru nevar izmainīt.

Parametrs-nozīme tiek norādīts apakšprogrammas virsrakstā vārds un pēc semikola tips. Parametra-nozīmes tips var būt jebkurš, izņemot failu tips.

Ja ir daži viena tipa parametri-nozīmes, tad tos var apvienot vienā grupā, pārskaitot tos vārdus caur komatu, pēc tam jānorāda kopīgs tips. Kā jau iepriekš minēts, atsevišķas parametru grupas tiek atdalītas ar semikoliem.

Piemērs.Procedure Inp (Max, Min : Real ; N : Word);Function Mult (X, Y : Integer) : Real ;Pie apakšprogrammas izsaukuma par faktisku parametru parametra-nozīmes

vietā var būt jebkura izteiksme, kas ir savienojama tipa piešķiršanai. Šājā izteiksmē nevar būt faila komponenta. Piemēram,

Inp (Abs(Z), -Abs(T), 2*K);M := Mult (X + Y, X - Y);MA := Max (B, 5);Piemērs. Maksimālā elementa masīvā aprēķināšanas funkcija.Pieņemsim, ka pamatprogrammā tiek definēts tips-masīvs, šo tipa masīvs un

veselo tipa mainīgais.Type

tArr = array [1 .. 100] of Integer;var

Massiv : tArr;Maxim : Integer;

Šājā gadījumā funkcijai var būt šāds veids:Function Max (Mas : tArr; N : Byte) : Integer;var

Ma : Integer;i : byte;

beginMa := Mas [ 1 ];for i := 2 to N do if Ma < Mas [ i ] then

Ma := Mas [ i ];Max := Ma

end;

72

Page 73: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Tagad, piemēram, lai definētu maksimālo skaitli no masīva Massiv pirmajiem pieciem skaitļiem un lai rakstītu tos uz mainīgo Maxim, var uzrakstīt operators:

Maxim := Max (Massiv, 5); Jāatceras, ka apakšprogramma var strādāt tikai ar tipa tArr masīviem. Lai

strādātu ar cita tipa masīviem, jāveido citu analoģisku programmu.

2.9.3.2. Parametri-mainīgie

Parametru-mainīgo adreses tiek pārraidīti uz apakšprogrammu caur steku kārtībā, kura ir aprakstīti apakšprogrammas virsrakstā. Tādēļ apakšprogrammai ir pieeja pie šiem parametriem un apakšprogramma var tos mainīt.

Parametrs-mainīgais tiek norādīti apakšprogrammas virsrakstā tā, kā parametrs-nozīme, tikai pirms parametra vārda jāraksta rezervēto vārdu var. Vārda var darbība izplatās līdz tuvākam semikolam, t.i. vienas grupas robežās.

Piemērs.procedure MaxMin(A: tArr; var Max,Min: Real;

N:Word);Šeit Max, Min ir parametri-mainigie, A un N ir paramertri-nozīmes. Parametrs-mainigais var būt jebkura tipa, ieskaitot faila tipu.Kad izsauc apakšprogrammu, parametru-mainīgo vietā, kā faktisko

parametru izmanto identiska tipa mainīgos. Ja formālais parametrs ir tipa:type tArr = array[1..100] of Integer;

tad un faktiskam parametram jābūt mainigam vai tipizētai konstantei tipa tArr.Piemērs. Maksimālā elementa masīvā aprēķināšanas funkcija.Modificēsim apakšprogrammu piemēra p. 2.9.3.1, izmantojot parametru-

mainīgo pirma parametra vietā:function Max( var Mas: tArr; N: Byte ): Integer;var Ma: Integer; i : Byte;begin Ma := Mas[ 1 ]; for i := 2 to N do if Ma < Mas[ i ] then Ma := Mas[ i ]; Max := Maend;

Šis variants ir labāks par iepriekšējo ar to, ka šajā gadījuma stekā neveido izejas masīva kopiju, kas palielina ātrdarbību un taupa atmiņu. Bet šajā gadījuma ir iespējama nevēlama parametra izmaiņa ( tāds parametra pārraides veids ir pieļaujams tikai nelielas apakšprogrammas, ka šajā piemēra, kad programmētājs

73

Page 74: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

spēj izkontrolēt nesankcionētas parametra izmaiņas). Bet trūkums, saistīts ar to, kā programma var strādāt tikai ar viena tipa masīvu, paliek.

2.9.3.3. Parametri-konstantes

Bieži ir nepieciešams apakšprogrammā nosūtīt kādu mainigo, bet mainīt šo mainigo apakšprogramma nedrīkst. Šājā gadījuma nevēlams pārraidīt šo parametru ka parametri-mainīgo. Var viņu nosūtīt ka parametru-nozīmi, bet ja šim mainigajam ir liels izmērs (masīvs, ieraksts u.t.t), tad tāda parametra kopija aizņems lielu steka daļu un pat var viņu pārpildīt. Tas ari noved pie programmas ātrdarbības samazināšanas. Tādā gadījuma labāk nosūtīt parametru-konstanti. Šājā gadījuma apakšprogramma pārraidās tikai mainiga adrese, bet šis mainigais tiek aizsargāts no izmainīšanas. Izmantot parametru-konstanti drīkst tikai Turbo-Pascal 7.0 .

Parametru-konstanti norāda apakšprogrammas virsraksta līdzīgi ka parametri-nozīmi, bet pirms parametra nosaukuma pieraksta rezervēto vardu const. Vārda const darbība izplatās līdz tuvākam semikolam, t.i. vienas grupas robežās.

Piemers.function NewString( const S : string ) : string;Parametrs-konstanta var būt iebkura tipa, izņemot faila tipu.Apakšprogrammā, ka faktisko parametru, parametra-konstantes vieta var

izmantot jebkuru izteiksmi, kuras tips ir savienojams ar parametra-kostantes tipu. Izteiksmēs nedrīkst izmantot faila komponenti.

Parametru-konstanti nevar pārraidīt cita apakšprogramma ka faktisko parametru.

Piemērs. Maksimālā elementa masīvā aprēķināšanas funkcija.Modificēsim apakšprogrammu piemēra p. 2.9.3.1, izmantojot parametru-

konstanti pirma parametra vietā:function Max ( const Mas : tArr; N : Byte ) : Integer;var Ma : Integer; i : Byte;begin Ma := Mas[ 1 ]; for i := 2 to N do if Ma < Mas[ i ] then Ma := Mas[ i ]; Max := Ma;end;2.9.3.4. Parametri bez tipa.

74

Page 75: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Turbo Paskalā var izmantot parametrus-mainigos un parametrus-konstantes bez tipa noradīšanas. Šajā gadījuma faktiskais parametrs var būt jebkura tipa, bet par parametru pareizo izmatošanu atbild pats programmists.Piemers.

function Equal ( var Param1, Param2; Len : Word ) : Boolean;Šeit Param1, Param2 - ir parametri-mainīgie bez tipa ( viņu vietā var

izmantot, piemēram, jebkurus mainīgos vienkārša tipa, tipa - masīvs, tipa - ieraksts u.t.t. ); Len - parametrs-nozīme.

Vajag iegaumēt, ka apakšprogrammā parametriem bez tipa nav tipa un pirms izmantošanas viņu vajag pārveidot kāda konkrēta tipa, izmantojot attiecīga tipa identifikatoru, ka tas paradīts ???-9.4-???. Pie tam rezultāts var būt jebkura izmēra.

Piemers. Maksimālā elementa masīvā aprēķināšanas funkcija.Modificēsim apakšprogrammu piemēra p. 2.9.3.1, izmantojot parametru-

maīnigo bez tipa pirma parametra vietā:function Max ( var Mas; N : Byte ) : Integer;type tArray = array[ 1..Maxint ] of Integer; { maksimāla izmēra masīva tips }var Ma : Integer; i : Byte;begin Ma := tArray( Mas ) [ 1 ]; for i := 2 to N do if Ma < tArray( Mas ) [ i ] then Ma := tArray( Mas ) [ i ]; Max := Ma;end;

Šajā gadījuma ka pirmo parametru var izmantot jebkuru masīvu ( un ne tikai masīvu ), un skara ar to apakšprogramma kļūtā daudz universālāka. Bet tomēr šeit ir nepieciešams kā otru parametru pārraidīt faktisko informācijas izmēru, kas nav ļoti ērts.

2.9.3.5. Masīvi un virknes atklāta tipa.

Versijā 7.0 kā parametrus-mainigos var izmantot masīvus un virknes atklāta tipa, kuriem ne uzdod izmērus. Šajā gadījumā kā faktisko parametru var izmantot masīvu vai virkni jebkura izmēra, taču masīvam jāsastāv no tiem pašiem komponentiem no ka sastāv atklāta masīva komponentes. Tādi parametri ir nepieciešami, lai apakšprogramma varētu apstrādāt masīvus un virknes jebkura izmēra. Masīva faktisko izmēru var noteikt ar funkcijas High palīdzību . Atklātos

75

Page 76: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

masīvus uzdod tāpat ka vienkāršos masīvus, bet tikai bez indeksa tipa noradīšanas. Vajag iegaumēt ka atklāta masīva elementu indeksācija vienmēr sākas ar nulli, bet maksimālais elementa indekss ir vienāds ar funkcijas High nozīmi.

Piemers. Maksimālā elementa masīvā aprēķināšanas funkcija.Modificēsim apakšprogrammu piemēra p. 2.9.3.1, izmantojot atklāta tipa

masīvu pirma parametra vietā:function Max ( var Mas : array of Integer ) : Integer;var Ma : Integer; i : Byte;begin Ma := Mas[ 0 ]; for i := 1 to High( Mas ) do { cikls līdz vislielākajam indeksam } if Ma < Mas[ i ] then Ma := Mas[ i ]; Max := Ma;end;Šajā piemērā apakšprogrammā pārraida tikai vienu parametru, bet viņa var

strādāt ar jebkuru veselo skaitļu viendimensionālo masīvu. Bet vajag iegaumēt, ka apakšprogrammas darba laika stekā izveidojas atklāta masīva kopija, kas var to pārpildīt.

Viens no atklāta masīva paveidiem ir atklāta virkne, kuru var uzdot izmantojot standarta tipu OpenString, vai ar tipa string palīdzību izmantojot kompilatora atslēgu {$P+}.

Piemers.Proceduras, kura aizpilda virkni ar jebkādu simbolu, virsraksts:procedure FillChar (var Str: OpenString; Ch : Char );vai{$P+}procedure FillChar ( var Str : String; Ch : Char );

2.9.3.6. Parametri-procedūras un parametri-funkcijas.

Pārraidāmais parametrs var būt arī parametrs-procedūra vai parametrs-funkcija, t.i. parametrs procedūras tipa. Faktiski šis parametrs ir paramets-nozīme, tāpēc ka pieraksta bez rezervēta vārda var.

Kā faktisko parametru šajā gadījuma izmanto attiecīgu procedūru vai funkciju, kurai ir atbilstošs, vajadzīga tipa, parametru daudzums.

Uz parametriem-proceduram un parametriem-funkcijam darbojas tie paši likumi, kādi darbojas uz citiem mainīgiem procedūras tipa: apakšprogrammas

76

Page 77: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

jākompile ar atslēgu {F+} vai jābūt direktīvai far, nevar būt standarta procedūras, nevar būt aprakstīta citas apakšprogrammas iekšiene, nevar izmantot direktīvas inline vai interrupt.

Piemērs. Programma, kura drukā divu veselo skaitļu saskaitīšanas un reizināšanas tabulas, noradīta diapazona.

program EXAMPLE15;type Func = function ( X, Y : Integer ) : Integer;{$F+}function Add ( X, Y : Integer ) : Integer;begin Add := X + Y;end;function Multiply ( X, Y : Integer ) : Integer;begin Multiply := X + Y;end;{$F-}

procedure PrintTable (A,B: Integer; Operation:Func); { procedura kura drukā tabulu }var i, j : Integer;begin for i := 1 to A do begin for j := 1 to B do Write( Operation ( i, j ) : 5 ); WriteLn; end; WriteLn;end; { pamatprogrammas sakums }begin PrintTable ( 10, 10, Add ); PrintTable ( 10, 10, Multiply );end.2.9.4. Procedura EXIT.

77

Page 78: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Ka norādījām agrāk, operatoru GOTO nedrīkst izmantot priekš apakšprogrammas patraukšanas. Turbo Paskalā šim nolūkam izmanto procedūru Exit.

Piemers. Funkcija kura atrod pirmo negatīvo skaitli masīvā.function Minus ( var Massiv; N : Integer ) : Real; { Massiv - parametrs bez tipa }type T = array [ 1..1000 ] of real;var i : Integer;begin Minus := 0; for i := 1 to N do if T ( Massiv ) [ i ] < 0 then begin Minus := T ( Massiv ) [ i ]; Exit; end;end;

2.9.5. Rekursīvās procedūras un funkcijas.

Valoda Pascal pieļauj, lai apakšprogramma izsauktu pati sevi ( rekursīvais izsaukums ). Ša iespēja ir saistīta ar to, ka katro reizi izsaucot apakšprogrammu parametri, kurus viņa izmanto, saglabājas stekā, pie tam iepriekšēja izsauciena parametri arī saglabājas.

Dažos gadījumos ( parasti rekursīvos algoritmos ) apakšprogrammas rekursīvais noformējums var būt daudz īsāks un efektīvāks, bet nevar aizmirs par steka pārpildīšanas draudiem.

Piemers. Funkcija, kura aprēķina skaitļa N faktoriālu izmantojot rekursīvo algoritmu.

function Factorial ( N : Byte ) : Longint;begin if N in [ 0..1 ] then Factorial := 1 else Factorial := N * Factorial ( N - 1 );end;

2.10. Ievada-izvada organizēšana.

Valodā Pascal informācijas ievadu-izvadu realizē izmantojot failu mainigos.

78

Page 79: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Pirms ievada-izvada realizēšanas, failu mainīgo vajag sasaistīt ar konkrēto ārējo failu ar procedūras Assign palīdzību. Šis fails var būt jebkurš fails uz magnēta diska vai lentes, un tas arī var būt kāda datorkompleksa ierīce ( tastatūra, displeja ekrāns, druka utt. ). Pēc tam failu vajag atvērt priekš lasīšanas un/vai rakstīšanas. Tagad var realizēt ievadu/izvadu.

Turbo Pascalā ir 3 failu kategorijas: tekstu (tips Text), tipizēti (file of <tips>) un faili bez tipa (file) Darbs ar šiem failu kategorijām mazliet atšķīrās viena no otras.

Parasti visus failus uzskata par secīgas piekļūšanas failiem. Bet priekš tipizētiem failiem un failiem bez tipa, ar procedūras Seek palīdzību, var uzstādīt patvaļīgas piekļūšanas režīmu. Pie tam komponentu numerācija sākas no nulles.

Kad darbs ar failu ir beigts, viņu vajag aiztaisīt izmantojot procedūru Close. Šim nosacījumam obligāti jāizpildās kad failā tiek ierakstīta kāda informācija.

Kad strādā ar failiem, tiek automātiski pārbaudītas ievada-izvada kļūdas. Ja kļūdu pārbaude ir ieslēgta (pec noklusējuma vai izmantojot kompilatora atslēgu {$I+}), tad kļūdas gadījuma programmas izpilde tiek automatiski pārtraukta, bet ja kļūdu pārbaude ir atslēgta (ar atslēgas {$I-} palīdzību), tad kļūdas gadījuma programma turpina izpildīties un ievada-izvada rezultātu var pārbaudīt izmantojot funkciju IOresult.

2.10.1 Standarta procedūras un funkcijas priekš visiem failiem

Šajā nodaļā tiks īsi aprakstīti procedūras un funkcijas, kuras ir izmantojamas priekš visiem failiem. Visās procedūras un funkcijās F ir failu mainigais, kurš ir saistīts ar konkrēto fizisko failu ar funkcijas Assign palīdzību.

Procedūras.

Assign ( F, Name ) - saista failu mainigo ar ārējo failu.Saista faila mainigo F ar ārējo failu, kura nosaukums ir Name. Name - mainigais vai konstante tipa string vai PChar. Faila nosaukumam jābūt uzrakstītam saskaņā ar MS-DOS likumiem, var saturēt faila ceļu un nevar būt garāks par 79 simboliem. Ja faila nosaukums ir tukša rinda, tad failu mainigais tiek saistīts ar standarta ievada vai izvada failu (parasti displeja ekrāns vai/un tastatūra).

ChDir ( Path ) - izmaina pašreizējo direktoriju.Uzstāda jaunu pašreizējo direktoriju, ceļš līdz kuram (kurš var saturēt ierīces nosaukumu) atrodas mainigā Path. Parametrs Path pec sava raksturojuma ir līdzīgs parametram Name no procedūras Assign, bet viņā nedrīkst izmantot failu nosaukumus un viņš var būt tikai tipa string.

Close ( F ) - atvērta faila aizvēršana.

79

Page 80: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Aizver ārējo failu, ar kuru ir saistīts faila tipa mainigais F. Un nepieciešamības gadījumā failā tiek ierakstītas visas izdarītas izmaiņas.

Erase ( F ) - ārēja faila nodzēšana.Nodzēš ārējo failu, ar kuru ir saistīts mainigais F.

GetDir ( N, S ) - saņem tekošo uzkrājēja katalogu.Mainīgajā S ( string tipa ) ieraksta tekošais uzkrājēja katalogs. Uzkrājēja numurs tiek noradīts parametrā N. Parametram N ir sekojošas vērtības : 0 - tekošais uzkrājējs, 1 - uzkrājējs A:, 2 - uzkrājējs B: u.t.t.

MkDir ( Path ) - kataloga radīšana.Izveido jaunu katalogu, ceļš līdz kuram ir noradīts parametrā Path. Parametrs Path pēc savam īpašībām ir līdzīgs parametram Name no procedūras Assign, bet viņa nevar iekļaut faila nosaukumu, un viņš var būt tikai tipa string.

Rename ( F, NewName ) - piešķir failam jaunu nosaukumu.Ārējais fails, ar kuru ir saistīts faila tipa mainigais F, dabū jaunu nosaukumu, kurš ir noradīts parametrā NewName. Parametrs NewName pēc savam īpašībām ir līdzīgs parametram Name no procedūras Assign.

Reset ( F [ , Size ] ) - atver eksistējošo failu.Atver eksistējošo failu, ar kuru ir saistīts mainigais F, un tekošas faila komponentes norādi pieskaņo faila sakumam. Neobligāto vesela tipa parametru Size izmanto tikai ar failiem bez tipa. Parametrs Size uzdod pārsūtāma informācijas elementa izmēru baitos. Pēc noklusēšanas šis izmērs ir vienāds ar 128.

Rewrite ( F [ , Size ] ) - atver jaunu failu.Atver jaunu, tukšu failu, un piešķir viņam nosaukumu, kurš bija noradīts procedūrā Assign. Ja fails ar tādu nosaukumu jau eksistē, tad viņš tiek iznicināts. Neobligātam parametram Size ir tāda paša jēga, ka procedūrā Reset.

RmDir ( Parh ) - Nodzēš tukšu katalogu.Nodzēš tukšu katalogu, ceļš līdz kuram ir noradīts parametra Path. Parametrs Path pēc savam īpašībām ir līdzīga ar parametru Path no procedūras MkDir.

Funkcijas.

Eof ( F ) - faila beigas.

80

Page 81: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

Pieņem vērtību True, ja tekošas faila komponentes norāde atrodas aiz pēdējas faila komponentes ( aiz pēdēja simbola, ja fails ir teksta tipa ), un False - citādā gadījumā.

IOResult - pēdējas izvada/ievada operācijas rezultāts.Atgriež skaitli 0, ja izvada/ievada operācija nobeidzās veiksmīgi, un citu skaitli - pretēja gadījumā.

Literatūra

1. J.Lezdiņš. Datora ABC//Datortehnika. – 1993. – Nr. 1-4: - 1994. – Nr. 1-5.

81

Page 82: 1. DATORA STRUKTŚRA · Web viewTipu identitāte ir nepieciešama formāliem un faktiskiem procedūru vai funkciju parametriem izsaukuma laikā. Divi tipi T1 un T2 ir identiski šādos

2. А.Епанешников, В.Епанешников. Программирование в среде Turbo Pascaln 7.0. – М.: «Диалог-МИФИ», 1993. – 288 с.

82