Понятие и описание массивов
Массивом называются последовательность однотипных объектов, обозначаемая одним именем.
Массив характеризуется размером и размерностью. Размер массива – это количество элементов в нём. Размерность – это количество индексов в скобках.
Массив состоит из элементов. Чтобы выделить один из элементов массива, надо указать имя массива и номер элемента в нем. Номер элемента называется индексом, индекс указывается в квадратных скобах и может быть числом, переменной, выражением. Имя массива образуется по правилам образования имен переменных.
Пример: А [20], B [5,3].
Если для выделения элемента нужен 1 индекс, массив называется одномерным, два – двумерным и т.д.
Массивы относятся к структурированным типам данных. В программе массив можно описать двумя способами:
1. непосредственно в разделе описаний переменных:
Var
имя_массива: array [1..N] of тип_элементов;
где, N – максимальное возможное количество элементов массива.
Пример:
var
a, b: array [1..10] of real;
d, y: array [1..5,1..5] of integer;
2. объявлением типа – массива (удобно, когда требуется несколько одинаковых массивов).
Пример:
type
mas= array [1..10] of real;
var
c,d:mas; { два массива типа mas}
Элементы массива могут быть любого типа, а индексы могут быть любого порядкового типа (например, типа int, char, …). Но обычно используется тип – диапазон: 1..10, N..M.
Число элементов массива и его границы фиксируются при его описании и не могут быть изменены в процессе выполнения программы. Границы диапазона [N..M} могут быть заданы константами в разделе описания констант.
В ряде задач требуется ввести массив в виде константы, в котором записывается табличные значения. (Например, кривая намагничивания стали или начальное распределение температуры рассматриваемого объекта). Элементы такого массива-константы не могут быть изменены.
Пример:
program PR8;
const
y: array [1..5] of integer=(7,1,5,3,9) ;
var
k: integer;
begin
for k:=1 to 5 do
writeln (y[k]);
end.
Ввод и вывод массивов
Ввод и вывод массивов осуществляется поэлементно. Часто это делают с помощью циклов (обычно используется цикл FOR)
Пример:Ввести с клавиатуры значения элементов одномерного массива вещественного типа состоящего из 10 элементов. Вывести элементы массива на экран.
Решение:
program PR9;
var
A: array[1..10] of integer;
k: integer;
begin
for k:=1 to 10 do
readln (A[k]);
for k:=1 to 10 do
writeln (A[k]);
end.
Двумерные массивы (матрицы) можно вводить по строкам или по столбцам.
Пример:Пусть требуется ввести массив А (3;4):
а а а а
а а а а
а а а а
Решение:
а) ввод и вывод по строкам:
program PR10;
var
a:array [1.. 3, 1.. 4] of integer;
i; j:integer;
begin
for i:=1 то 3
for j:=1 то 4
readln (a[i, j]);
for i:=1 то 3
for j:=1 то 4
writeln (a[i, j]);
end.
б) ввод по столбцам:
begin
for i:=1 то 4
for j:=1 то 3
readln (а[j, i]); {изменен порядок индексов}
Операции с массивами
Операции с массивом производятся только с отдельными элементами массива. С элементами массива можно делать все операции, которые разрешены для базового типа массива. Если массив числовой, то математические, если символьный или строковый, то, соответственно, операции с символьными или строковыми переменными.
Пример:Написать программу вычисления произведения положительных элементов одномерного массива целых чисел.
Решение:
program Pr11;
var
a : array [1..100] of integer;
p, n, i : integer;
begin
p: =1;
writeln ('введите размер массива n<=100');
readln (n);
writeln ('ввод элементов массива');
for i:=1 to n do
begin
writeln(‘ввести a[ ‘, i , ‘]= ‘]);
readln (a[i] );
end;
for i:=1 to n do
if a[i]>0 then p:= p * a[ i ];
writeln ('Произведение =', p);
readln;
end.
Двумерные массивы
Пример:Написать программу вычисления произведения положительных элементов второй строки двумерного массива целых чисел.
Решение:
program Pr12;
var
a:array [1.. 10, 1.. 10] of integer;
p, i, j, n, m: integer;
begin
writeln(‘ Введите n<=10 , m<=10 ’);
readln (n,m);
writeln(‘ Введите элементы массива по строкам ’);
for i:=1 to n do
for j:=1 to m do
readln(a[i, j]);
p:=1;
for j:=1 to m do
if a[2, j]>0 then p:= p * a[2, j];
writeln(‘ Произведение элементов p=’, p);
readln;
end.
Контрольные вопросы
1. Оператор цикла с параметрами. Правила записи.
2. Оператор цикла с предусловием. Правила записи.
3. Оператор цикла с постусловием. Правила записи.
4. Описание одномерного массива.
5. Описание двумерного массива.
6. Ввод и вывод элементов одномерного массива.
7. Ввод и вывод элементов двумерного массива.