Лекционният курс на Паскал масиви

Досега са се счита за променливи, които имат само една стойност може да съдържа само една стойност на определен тип. Единственото изключение е променливите низови, които представляват набор от тип характер на данните, но в този случай става дума за линията като отделна стойност.

Array ще се нарича подредена последователност от данни от един и същи тип, обединени под едно име. Между другото, това определение се вписва набор от обекти от реалния свят: речник (последователност от думи), рисунка (поредица от изображения) и др Най-лесният начин да си представим масив във вид на таблица, където всяка стойност е в собствената си клетка ... Позицията на клетката в таблицата трябва да се определя еднозначно определени координати (индекс). Най-добре е линейна таблица, в която да се посочи точно елемент от данните е достатъчно да се знае само един номер (индекс). Ние сме с теб, докато не се занимава само с линейни масиви, тъй като по-сложни структури са изградени въз основа на тях.

Описание на вида на линеен масив изглежда така:
тип <Имя типа>= Array [<Диапазон индексов>] От <Тип элементов>;

Променливите за всички видове поръчки, могат да служат като показатели. старт индекс не трябва да надвишава края, когато зададете диапазона. масива може да бъде всеки тип (конвенционални или описано по-горе).

Описва променлива масив и може да бъде директно (без предварително описание тип) в раздел описва променливите:
Var <Переменная-массив>. Array [<Диапазон индексов>] От <Тип элементов>;

Примери описващи масиви:
Var
S, BB. Array [1..40] От Real;
Н. Array [ "А" .. "Z"] От цяло число;
R. Array [-20..20] от дума;
Т. Array [1..40] От Real;

Сега променливи S, BB и T представляват масиви от четиридесет реални числа; Той има спектър на N кодове характер и тип число елементи; R масив може да се съхранява няколко Word 41 тип.

Единственото действие, което може да се получи масив изцяло - задача. За този пример, описанието на следното вписване се оставя след това:
S: = BB;

Въпреки това, можете да зададете само масиви от същия тип. Дори и масива на T S не може да се възлага на масив, въпреки че изглежда, описанията им са едни и същи, те са произведени в различни записи, описващи секция.

Никакви други операции на масиви произвеждат изцяло невъзможно, но с масива елементи могат да работят също толкова добре, както обикновено променлива от съответния тип. Състав на отделен елемент на масива се извършва чрез определяне на името на целия масив в квадратни скоби - индексът на конкретен елемент. Например:
R [10] - елемент масив в индекс R 10.

Тази конструкция с такава структура на данни като масив, позволява използването на един цикъл за пълнене, печат и обработка на съдържанието му.

Ако си спомняте, тъй като тази форма на организация се срещнахме данни, когато учи низови променливи. В действителност, променливи от тип String са много сходни по своите свойства масив тип Char. Разликите са, както следва: низови променливи могат да бъдат напечатани и отпечатани на екрана (с обичайния набор не се предава); низ променлива дължина е ограничен до 255 знака (255 В), като за размера на масива е важна информация обем 64 KB.

Сега да разгледаме няколко начина да се попълват на масива и показване на съдържанието на екрана. По принцип, ние ще използваме цифровите видове компоненти, но тези примери са валидни за други видове (ако позволят на тези действия).

Без значение колко примитивно горния пример, той все пак показва способността да имат директен достъп до всеки елемент масив отделно. Въпреки това, не се възползва от масива на няколко прости променливи не са видими. Така че - по друг начин:

Тази програма се въвежда от клавиатурата на 20 числа, а след това ги отпечатва в обратен ред. Сега се опитайте да напишете една и съща програма, но без използването на масив от структури. Колко пъти ще бъде по-дълго? Между другото, въвеждането на език Паскал параметъра цикъл се дължи до голяма степен на необходимост за обработка на информацията последователности, т.е.. Д. Масивите.

В следната програма запълва масив със стойностите от квадратите на индексите на елемента:

В бъдеще, за образователни цели, ние ще използваме масиви, определени от генератор на случайни числа. В Pascal генерира случайно число Случайни функция. Дробни числа получен, равномерно разположени в интервала от 0 до 1. Изразът че дава случайно число в интервала [-50,50] ще бъде:
TRUNC (Случайна * 101) -50

Ние определяме и разпечатате случаен набор от четиридесет и числа:

С линейни масиви, свързани обработка на множество задачи. Ние ще ги погледнат в практически упражнения.

Двуизмерни и многомерни масиви
Представете си една маса, състояща се от няколко реда. Всеки ред се състои от множество клетки. След това, за да се определи точната позиция на клетката, ние трябва да знаем повече от един номер (както е в случая на една маса линейно), но две: номера на реда и номера колона. Структурата на данни в Pascal за съхраняване на такава таблица е наречена двумерен масив. За да се опише като масив по два начина:
I.
Var A. Array [1..20] От Array [1..30] От цяло число;

II.
Var A. Array [1..20,1..30] От цяло число;

И в двата случая, описан двумерен масив, съответстваща на масата, състояща се от 20 реда и 30 колони. Тези описания са еквивалентни.

За да се илюстрира начина на работа с двумерни масиви реши проблема, "Попитайте и печат 10Х10 масив, състоящ се от цялата случайни числа в интервала [1100] Намерете сбора на елементите, разположени над главния диагонал .."

Когато се брои, като се започне от горния ляв ъгъл на таблицата, ние ще приемем, главния диагонал от горния ляв до долния десен ъгъл на масата. В този случай, се оказва, че елементите, намиращи се по диагонал ще имат един и същ индекс, както и за елементите над главния диагонал номер колона винаги ще бъдат по-големи от номера на реда. Също така се съгласи да определи като първи номер на ред, а след това - номера на колоната.

Програма M5;
Var A. Array [1..10,1..10] От цяло число;
I, К. Байт;
S. цяло число;
започвам
S: = 0;
Защото: = 1 To Do 10
започвам
За K: = 1 To Do 10
започвам
А [I, К]: = TRUNC (Случайна * 100) + 1;
Запис (А [I, К]: 6);
Ако K> I Тогава S: = S + A [I, K]
Край;
Writeln
Край;
Writeln ( "Сума елементи горе сек. RavnaV диагонал", S)
Край.

Ако моделът на данни в дадена задача не може да бъде сведена до един линеен или равнинен маса, може да се използва масиви от всякакъв размер. N-мерен масив се характеризира с индексите на N. Форматът на описанието на типа данни:
тип

<Имя типа>= Array [<диапазон индекса1>,<диапазон индекса2>.
<диапазон индекса N>] От <тип компонент>;

Отделен елемент имена, както следва:
<Имя массива>[<Индекс 1>,<Индекс 2>. <Индекс N>]

Въведение. Обща информация. Структура на програмата.