04.02.2015 Views

"Datormācība. Skaitlisko aprēķinu realizācijas metodes ...

"Datormācība. Skaitlisko aprēķinu realizācijas metodes ...

"Datormācība. Skaitlisko aprēķinu realizācijas metodes ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Datora atmiņā visi masīva elementi aizņem obligāti vienu nepārtrauktu apgabalu. Divdimensiju<br />

masīvi atmiņā tiek izvietoti pa rindām: vispirms visi pirmās rindas elementi,<br />

tad otrās u.t.t. Masīva elementa numurs vispārīgā gadījumā ir kārtas tipa izteiksme.<br />

Visbiežāk indekss ir konstante vai integer tipa mainīgais, retāk – char tipa vai boolean<br />

tipa lielums.<br />

Konkrēts masīva elements tiek aprakstīts aiz masīva nosaukuma kvadrātiekavās norādot<br />

tā indeksu. Piemēram, A[3], B[3,5].<br />

Viena no masīvu priekšrocībām ir tā, ka to indeksi var būt gan mainīgie, gan izteiksmes.<br />

Tas dod iespēju vērsties pie noteiktas masīva elementu virknes. Tā, piemēram<br />

A[i] dod iespēju pārskatīt visus masīva elementus, bet pieraksts A[i*2] – elementus,<br />

kuri atrodas pāra vietās vai A[2*i-1] – nepāra vietās.<br />

Vienkāršākais masīva apraksta veids - mainīgo apraksta daļā var tiek definēts attiecīgs<br />

apzīmējums izmantojot vārdu array.<br />

Viendimensiju masīva gadījumā<br />

var array[apakšējā robeža..augšējā robeža]<br />

Piemēram:<br />

a:array[1..100] of integer;<br />

b:array[0..25] of char;<br />

c:array[-3..4] of boolean;<br />

Divdimensiju gadījumā<br />

{100 vesela tipa skaitļu masīvs}<br />

{26 elementi – simboli}<br />

{8 elementi – loģiskās vērtības}<br />

var array[r1..rn, s1..sm] of <br />

kur, r1 – pirmās rindas kārtas numurs;<br />

rn - pēdējās rindas kārtas numurs;<br />

s1 - pirmā stabiņa kārtas numurs;<br />

sm – pēdējā stabiņa kārtas numurs.<br />

Tātad definējot tabulu 1 3 5 7<br />

2 4 6 8<br />

9 8 7 6<br />

masīva veidā aprakstam jālieto<br />

var tabula:array[1..3,1..4] of integer;<br />

Svarīgi ievērot, ka ne vienmēr visi masīva elementi ir aizpildīti, tas nozīmē, ka reālais<br />

masīva elementu skaits var būt mazāks par definēto, bet nekādā gadījumā nedrīkst<br />

rasties situācija, kad reālais masīva elementu skaits ir lielāks par masīva definīcijā<br />

paredzēto.<br />

Svarīgi ņemt vērā, ka Turbo Pascal-ā ir visai stingrs ierobežojums attiecībā uz operatīvo<br />

atmiņu, kas pieejama mainīgo aprakstam. Tās apjoms ir 64 kbaiti. Tātad izmantojot<br />

definīcijā array[1..105,1..105] of real tiek pārsniegta programmēšanas vidē pieejamā<br />

atmiņa (viens real tipa elements atmiņā aizņem 6 baitus). Šādā situācijā tiek uzrādīta<br />

kļūda Error 22 (structure too large). Operatīvās atmiņas ekonomijai lietderīgi iespēju<br />

robežās izmantot vienbaitīgus tipus byte un shortint.<br />

33

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!