Одномерный массив – это именованная последовательность, состоящая из пронумерованных элементов одного типа. Элементы могут быть любого имеющегося в Pascal (за исключение файлового) типа данных. Номер, также называемый индексом, имеет каждый элемент массива. Индекс должен быть порядкового типа. Одномерный массив можно объявить как в качестве переменной:
var <имя переменной>: array[m..n] of <тип элементов>;
так и типа:
type <имя типа> = array[m..n] of <тип элементов>;
Здесь m – номер первого элемента, а n – последнего. Например, если диапазон задан так: [1..10], то это означает, что определен одномерный массив размерностью в 10 элементов, с индексами от 1 до 10.
Для обращения к элементу массива нужно указать его имя и номер: mas[i], тут mas – имя, i – номер. В программе ниже мы объявим массив и произведем простые операции над его элементами.
1
2 3 4 5 6 7 8 9 10 11 12 |
program array_primer;
uses crt; var mas, A: array[1..10] of real; begin clrscr; mas[1]:=32; mas[5]:=13; mas[9]:=43; A[1]:=(mas[9]—mas[1])*mas[5]; write(A[1]:5:2); readkey; end. |
В каком-то смысле с массивами можно работать, как и с обычными переменными, но представьте, например ситуацию, когда необходимо заполнить массив, состоящий из десятков или тысяч элементов. Это будет удобней сделать посредством цикла. Следующая конструкция заполняет массив числами и выводит их на экран.
for i:=1 to n do
begin
mas[i]:=i;
write(mas[i]:3);
end;
Если необходимо, чтобы массив состоял из значений, введенных с клавиатуры, то просто замените присвоение на оператор read. Также бывают ситуации, когда требуется заполнить массив случайными числами. Программа ниже поочередно присваивает каждому элементу случайную величину.
1
2 3 4 5 6 7 8 9 10 11 12 13 14 |
program array_random;
uses crt; var i: integer; mas: array[1..100] of integer; begin clrscr; randomize; for i:=1 to 100 do begin mas[i]:=random(10); write(mas[i]:2); end; readkey; end. |
Широко распространены задачи связанные с разного рода алгоритмами применимыми к массивам. Среди них особенно популярны методы поиска и сортировки элементов. Но каждый из таких алгоритмов требует индивидуального изучения, поэтому ознакомиться с ними вы можете в других статьях:
Алгоритмы сортировки:
Алгоритмы поиска:
К числу менее сложных и в тоже время востребованных относятся методы определения количества положительных и отрицательных, минимального и максимального элементов. Рассмотрим их.
Поиск максимального элемента в массиве:
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
program array_max;
uses crt; type massiv=array[1..10] of word; var i, max: integer; A: massiv; begin clrscr; for i:=1 to 10 do begin write(‘Элемент №’,i:2,‘=’); read(A[i]); {ввод с клавиатуры} end; max:=A[1]; {пусть первый элемент будет максимальным} for i:=1 to 10 do if max<A[i] then max:=A[i]; writeln; write(‘Максимальный элемент = ‘, max); readkey; end. |
Для того чтобы сделать программу для поиска минимального элемента нужно всего лишь поменять знак < в 15 строке на >.
Определение количества положительных элементов:
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
program array_pol;
uses crt; var i, k: integer; mas: array[1..10] of integer; begin clrscr; randomize; {генератор случайных чисел} for i:=1 to 10 do begin mas[i]:=random(40)—20; {от -20 до 20} writeln(‘Элемент №’,i:2,‘=’, mas[i]:3); end; k:=0; {обнуление счетчика} for i:=1 to 10 do if mas[i]>=0 then k:=k+1; writeln; write(k:3, ‘ положительных элементов’); readkey; end. |
Также как и в предыдущей программе, для нахождения отрицательных чисел необходимо просто поменять знак.