Лекция №10. Структурированные типы данных. Одномерные и двумерные массивы
Если работа программы связана с хранением и обработкой большого количества элементов одного типа, то для их представления в программе можно использовать массивы.
Массив (индексированные переменные) – подмножество однотипных переменных, объединенных по какому-либо признаку и имеющих общее имя. Отдельные величины, составляющие массив, называются его элементами.
Элементы массива пронумерованы, и обратиться к каждому из них можно по номеру. Номера элементов массива иначе называются индексами, а сами элементы массива – индексированными переменными. Характеристика массива:
- Тип –общий тип для всех элементов массива;
- Размерность – количество индексов массива;
- Диапазон изменения индекса (индексов) – определяет количество элементов массива.
Массивы чаще всего на практике бывают одномерными и двумерными. Вектор или одномерный массив – это массив, в котором элементы нумеруются одним индексом. Если в массиве хранится таблица значений (матрица), то такой массив называется двумерным, его элементы нумеруются двумя индексами – номером строки и номером столбца. Массивы большей размерности встречаются на практике редко.
В памяти компьютера все элементы массива обязательно занимают одну непрерывную область – массив, отсюда и произошло название. Двумерные массивы располагаются в памяти по строкам: сначала все элементы первой строки, затем второй и т.д.
В качестве индекса элемента массива используется выражение порядкового типа, чаще всего индекс – это переменная типа integer. При обращение к элементу массива индекс указывается в квадратных скобках после имени массива, например: A[5], B[1,2].
Массивы объявляются в разделе описания переменных var.
Тип массив обозначается зарезервированным словом ARRAY,после которого указывается диапазон изменения номеров элементов и, после зарезервированного слова OF, тип элементов массива. Объявление массива задаётся следующим образом:
<имя массива>: ARRAY [границы индексов] OF <тип>.
Например:
Var
a: array[1..100] of integer; ----- 100 элементов – целые числа;
b: array[0..50] of char;---------- 51 элемент – символы;
c: array[-1..20] of real; ----------- 22 элемента – вещественные числа.
Для двумерных массивов:
Var
y: array[1..3,1..4] of integer;----- массив из 12 целых чисел (3 х 4);
x: array[1..5,1..4] of real;----------- массив из 20 вещественных числа.
Например, пусть в памяти компьютера расположена таблица чисел:
1 2 3 4
5 6 7 8
9 10 11 12
Для адресации элементов таблицы требуется два индекса – номер строки и номер столбца. Индекс 1 в данном примере принимает значение от 1 до 3 (3 строки), а индекс 2 может меняться от 1 до 4. Нижняя граница индекса отделяется от верхней двумя точками. Нижняя границане должна превосходитьверхнюю.
При описании массива широко используется предварительное описание типа в разделе описания типов данных. Например:
Type
ИмяТипа = array[НижГранИнд1..ВерхнГранИнд1,
НижГранИнд2..ВерхнГранИнд2] of
ТипЭлементов;
Var
ИмяМассива: ИмяТипа;
Например:
Const
row = 10; col = 15;
Type
matr = array[1..row, 1..col] of integer;
Var
mas: matr;
Для ввода и вывода элементов массива используется цикл for, в котором параметром цикла будет индекс (порядковый номер) элемента массива. Для двумерных массивов применяются вложенные циклы.
Пример 1. В заданном массиве A1, A2, …, A30 найти и вывести на печать сумму и произведение всех элементов массива.
program mas1;
var
i, s, p: integer;
mas1: array [1..20] of integer;
begin
for i:= 1 to 20 do
readln(mas1[i]);
s:= 0;
p:= 1;
for i:= 1 to 20 do
begin
s:= s + mas1[i];
p:= p * mas;
end;
writeln(s, p);
end.
Дата добавления: 2017-11-04; просмотров: 1145;