Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lec05-АТП2011-12.doc
Скачиваний:
1
Добавлен:
11.07.2019
Размер:
61.44 Кб
Скачать
  1. Лекция №5

    Тема:

    Массивы

    ПЛАН

    5 Лекция №5

    5.1 Общие сведения

    5.2 Операции с массивами

    5.3 Поиск максимума/минимума

    5.4 Примеры обработки матриц

    5.5 Передача массивов в качестве параметров

    Время:

    2 ч.

    Литература:

    1. Общие сведения

Массив – последовательность однотипных величин, обозначенная одним именем. В оперативной памяти массив занимает непрерывную область. Все элементы массива располагаются в соседних ячейках памяти.

Основные характеристики массива:

  1. Тип – общий тип элементов массива;

  2. Размерность – количество индексов массива (массивы могут быть одномерными или многомерными (чаще всего двух- или трехмерными));

  3. Диапазон – количество допустимых значений каждого индекса;

Описание массива (в разделах Type, Var) выполняется с помощью конструкции вида:

array[диапазон] of тип элементов; – для одномерных;

array[диапазон1, диапазон2, диапазонN] of тип элементов; – для многомерных;

Примеры

Описание массивов в разделе Var

Var

X :array[1..20] of Real; {Одномерный массив}

Ch:array[-5..40] of Char; {Одномерный массив}

N :array[1..5, 1..10] of Integer; {Двумерный массив}

Описание массивов в разделе Type

Type

Vector = array[0..50] of Integer; {Одномерный массив}

Matrix = array[1..5,1..3] of Byte;{Двумерный массив}

Var

Z :Vector;

M :Matrix;

Массив может быть описан как типизированная константа (константа, которая может изменять свое значение). В этом случае компоненты массива заключаются в отдельные скобки и разделяются запятыми.

Пример

Const

M1:array[1..5. of Byte=(1,4,6,8,0); {Одномерный массив}

M2:array[1..3,1..4] of Byte= {Двумерный массив}

((1,2,3,4),

(5,6,7,8),

(4,2,1,0));

Чтобы обратиться к элементу массива, нужно указать имя массива и один или несколько индексов (в зависимости от размерности массива). Индексы указывают в квадратных скобках.

Пример X[7]:=1.2;

Ch[-3]:=’R’;

N[3,6]:=8;

В качестве индекса массива можно использовать любой порядковый тип.

Пример

Var

Z:Array[False..True] of Real; {Индекс логического типа}

R:Array['a'..'z'] of Byte; {Индекс символьного типа}

M:Array[1..10,'a'..'h'] of Real; {числовой и символьный индексы}

Begin

Z[True]:=8.2;

R['f']:=7;

M[2,'d']:=9;

End.

    1. Операции с массивами

С массивами можно выполнять следующие операции:

  1. Присваивание;

  2. Ввод/вывод данных;

  3. Обработка и преобразование элементов;

  4. Сортировка.

  5. Поиск.

Операция присваивания может выполняться как с отдельными элементами, так и со всем массивом. Например для однотипных массивов X и Y присваивание вида X:=Y эквивалентно циклу For j:=1 to n do X[j]:=Y[j]. Все остальные операции могут применяться только к отдельным элементам массивов.

Как правило, для обработки всего массива используют циклы. Если массив является многомерным, то требуется несколько вложенных циклов (число циклов равно размерности массива).

Пример ввода/вывода и преобразования одномерного массива

Const

N=10;

Var

M:Array[1..N] of Byte;

J:Integer;

BEGIN

{Ввод данных}

For J:=1 to N do ReadLn(M[J]);

{Вывод массива в строку}

For J:=1 to N do Write(M[J]);

WriteLn;

{Преобразование -элементы увеличить в 2 раза}

For J:=1 to N do M[J]:=M[J]*2;

{Вывод массива в столбец}

For J:=1 to N do WriteLn(M[J]);

END.

Пример ввода/вывода с двумерным массивом

Const

M=3;

N=4;

Var

W:Array[1..M,1..N] of Byte;

i,j:Integer;

BEGIN

{Ввод данных в двумерный массив}

For i:=1 to M do {Внешний цикл}

For J:=1 to N do ReadLn(W[i,j]); {Внутренний цикл}

{Вывод на экран в виде матрицы}

For i:=1 to M do {Внешний цикл}

Begin {Внутренний цикл}

For J:=1 to N do Write(W[i,j]:4);{Вывод строки матрицы}

WriteLn; {Переход на новую строку}

End;

END.

Для сортировки (упорядочивания элементов используют прямые методы (сортировка обменом, сортировка выделением) или улучшенные методы (метод Хоара и др.)

Поиск данных в массиве производят либо методом последовательного перебора всех элементов (когда массив не упорядочен) либо бинарным (дихотомическим) методом (если массив упорядочен). Подробнее материал по сортировке и поиску изложен в следующей лекции.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]