Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КОМП. НАУКИ_1сем.doc
Скачиваний:
6
Добавлен:
05.11.2018
Размер:
902.14 Кб
Скачать
    1. Двумерные массивы – матрицы

Описание двумерного массива:

var A : array[1..m, 1..n] of integer;

1

n

1

m

Массив A содержит m строк и n столбцов

В памяти компьютера массив располагается по строкам.

Быстрее меняется младший индекс, это означает, что сначала перебираем элементы строки слева направо, затем переходим на следующую строку и т.д.

Пример. Дана целочисленная матрица mn элементов. Найти скалярное произведение строк, содержащих максимальный и минимальный элементы.

Program Matrix_1;

Const m=3; n=4;

Var A: array[1..m,1..n] of integer;

i,j: byte;

imax, imin: byte;

max, min, S: integer;

begin

{1. Ввод в массив}

for i:=1 to m do {Цикл по строкам матрицы}

for j:=1 to n do {Цикл по элементам строки}

begin write(‘A[‘, i, ‘,’ j, ‘]=’);

readln(A[i,j])

end;

{2. Нахождение максимального и минимального элементов массива}

imax:=1; jmax:=1; {В качестве начального максимального берем A[1,1]}

imin:=1; jmin:=1; {В качестве начального минимального берем A[1,1]}

for i:=1 to m do {Цикл по строкам матрицы}

for j:=1 to n do {Цикл по элементам строки}

begin if A[i,j] > A[imax,jmax]

then begin imax:=i; jmax:=j end; {Запоминаем индексы максимума}

if A[i,j] < A[imin,jmin]

then begin imin:=i; jmin:=j end; {Запоминаем индексы минимума}

end;

{3. Скалярное произведение строк с индексами imax и imin }

S:=0;

for j:=1 to n do

S:=S+A[imax,j]*A[imin,j];

{4. Вывод результата}

writeln(‘Скалярное произвед. строк с индексами ’,imax,‘ и ‘,imin,‘ равно ‘,S:10:3)

end.

    1. Трехмерные массивы

Описание трехмерного массива:

var A : array[1..m,1..n,1..p] of integer;

Например, для ввода значений в трехмерный массив с клавиатуры можно использовать следующий тройной цикл:

for i:=1 to m do {Цикл по плоскостям массива}

for j:=1 to n do {Цикл по строкам выбранной плоскости}

for k:=1 to p do {Цикл по элементам строки}

readln(M[i,j,p])

  1. Сортировки массивов

    1. Понятие сортировки

Сортировка (sorting) определяется в программировании как процесс перестановки объектов некоторого набора данных в определенном порядке (по возрастанию или по убыванию). Точнее этот процесс следовало бы назвать упорядочиванием (ordering), но закрепился именно термин «сортировка».

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

Каждый объект сортируемого набора обычно содержит некоторые полезные данные, а также ключ.

Для ключей устанавливается порядок:

  • по возрастанию ki-1 <ki

  • по неубыванию ki-1 <=ki

  • по убыванию ki-1 > ki

  • по невозрастанию ki-1 >=ki

Алгоритмы сортировки очень сильно зависят от структуры сортируемых данных:.

  • Внутренние сортировки – оперирует с массивами, целиком помещающимися в оперативной памяти с произвольным доступом к любому элементу массива; данные обычно сортируются «на месте», т.е. без использования пересылок в другие массивы.

  • Внешние сортировки – это методы сортировки последовательных файлов, расположенных на внешних устройствах; при этом обычно используется дополнительная память на дисках.

Будем сортировать массивы, элементами которых являются только целочисленные ключи. Рассмотрим методы сортировки массивов «на месте».