Зайцев М. Г. / Отчет по практике 5 Зайцев 2 семестр
.docОтчет по практике №5
Задача №1
Написать и оттестировать функцию. Функция получает через параметры двумерный массив вещественных переменных (тип Matrix). Вычисляет и возвращает сумму значений компонентов массива.
program PSum;
{$APPTYPE CONSOLE}
uses
SysUtils;
Const
Rows = 3;// число строк
Columns = 3;// число столбцов
Type
RowInd = 0 .. Rows – 1;//тип индекса строки
ColInd = 0.. Columns – 1; //тип индекса столбца
Matrix = array [RowInd, ColInd] of real; //тип массива
function MatSum(const M: Matrix): Real;
//Возвращает сумму значений компонентов массива
var
I: RowInd;//Индекс строки
J: ColInd;//Индекс столбца
begin
Result:= 0;
for I:= Low(RowInd) to High(RowInd) do//Цикл по строкам
for J:= Low(ColInd) to High(ColInd) do//Цикл по столбцам
Result := Result + M[I,J]//Добавляем значение текущего компо- //нента к сумме
end;
Var
A: Matrix = ((2, 3, 5), (4, -3 , 9), (1, 8, 7));
R: Real;
begin
R:= MatSum(A);
writeln('Summa = ', R:6:2);
writeln('Summa = ', MatSum(A):6:2);
readln;
end.
Задача №2
Написать и оттестировать функцию. Функция получает через параметры двумерный массив вещественных переменных (типа Matrix). Функция отыскивает и возвращает максимальное значение компонентов массива.
program PMatMax;
{$APPTYPE CONSOLE}
uses
SysUtils;
Const
Rows = 3;//число строк
Columns = 3;//число столбцов
Type
RowInd = 0 .. Rows – 1;//тип индекса строки
ColInd = 0.. Columns – 1;//тип индекса столбца
Matrix = array [RowInd, ColInd] of real;//тип массива
function MatMax(const M: Matrix): Real;
//Возвращает максимальное значение массива
var
I: RowInd;//Индекс строки
J: ColInd;//Индекс столбца
begin
Result:= M[Low(ColInd),Low(RowInd)];
for I:= Low(RowInd) to High(RowInd) do//Цикл по строкам
for J:= Low(ColInd) to High(ColInd) do//Цикл по столбцам
if Result < M[I,J] then//Изменяем текущее максимальное значение
Result:= M[I,J];
end;
Var
A: Matrix = ((2, 3, 5), (4, -3 , 9), (1, 8, 7));
R: Real;
begin
R:= MatMax(A);
writeln('Summa = ', R:6:2);
writeln('Summa = ', MatMax(A):6:2);
readln;
end.
Задача №5
Написать и оттестировать функцию. Функция получает через параметры двумерный массив вещественных переменных (тип Matrix). Функция отыскивает и возвращает сумму значений компонентов массива, у которых значения обоих индексов совпадают.
Пояснение:
Сумма = A[1,1] + A[2,2] + A[0,0].
program Psum;
{$APPTYPE CONSOLE}
uses
SysUtils;
Const
Rows = 3;
Columns = 3;
Type
RowInd = 0 .. Rows - 1;
ColInd = 0.. Columns - 1;
Matrix = array [RowInd, ColInd] of real;
function Matsum(const M: Matrix): Real;
var
I: RowInd;
J: ColInd;
begin
result:= 1;
for I:= Low(RowInd) to High(RowInd) do
for J:= Low(ColInd) to High(ColInd) do
if I=J then
result:= result + M[I,J]
end;
Var
A: Matrix = ((2, 3, 5), (4, -3 , 9), (1, 8, 7));
sum:real;
begin
sum:= Matsum(A);
writeln('sum = ', sum:6:2);
readln;
end.
Задача №6
Написать и оттестировать функцию. Функция получает через параметр двумерный массив вещественных переменных (тип Matrix). Вычисляет и возвращает произведение значений компонентов массива.
program Ppoiz;
{$APPTYPE CONSOLE}
uses
SysUtils;
Const
Rows = 3;
Columns = 3;
Type
RowInd = 0 .. Rows - 1;
ColInd = 0.. Columns - 1;
Matrix = array [RowInd, ColInd] of real;
function Matpr(const M: Matrix): Real;
var
I: RowInd;
J: ColInd;
begin
Result:= 1;
for I:= Low(RowInd) to High(RowInd) do
for J:= Low(ColInd) to High(ColInd) do
Result := Result * M[I,J]
end;
Var
A: Matrix = ((2, 3, 5), (4, -3 , 9), (1, 8, 7));
R: Real;
begin
R:= Matpr(A);
writeln('pr = ', R:6:2);
writeln('pr = ', Matpr(A):6:2);
readln;
end.
Задача №13
Написать и оттестировать функцию. Функция получает через параметр двумерный массив вещественных переменных (типа Matrix) с одинаковым числом строк и столбцов и возвращает минимальное значение среди значений компонентов массива, лежащих на побочной диагонали.
program PMinMDig;
{$APPTYPE CONSOLE}
uses
SysUtils;
Const
Rows = 3;
Columns = 3;
Type
RowInd = 0 .. Rows - 1;
ColInd = 0.. Columns - 1;
Matrix = array [RowInd, ColInd] of real;
function MatMinMD(const M: Matrix): Real;
var
I: RowInd;
begin
Result:= M[Low(ColInd),Low(RowInd)];
for I:= Low(RowInd) to High(RowInd) do
if Result > M[I,3-I+1] then Result:= M[I,3-I+1];
end;
Var
A: Matrix = ((2, 3, 5), (4, 3 , 9), (1, 8, 7));
R: Real;
begin
R:= MatMinMD(A);
writeln('Summa = ', R:6:2);
writeln('Summa = ', MatMinMD(A):6:2);
readln;
end.
Задача №14
Написать и оттестировать функцию. Функция получает через параметр двумерный массив вещественных переменных (типа Matrix) с одинаковым числом строк и столбцов и возвращает максимальное значение среди значений компонентов массива, лежащих на главной диагонали.
program PMaxMDig;
{$APPTYPE CONSOLE}
uses
SysUtils;
Const
Rows = 3;// число строк
Columns = 3;// число столбцов
Type
RowInd = 0 .. Rows – 1;//тип индекса строки
ColInd = 0.. Columns – 1;//тип индекса столбца
Matrix = array [RowInd, ColInd] of real;//тип массива
function MatMaxMD(const M: Matrix): Real;
//Возвращает максимальное значение компонентов главной диаго-//нали массива
var
I: RowInd;
begin
Result:= M[Low(ColInd),Low(RowInd)];
for I:= Low(RowInd) to High(RowInd) do
if Result < M[I,I] then Result:= M[I,I];
end;
Var
A: Matrix = ((2, 3, 5), (4, -3 , 9), (1, 8, 7));
R: Real;
begin
R:= MatMaxMD(A);
writeln('Summa = ', R:6:2);
writeln('Summa = ', MatMaxMD(A):6:2);
readln;
end.