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

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

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

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

31 end;

32 end;

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

1 {вспомогательная процедура: поменять местами два целых числа}

2 procedure swap(var first, second: integer);

3 var tmp: integer;

4 begin

5 tmp:= first;

6 first:= second;

7 second:= tmp;

8 end;

9 {поменять местами элементы выше и ниже пересечения диагоналей матрицы arr}

10 procedure SwapAboveBelow (var arr: TMatrix);

11 var

12 RowN, ColN: integer;

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

14 begin

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

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

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

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

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

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

21 //поменяем его местами с элементом того же столбца, отстаящем на то же число строк, но от нижней границы матрицы

22 swap(arr[RowN, ColN], arr[high(arr) - RowN, ColN]);

23 end;

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