Сумма элементов побочной диагонали

Задача

 

В двумерном массиве случайных чисел [1..10,1..10] вычислить сумму элементов побочной диагонали.

(Побочная диагональ проходит из нижнего левого угла в верхний правый.)

Решить задачу двумя способами:
• Используя подпрограмму-функцию.
• Используя подпрограмму-процедуру.

 

Решение

 

С помощью функции

type
    type_arr = array[1..10, 1..10] of byte;
 
var
    arr: type_arr;
    i, j: byte;
    sum: byte;
 
function diagonal (arr1: type_arr): byte;
    var
        sum1: byte;
        i, j: byte;
    begin
        sum1 := 0;
        j:= 10;
        for i:=1 to 10 do begin
            sum1 := sum1 + arr1[i][j];
            j := j-1;
        end;
        diagonal := sum1;
    end;
 
begin
    randomize;
    for i:=1 to 10 do begin
        for j:=1 to 10 do begin
            arr[i,j] := random(10);
            write(arr[i,j], ' ');
        end;
        writeln;
    end;
 
    sum := diagonal(arr);
    writeln(sum);
 
readln;
end.

 

С помощью процедуры:

type
    type_arr = array[1..10, 1..10] of byte;
 
var
    arr: type_arr;
    i, j: byte;
    sum: byte;
 
procedure diagonal (var arr1: type_arr; var sum1: byte);
    var
        i, j: byte;
    begin
        sum1 := 0;
        j:= 10;
        for i:=1 to 10 do begin
            sum1 := sum1 + arr1[i][j];
            j := j-1;
        end;
    end;
 
begin
    randomize;
    for i:=1 to 10 do begin
        for j:=1 to 10 do begin
            arr[i,j] := random(10);
            write(arr[i,j], ' ');
        end;
        writeln;
    end;
 
    diagonal(arr, sum);
    writeln(sum);
 
readln;
end.

 

Тема

Процедуры, функции, рекурсии

Уровень

Комбинированные задачи

Добавить комментарий

CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
CAPTCHA на основе изображений
Введите символы, которые показаны на картинке.