Описание двумерного массива
Операции с индексированными переменными. Массивы одномерные
Массив – это поименованный набор однотипной информации
Массив объединяет элементы одного типа данных. Всему набору данных присваивают общее имя - имя массива. Каждый элемент массива определяется с помощью индекса, определяющего место этого элемента в общем наборе.
Данные в массиве сохраняются, как и в случае использования обычных неиндексированных переменных, только до конца работы программы.
Характеристики массива:
· тип – общий тип всех элементов массива;
· размерность (ранг) – количество индексов массива; одномерный двумерный…..
· диапазон изменения индексов – определяет количество элементов в массиве.
Вектор (одномерный массив) – это массив, в котором элементы нумеруются одним индексом.
Описание массивов
Для одномерного массива:
Var
a: array[1…n] of <тип>;
где a - имя массива;
n - максимальное количество элементов массива;
<тип> - тип элементов массива.
Например:
Var
mas: array [1…10] of real;
Begin
...
Описан массив mas - содержащий 10 элементов вещественного типа.
Каждый элемент массива определяется с помощью индекса, стоящего справа от имени в квадратных скобках.
a [ i ], a [i+2], a [9]
Индекс может быть - переменной, константой, арифметическим выражением целого типа.
Размер массива должен быть задан в явном виде (как в предыдущем фрагменте), или через const.
Например:
Const
n = 100;
Var
mas: array [1…100] of real;
Begin
…
Ввод элементов массива
…
for i:=1 to n do
readln( a[ i ] );
…
Каждое прохождение через цикл соответствует вводу одного элемента массива.
Вывод элементов массива
…
for i:=1 to n do
writeln( a[ i ] );
…
Каждое прохождение через цикл соответствует выводу одного элемента массива.
Обработка одномерных массивов
Рассмотрим типовые задачи обработки одномерных массивов.
Задача.
Дан массив a(n). Найти максимальный элемент массива и определить
его номер.
Таблица идентификаторов
№ | Наименование переменной | Обозначения в программе |
Имя массива | a | |
Размер массива | n | |
Индекс массива | i | |
Максимальный элемент | max | |
Номер максимального элемента | nmax |
Program mas_2;
Var
a: array [1…100] of real;
i,n,nmax: integer;
max: real;
Begin
writeln ('введите размер массива n<=100');
Readln (n);
writeln ('введите элементы массива');
for i:=1 to n do
readln (a[ i ] );
{за максимальный принимается первый элемент массива}
max:=a[1]; nmax:=1;
for i:=1 to n do
If a[i]>max then
Begin
max:=a[i];
nmax:=i;
End;
writeln ('max =', max, ' N=', nmax);
Readln;
End.
max=6 2
3 6 1
Задача.
Задан массив целых чисел. Отсортировать элементы одномерного массива по возрастанию.
Существует много способов сортировки элементов массива
Таблица идентификаторов
№ | Наименование переменной | Обозначения в программе |
Имя массива | a | |
Размер массива | n | |
Индекс массива | i | |
Флажок | flag | |
Дополнительная переменная для обмена местами соседних элементов | p |
program mas_3;
uses
crt;
var
a: array [1…100] of integer;
f, n, i,p : integer;
begin
clrscr;
writeln ('введите размер массива n<=100');
readln (n);
writeln ('введите элементы массива');
for i:=1 to n do
readln (a[i]);
repeat
f:=0;
for i:=1 to n-1 do
if a[ i ]>a[i+1] then
begin
p: =a[ i ];
a[ i ]:=a[i+1];
a[i+1]:=p; f:=1;
end;
until f=0;
for i:=1 to n do writeln (a[ i ]);
readln;
end.
В данном алгоритме используются вложенные циклы.
Внутренний цикл (for…to…do) – позволяет один раз пройтись по массиву, сравнивая соседние элементы. В случае, если предыдущий элемент ( a[ i ] ) окажется больше последующего ( a[i+1] ), элементы меняются местами через дополнительную переменную p.
Внешний цикл(repeat…until) – повторяется до тех пор, пока массив не будет упорядочен.
i=1,10 j=2, n-1
j=1 a[1]= min=1
3 6 2 8 1
1 6 2 8 3
j=2 a[2]=min=2
6 2 8 3
2 6 8 3
Двумерные массивы
Матрицы
Если в массиве хранится таблица значений, то такой массив называют двумерным, а его элементы нумеруются двумя индексами – номером строки и номером столбца, на пересечении которых находится данный элемент.
В памяти компьютера все элементы массива занимают одну непрерывную область. Двумерный массив располагается в памяти по строкам.
Двумерный массив можно представить в виде матрицы.
. .
Описание двумерного массива
Для двумерных массивов:
Var
a :array[1..n ,1..m] of <тип>;
Где a - имя массива;
n, m - количество строк и столбцов в массиве;
<тип> - тип элементов массива.
Количество элементов в массиве - n m.
Например:
Var
mas: array [1…10,1..10] of real;
Begin
…
Описан массив mas - содержащий 100 элементов вещественного типа (10 строк и 10 столбцов).
Размер массива должен быть задан в явном виде (как в предыдущем фрагменте) , или через const.
Например:
Const
n = 5, m=5;
Var
mas: array[1…n,1..m] of real;
Begin
…
Описан массив mas - содержащий 25 элементов целого типа (5 строк и 5 столбцов).
Каждый элемент массива определяется с помощью двух индексов, стоящих справа от имени в квадратных скобках.
a[i, j] - элемент стоящий на пересечении i-ой строки и j-го столбца.
a[i, i] - элементы главной диагонали.
a[i, 2] - элементы второго столбца.
Индекс может быть - переменной, константой, арифметическим выражением целого типа.
Если количество строк равно количеству столбцов, матрица называется квадратной.
Обработка двумерных массивов производится при изменении индексов элементов.
Все элементы главной диагонали удовлетворяют условию:
i=j
(номер строки равен номеру столбца).
Все элементы побочной диагонали удовлетворяют условию:
i+j=n+1
(n - количество строк и столбцов).
Элементы, расположенные над главной диагональю удовлетворяют условию:
i<j
(номер строки строго меньше номера столбца).
Элементы, расположенные под главной диагональю удовлетворяют условию:
i>j
(номер строки строго больше номера столбца).
Дата добавления: 2017-06-02; просмотров: 734;