Курсовая работа: Работа с двумерными числовыми массивами

Суммы элементов между диагоналями

Далее идут функции, осуществляющие подсчёт сумм элементов выше и ниже пересечения диагоналей, а так же смену местами этих элементов. Главной диагональю считается множество элементов матрицы, индексы которых совпадают, побочной диагональю считается та, которая идёт по диагонали из нижнего левого угла матрицы.

Функции GetSumAbove и GetSumBelow проходят соответствующие половины строк матрицы, для каждой строки высчитывая диапазон столбцов, из которых нужно суммировать элементы:

1 {возвращает сумму элементов выше пересечения диагоналей матрицы arr}

2 function GetSumAbove (const arr: TMatrix): Int64;

3 var

4 RowN, ColN: integer;

5 lastColumn: integer;//номер столбца, содержащего элемент дальней диагонали минус 1

6 begin

7 Result:= 0;

8 for RowN:= 0 to (high(arr) div 2) do

9 begin//с нулевой, по средюю строку

10 lastColumn:= high(arr)-RowN-1;//определим номер столбца последнего элемента, подлежащего суммированию

11 //если число столбцов меньше числа строк, то последний столбец может оказаться ближе

12 if lastColumn > high(arr[RowN]) then lastColumn:= high(arr[RowN]);

13 for ColN:= RowN+1 to lastColumn do //просуммируем элементы в высчитаных пределах

14 Result:= Result + arr[RowN, ColN];

15 end;

16 end;

17 {возвращает сумму элементов ниже пересечения диагоналей матрицы arr}

18 function GetSumBelow(const arr: TMatrix): Int64;

19 var

20 RowN, ColN: integer;

21 lastColumn: integer;//номер столбца, содержащего элемент дальней диагонали минус 1

22 begin

23 Result:= 0;

24 for RowN:= (high(arr) div 2)+1 to high(arr) do

25 begin//со средней по последнюю строку

26 lastColumn:= RowN-1;//определим номер столбца последнего элемента, подлежащего суммированию

К-во Просмотров: 520
Бесплатно скачать Курсовая работа: Работа с двумерными числовыми массивами