Организация и описание процессов обработки данных с помощью двумерных массивов и подпрограмм, страница 2

Исходный массив

2

3

5

4

3

9

1

8

7

Значение столбца

1

Максимальное значение

8

16. Написать и оттестировать функцию. Функция получает через параметр двумерный массив вещественных переменных (типа Matrix) и значение первого индекса (номер строки). Возвращает максимальное значение среди значений компонентов заданной строки.

Например:

Исходный массив

2

3

5

4

–3

9

1

8

7

Значение строки

0

Максимальное значение

5

17. Написать и оттестировать функцию. Функция получает через параметр двумерный массив вещественных переменных (типа Matrix) с равным числом строк и столбцов и возвращает произведение значений компонентов массива, лежащих на побочной диагонали и выше ее.

Например:

Исходный массив

2

3

8

4

5

9

1

6

7

Произведение

960

18. Написать и оттестировать функцию. Функция получает через параметр двумерный массив вещественных переменных (типа Matrix) с равным числом строк и столбцов и возвращает произведение значений компонентов массива, лежащих на побочной диагонали и ниже ее.

Например:

Исходный массив

2

3

8

4

5

9

1

6

7

Произведение

15120

19. Записать и оттестировать функцию. Функция получает через параметр двумерный массив вещественных переменных (типа Matrix) с равным числом строк и столбцов и возвращает произведение значений компонентов массива, лежащих выше главной диагонали.

Например:

Исходный массив

2

3

8

4

5

9

1

6

7

Произведение

216

20. Написать и оттестировать функцию. Функция получает через параметр двумерный массив вещественных переменных (типа Matrix) с равным числом строк и столбцов и возвращает произведение значений компонентов массива, лежащих ниже главной диагонали.

Например:

Исходный массив

2

3

8

4

5

9

1

6

7

Произведение

24

21. Написать и оттестировать функцию. Функция получает через параметр двумерный массив вещественных переменных (типа Matrix) с равным числом строк и столбцов и возвращает произведение значений компонентов массива, лежащих выше побочной диагонали.

Например:

Исходный массив

2

3

8

4

5

9

1

6

7

Произведение

24

22. Написать и оттестировать функцию. Функция получает через параметр двумерный массив вещественных переменных (типа Matrix) с равным числом строк и столбцов и возвращает произведение значений компонентов массива, лежащих ниже побочной диагонали.

Например:

Исходный массив

2

3

8

4

5

9

1

6

7

Произведение

378

23. Написать и оттестировать функцию. Функция получает через параметры двумерный массив вещественных переменных (тип Matrix) и одномерный массив (тип Vector). Функция вычисляет и возвращает произведение матрицы на вектор-столбец (одномерный массив типа vector). Двумерный массив (матрица) и одномерный массив (вектор-столбец) должны быть согласованы по умножению: число столбцов матрицы должно быть равно числу строк вектора-столбца. Результатом перемножения будет вектор-столбец, число строк в котором будет равно числу строк матрицы.

Примеры решений задач

З а д а ч а  № 1

Написать и оттестировать функцию. Функция получает через параметры двумерный массив вещественных переменных (типа Matrix). Функция отыскивает и возвращает сумму значений компонентов
массива.

Для нахождения суммы значений компонентов массива необходимо последовательно копировать значения всех компонентов массива, добавляя их к сумме. В качестве начального значения для переменной (накопителя), в которой будет храниться текущая сумма значений компонентов, необходимо установить значение 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:= 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). Функция отыскивает и возвращает максимальное значение компонентов массива.