Давайте представим, что нам необходимо создать картинку в памяти. Если описывать каждую точку координатами (x, y) , то понадобится очень много переменных. Однако задачу как всегда можно упростить. В этом нам помогут массивы! Массив - объединение нескольких однотипных объектов. Массивы объявляются в разделе переменных (var) вот так:
ИМЯ : array [ диапозон ] of ТИП;Диапозон определяет число элементов массива, а тип - тип элементов массива. Например:
A : array [0 .. 50] of real;Как видно в квадратных скобках указывается минимальный и максимальный номер элемента массива. В примере массив А содержит 51 элемент, массив В - 8 элементов, С - 10. К каждому элементу массива осуществляется отдельный доступ по его индексу (он колеблется в диапозоне, например для В это от -3 до 4, для А от 0 до 50). Индекс элемента указывается в квадратных скобках :
B : array [ -3 .. 4] of integer;
С : array [1 .. 10] of byte;
a [0] := 5; - присвоить первому элементу массива А значение 5 a[1] := a[0]; - присвоить второму элементу массива А значение первого b[-3] := b[4]; - присвоить первому элементу массива В значение последнего c[5] := 5; присвоить 5 элементу массива С значение 5Из этого примера видно, что номер элемента массива соответствует индексу при способе задания массива как-то так array [1 .. С элементом массива допустимы любые операции (естественно, если они допустимы для типа). Т.е. вы спокойно обращаетесь с элементом массива как с переменной. Давайте рассмотрим простенькую программку - заполняем массив случайными числами и выводим его на экран.
Program Test;
uses CRT;
const N = 10;
var
A : array [1..N] of integer;
i : integer;
begin
ClrScr;
randomize;
for i := 1 to N do
begin
A[i] := random (256);
writeLn ('A[', i, '] = ', A[i])
end
end.
В качестве верхней границы массива мы везде используем константу, что очень удобно (если на понадобится массив скажем от 1 до 100, то мы просто её поменяем). После очистки экрана мы вызываем функцию randomize - инициализация генератора случайных чисел. После этого мы можем использовать функцию random (X), которая возвращает случайное число в границах [0, X), т.е. больше или равно 0 и меньше Х. Про то, как этот генератор работает, вернее откуда они берутся эти случайные числа, если в компьютере всё построено на чётких и явных командах?
Программа
Сегодня мы поговорим об ужасно (аж страшно стало :) важной вещи: сортировка массива! Сортировка - это упорядочивание элементов массива по какому-то признаку, например по возрастанию, убыванию. Сортировка - это довольно большая тема и сегодня мы лишь слегка коснёмся её. В обозримом будущем несколько выпусков, по этой теме. Так вот мы поговорим об "пузырьковой" сортировке, помните - вся сила в волшебных пузырьках :))) При пузырьковой сортировке упорядоченный массив получается из исходного путём многократного обменом пары рядом стоящих элементов, не отвечающих требуемому порядку, пока такие пары существуют. Наиболее простой метод обмена соседних элементов с неправильным порядком при просмотре всего списка слева на право определяет пузырьковую сортировку: максимальные элементы как бы всплывают (как пузырьки) в конце списка. Например:
B=20,-5,10,8,7, исходный список.
B1=-5,10,8,7,20, первый просмотр. (Поменяли -5 и 20, потом 20 и 10, потом 20 и 8, потом 20 и 7)
B2=-5,8,7,10,20, второй просмотр. (Протащили 10.)
B3=-5,7,8,10,20, третий просмотр. (Протащили 8, остальные элементы встали на свои места.)
цитата iVs 02.11.2002

