Таблица 5
Операция | Фрагмент программы |
| Ввод элементов массива | for i:=1 to m do for j:=1 to n do read(A[i, j]); |
| Вывод элементов массива | for i:=1 to m do begin for j:=1 to n do write(A[i, j]); writeln; end; |
| Замена элементов массива на величину z | for i:=1 to m do for j:=1 to n do A[i, j]:=z; |
| Увеличение элементов массива на величину z (аналогично уменьшение, умножение, деление) | for i:=1 to m do for j:=1 to n do A[i, j]:=A[i, j]+z; |
| Вычисление элементов массива B прибавлением к элементам массива A величины z (аналогично вычитанием, умножением, делением) | for i:=1 to m do for j:=1 to n do B[i, j]:=A[i, j]+z; |
| Вычисление индексов максимального элемента imax, jmax (аналогично минимального) | max:=A[1,1]; imax:=1; jmax:=1; for i:=1 to m do for j:=1 to n do if A[i, j]>max then begin max:=A[i, j]; imax:=i; jmax:=j; end; |
| Вычисление суммы элементов 1-й строки | s:=0; for j:=1 to n do s:=s+A[1,j]; |
| Вычисление суммы элементов 1-го столбца | s:=0; for i:=1 to m do s:=s+A[i,1]; |
Особенности элементов квадратных матриц
Двумерный массив называется квадратной матрицей, если у него количество строк равно количеству столбцов
(
).
Рассмотрим квадратную матрицу:
.
Элементы aij этого массива имеют такие особенности:
Элементы находятся на главной диагонали, если10.3. Перестановка и сортировка элементов массива
Рассмотрим фрагменты программ в таблице 6.
Таблица 6
Операция | Фрагмент программы |
| Перестановка элементов 1-й и 2-й строк двумерного массива | for j:=1 to n do begin c:=A[1,j]; A[1,j]:=A[2,j]; A[2,j]:=c; end; |
| Перестановка элементов 1-го и 2-го столбцов двумерного массива | for i:=1 to m do begin c:=A[i,1]; A[i,1]:=A[i,2]; A[i,2]:=c; end; |
| Сортировка элементов одномерного массива по возрастанию (аналогично по убыванию) | 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; |
| Сортировка строк двумерного массива по возрастанию первых элементов строк (аналогично по убыванию) | 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; |
| Сортировка столбцов двумерного массива по возрастанию первых элементов столбцов (аналогично по убыванию) | 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; |
Тема № 11. Программирование подпрограмм и структурных типов данных
11.1. Подпрограммы
Подпрограмма – именованный блок операторов, отдельно выделенный в составе программы.
Подпрограммы бывают 2-х видов:
Подпрограмма-функция – подпрограмма для вычисления функции, которая возвращает какое-либо значение. Подпрограмма-процедура – подпрограмма для выполнения действий, которая не возвращает никаких значений.Как правило, использование подпрограммы означает:
Описание подпрограммы, включающее:а) Заголовок.
б) Разделы описаний.
в) Тело подпрограммы (begin…end;).
Вызовы подпрограммы, в которых она применяется для выполнения нужной операции.Заголовок подпрограммы и её вызов включают:
Имя подпрограммы (идентификатор функции или процедуры). Список параметров (аргументов, атрибутов).Параметр подпрограммы - величина, от значения которой зависит результат выполнения подпрограммы.
В подпрограммах могут использоваться следующие виды параметров и переменных.
Формальные параметры – переменные, которые объявляются в заголовке подпрограммы (перечисляются в скобках через точку с запятой с указанием спецификации и типа параметров; параметры одного типа перечисляются через запятую).
Фактические параметры – величины, которые подставляются вместо формальных параметров в момент конкретного вызова подпрограммы (перечисляются в скобках через запятую).
Параметры-значения – параметры, значения которых передаются в подпрограмму в момент её вызова и назад не выдаются.
Параметры-переменные – параметры, значения которых передаются в подпрограмму в момент её вызова и могут использоваться после выполнения подпрограммы (перечисляются со словом var перед именем переменной).
Локальные переменные – переменные, используемые только внутри подпрограммы.
Глобальные переменные – переменные, которые могут использоваться в любом месте основной программы,
в т. ч. и в подпрограмме.
11.2. Программирование задач с функциями
Заголовок описания функции имеет вид:
function Func ( SFP1 : T1 ; … ; SFPN : TN ) : T ;
где function – функция, Func – имя функции, SFP1 – список формальных параметров 1-й, SFPN – список формальных параметров N-й, T1 – тип параметров в 1-м списке, TN – тип параметров в N-м списке, T – тип значения, возвращаемого функцией.
Это означает, что задаётся подпрограмма-функция с именем Func, зависящая от формальных параметров из списка SFP1 типа T1 , … из списка SFPN типа TN, а также вычисляющая значение типа T.
Вызов функции из другой части программы имеет вид:
Func ( SFP )
где Func – имя функции, SFP – список фактических параметров.
Это означает, что вычисляется значение функции Func, зависящей от фактических параметров из списка SFP, причём вызов функции может осуществляться в составе выражения.
Задача 1.
Условие задачи. Вычислить
, а также найти
с использованием подпрограммы-функции возведения в степень.
Программа.
Program z1;
Var
A:array[0..100] of real;
B, C,x:real;
i, n:integer;
Function Step(a, b:real):real;
begin
Step:=exp(b*ln(a));
end;
Begin
read(n, x);
for i:=0 to n do
read(A[i]);
B:=Step(2.1,5)+Step(7,0.3);
C:=0;
for i:=0 to n do
C:=C+A[i]*Step(x, i);
writeln(B, C);
End.
11.3. Программирование задач с процедурами
Заголовок описания процедуры имеет вид:
procedure Proc ( SFP1 : T1 ; … ; SFPN : TN ) ;
где procedure – процедура, Proc – имя процедуры, SFP1 – список формальных параметров 1-й, SFPN – список формальных параметров N-й, T1 – тип параметров в 1-м списке, TN – тип параметров в N-м списке.
Это означает, что задаётся подпрограмма-процедура с именем Proc, зависящая от формальных параметров из списка SFP1 типа T1 , … из списка SFPN типа TN, а также выполняющая какие-либо действия.
Вызов процедуры из другой части программы имеет вид:
Proc ( SFP );
где Proc – имя процедуры, SFP – список фактических параметров.
Это означает, что выполняются действия в теле процедуры Proc, зависящей от фактических параметров из списка SFP, причём вызов процедуры не может осуществляться в составе выражения.
Задача 2.
Условие задачи. В двумерном массиве A из 3 строк и 4 столбцов вычислить сумму и произведение отрицательных элементов с использованием подпрограммы-процедуры, именованных констант и типов данных.
Программа.
Program z2;
Const m=3; n=4;
Type TT=array [1..m,1..n] of real;
Var A:TT; i, j:integer; s, p:real;
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 |


