Тема № 4. Программирование подпрограмм и структурных типов данных
Перестановка и сортировка элементов массива
Особенности элементов квадратных матриц
Двумерный массив называется квадратной матрицей, если у него количество строк равно количеству столбцов ().
Рассмотрим квадратную матрицу:
.
Элементы aij этого массива имеют такие особенности:
1. Элементы находятся на главной диагонали, если .
2. Элементы находятся выше главной диагонали, если .
3. Элементы находятся ниже главной диагонали, если .
4. Элементы находятся вне главной диагонали, если .
5. Элементы находятся на побочной диагонали, если .
6. Элементы находятся выше побочной диагонали, если .
7. Элементы находятся ниже побочной диагонали, если .
8. Элементы находятся вне побочной диагонали, если .
Операция
Фрагмент программы
1. Перестановка 1-го и 2-го элементов одномерного массива
c:=A[1];
A[1]:=A[2];
A[2]:=c;
2. Перестановка элементов 1-й и 2-й строк двумерного массива
for j:=1 to n do
begin
c:=A[1,j];
A[1,j]:=A[2,j];
A[2,j]:=c;
end;
3. Перестановка элементов 1-го и 2-го столбцов двумерного массива
for i:=1 to m do
begin
c:=A[i,1];
A[i,1]:=A[i,2];
A[i,2]:=c;
end;
4. Сортировка элементов одномерного массива по возрастанию
(аналогично по убыванию)
for k:=1 to n-1 do
begin
min:=A[k];
imin:=k;
for i:=k+1 to n do
if A[i]<min then
begin
min:=A[i];
imin:=i;
end;
c:=A[k];
A[k]:=A[imin];
A[imin]:=c;
end;
5. Сортировка строк двумерного массива по возрастанию первых элементов строк
(аналогично по убыванию)
for k:=1 to m-1 do
begin
min:=A[k,1];
imin:=k;
for i:=k+1 to m do
if A[i,1]<min then
begin
min:=A[i,1];
imin:=i;
end;
for j:=1 to n do
begin
c:=A[k,j];
A[k,j]:=A[imin,j];
A[imin,j]:=c;
end;
end;
6. Сортировка столбцов двумерного массива по возрастанию первых элементов столбцов
(аналогично по убыванию)
for k:=1 to n-1 do
begin
min:=A[1,k];
jmin:=k;
for j:=k+1 to n do
if A[1,j]<min then
begin
min:=A[1,j];
jmin:=j;
end;
for i:=1 to m do
begin
c:=A[i,k];
A[i,k]:=A[i,jmin];
A[i,jmin]:=c;
end;
end;
Подпрограмма – именованный блок операторов, отдельно выделенный в составе программы.
Подпрограммы бывают 2-х видов:
1. Подпрограмма-функция – подпрограмма для вычисления функции, которая возвращает какое-либо значение.
2. Подпрограмма-процедура – подпрограмма для выполнения действий, которая не возвращает никаких значений.
Как правило, использование подпрограммы означает:
1. Описание подпрограммы, включающее:
а) Заголовок.
б) Разделы описаний.
в) Тело подпрограммы (begin…end;).
2. Вызовы подпрограммы, в которых она применяется для выполнения нужной операции.
Заголовок подпрограммы и её вызов включают:
1. Имя подпрограммы (идентификатор функции или процедуры).
2. Список параметров (аргументов, атрибутов).
Параметр подпрограммы - величина, от значения которой зависит результат выполнения подпрограммы.
В подпрограммах могут использоваться следующие виды параметров и переменных.
Формальные параметры – переменные, которые объявляются в заголовке подпрограммы (перечисляются в скобках через точку с запятой с указанием спецификации и типа параметров; параметры одного типа перечисляются через запятую).
Фактические параметры – переменные или значения, которые подставляются вместо формальных параметров в момент конкретного вызова подпрограммы (перечисляются в скобках через запятую).
Параметры-значения – параметры, значения которых передаются в подпрограмму в момент её вызова и назад не выдаются.
Параметры-переменные – параметры, значения которых передаются в подпрограмму в момент её вызова и могут использоваться после выполнения подпрограммы (перечисляются со словом var перед именем переменной).
Локальные переменные – переменные, используемые только внутри подпрограммы.
Глобальные переменные – переменные, которые могут использоваться в любом месте основной программы, в т.ч. и в подпрограмме.