Лекция №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;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.