Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Зайцев М. Г. / Отчет по практике 5 Зайцев 2 семестр

.doc
Скачиваний:
13
Добавлен:
02.01.2020
Размер:
52.22 Кб
Скачать

Отчет по практике №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.