Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Voprosy и ответы.doc
Скачиваний:
5
Добавлен:
20.04.2019
Размер:
671.23 Кб
Скачать

Var a, b : intmas;

Можно описать тип прямо при определении переменных:

Var a, b : array [1 .. N] of integer;

С массивами в целом можно выполнять только присваивание. При этом массивы должны быть одного типа, например:

b := a;

Все остальные действия выполняются с отдельными элементами массива. Для обращения к элементу массива после имени массива указывается номер элемента в квадратных скобках:

a[4] b[i]

С элементом массива можно делать все, что допустимо для переменных того же типа.

Инициализация массивов. Можно присвоить значения элементам массива до начала выполнения программы. Это делается в разделе описания констант:

const a : intmas = (0, 5, -7, 100, 15, 1);

Количество констант должно точно соответствовать числу элементов массива.

Пример 1

Программа определяет максимальный элемент массива из 20 вещественных элементов.

Program max_elem;

const n = 20;

Var a : array [1 .. N] of real;

I : integer;

max : real;

begin

writeln('Введите ', n, ' элементов массива');

for i := 1 to n do read(a[i]);

max := a[1];

for i := 2 to n do

if a[i] > max then max := a[i];

writeln('Максимальный элемент: ', max:6:2)

end.

Пример 2

Упорядочивание по возрастанию элементов массива из 20 целых величин.

Для сортировки будем использовать метод выбора. Алгоритм состоит в том, что сначала выбирается наименьший элемент массива и меняется местами с первым элементом, затем просматриваются элементы, начиная со второго, и наименьший из них меняется местами со вторым элементом, и так далее n - 1 раз. На последнем проходе цикла при необходимости меняются местами предпоследний и последний элементы массива.

Program sort; { Сортировка выбором }

const n = 20;

Var a : array [1 .. N] of integer;

I, j, nmin, buf : integer;

begin

writeln('Введите ', n, ' элементов массива');

for i := 1 to n do read(a[i]);

for i := 1 to n - 1 do begin { просмотр массива n-1 раз }

nmin := i;

for j := i + 1 to n do { поиск минимума }

if a[j] < a[nmin] then nmin := j;

buf := a[i]; { перестановка }

a[i]:= a[nmin]; { двух }

a[nmin]:= buf; { элементов массива }

end;

writeln('Упорядоченный массив:');

for i := 1 to n do write(a[i]:5)

end.

Двумерные массивы

Элемент массива может быть любого типа, кроме файлового, следовательно, он может быть и массивом:

const n = 4; m = 3;

type mas = array [1 .. n] of integer;

mas2 = array [1 .. m] of mas;

Более компактно это можно записать так:

type mas2 = array [1 .. m, 1 .. n] of integer;

Здесь описан тип массива, состоящего из m массивов, каждый из которых содержит n целых чисел. Иными словами, это матрица из m строк и n столбцов (рис. 1). Обе размерности массива должны быть константами или константными выражениями. Имя типа указывается при описании переменных:

var a, b : mas2;

В памяти двумерный массив располагается по строкам:

a11 a12 a13 a14 a21 a22 a23 a24 a31 a32 a33 a34

| 1-я строка | 2-я строка | 3-я строка |

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

Рис. 1

К элементу двумерного массива обращаются, указывая номер строки и номер столбца, на пересечении которых он расположен, например:

a[1, 4] b[i, j] b[j, i]

Необходимо помнить, что компилятор воспринимает как номер строки первый индекс, как бы он ни был обозначен в программе.

При инициализации двумерных массивов каждая строка заключается в дополнительную пару круглых скобок:

const a : mas2 = (( 2, 3, 1, 0),

( 1, 9, 1, 3),

( 3, 5, 7, 0) );

С массивами в целом определена только одна операция - присваивание массивов одного типа (например, b:= a). Все остальные действия выполняются с отдельными элементами. Например, чтобы ввести с клавиатуры двумерный массив, необходимо организовать вложенные циклы:

for i := 1 to m do

for j := 1 to n do read(a[i, j]);

Для приведенного здесь порядка следования циклов элементы массива должны вводиться по строкам.

Пример 3

Программа, которая для целочисленной матрицы 3 х 4 определяет среднее арифметическое ее элементов и количество положительных элементов в каждой строке.

Схема алгоритма приведена на рис. 2.

Рис. 2

program sred_n;

const m = 3; n = 4;

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