ПредишенСледващото

Array - регулярна структура на данните, обявени от специална езикова конструкция

Array [INDEX диапазони] на TipKomponentov

Най-често се използва за съхраняване на множество стойности на вектори, например:

V. Array [1..3] на Real;

по този начин обявяване структура на три стойности реално тип индексира предварително определен диапазон от числа (V [1], V [2] и V [3]). Ако индексиране компоненти (елементи) на масива е даден числен диапазон, като в този пример, е необходимо да се спазва само две изисквания: първо, границите не трябва да принадлежат към вида LongInt, т.е. тя трябва да "подходящи" тип максимум в Word, втори, произведението от броя на елементите на масива определя от редица индекси, размерът на компонента в байтове, не може да надхвърля 65520 байта (около 64К). Последното изискване е често срещано не само за всички масиви, но и за други структури от данни. По този начин, могат да бъдат описани масиви

Това е много удобно, тъй като ви позволява да не се тревожи за привеждане на индекса на 1..N гама, като, например, трябва да направите, когато се работи с Fortran или някои версии на BASIC.

В общи линии, нищо задължава да декларира индекс диапазона от номера на масив. Като индекс, можете да използвате всякакви изброените видове, както вградени и влезе. Индекси могат да бъдат определени в предишния обхват и ако групата е подходяща за всички тип, трябва вместо това може просто да запишете името на този тип ENUM:

ComplectType = Array [MonthType] на Word;

Алфа. Array [ "А" .. "Z"] овъгляване;

Switch. Array [булева] на байт; <два элемента>

Смятан масиви - едномерна, т.е. тези, в които съставките - скаларна. Право да декларират масиви от масиви:

VectorType = Array [1..3] на Real; <вектор>

MatrixType = Array [1..10] на VectorType; <матрица10x3>

Описание на вида на двумерен масив MatrixType може да се пише по различен начин:

MatrixType = Array [1..10] от Array [1..3] на Real;

MatrixType = Array [1..10, 1..3] на Real;

Последният вариант е най-визуално описание матрица. Броят на измерванията не е формално ограничено, но сумата от размерите на всички компоненти на масива не трябва да надвишава 64 КБ. Всяко измерване е напълно независима от останалите, а вие може да обяви масиви с различни индекси:

М. Array [-10..0, "А" .. "С", булева] на байт;

Array [булева] на байт;

Интересното е, че вида на елемент на масива M зависи от броя на споменатия отпечатък върху тях. Например,

М [0] - тип матрица матрица Array [ "А" .. "С", булева] на байт,

М [0, 'B'] - вектор тип Array [булева] на байт,

М [0, "В", False] - Байт тип стойност.

ArrayBType = Array [булева] на байт;

ArrayCType = Array [ "А" .. "С"] на ArrayBType;

ArrayMType = Array [-10..0] на ArrayCType;

и едва след това ще бъде разрешено от вида на задание

Turbo Pascal ви позволява да пишете индекси не са разделени със запетаи, тъй като това са изолирани:

М [-3, "В", True] еквивалентно М [-3] [Б] [Вярно]

Компонент масив може да бъде не само един масив, но което също е рекорд, както и показалеца, и всякакъв друг вид. Ако R - спектър на записи (запис), достъпът до областта на всеки запис се произвежда след определяне на индекса:

Turbo Pascal има специален режим на компилация избран от ключово $ R. Ако цялата програма или фрагмент от него е бил съставен в режим, при достъп до елементите на масива ще бъдат проверени принадлежност на индекс обяви диапазон, а в случая на редица престъпление програма е прекъсната с грешка 201 (Range проверка за грешка) на. Напротив, не се произвежда във всяка инспекция режим, както и неправилна стойност на индекса ще извлече ", сякаш нищо не се е случило" някаква стойност - но, уви, не принадлежи на този масив. Като цяло, режими на програма за отстраняване на грешки $ R +, и се управлява от $ режим R-. Това леко намалява размера на изпълнимия файл и издръжливостта й.

В две съвместими масиви А и Б само приложим оператор задача:

които копия на елемент стрелка масив Б към масив А.

Всички видове математически операции върху масиви (матрици), трябва да бъдат изпълнени от, или да използват специални библиотеки (например Turbo Цифров Toolbox).

За съвместимост с други версии на Pascal Turbo Pascal позволява използването на композитни знака (и ..) вместо квадратни скоби:

М [0] е еквивалентно на М (. 0).

В допълнение, описания на ключовите думи Array в масиви може да се предшества от запазена дума опаковани (опаковани, компресиран):

X. опаковани Array [1..100] на Real;

В заключение ние отбелязваме една функция Turbo Pascal компилатор. В продължение на много езици за програмиране справедливо правило: работа с елемент на масива отнема повече време, отколкото с скаларна променлива (това е необходимо да се изчисли местоположението на обекта в паметта). Ако индексите при достъп до елементите на определена променлива или израз, това важи и за Turbo Pascal. Но ако индекса се определя от постоянна, а след това се отнасят към него скорост е максимумът, защото компилаторът в този случай, изчисли местоположението на елемента на етапа на съставянето на програмата.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!