Паскаль как найти сумму диагоналей

uses crt;
const nmax=20;
var a,at:array[1..nmax,1..nmax] of integer;
    n,i,j,s,mn,mx:integer;
begin
clrscr;
randomize;
repeat
write('Размер матрицы ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Матрица A:');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=random(50);
    write(a[i,j]:4);
   end;
  writeln;
 end;
writeln;
mx:=a[1,1];
mn:=a[1,1];
s:=0;
for i:=1 to n do
 begin
  s:=s+a[i,i]+a[i,n-i+1];{сумма на диагоналях}
  if a[i,i]>mx then mx:=a[i,i];{главная диагональ}
  if a[i,n-i+1]>mx then mx:=a[i,n-i+1];{побочная диагональ}
  if a[i,i]<mn then mn:=a[i,i];
  if a[i,n-i+1]<mn then mn:=a[i,n-i+1];
 end;
if odd(n) then s:=s-a[n div 2+1,n div 2+1];{если матрица нечетная, центральный элемент посчитан 2 раза}
writeln('Сумма диагональных элементов=',s);
writeln('Минимальный из них=',mn);
writeln('Максимальный из них=',mx);
readln
end.

На занятии будет рассмотрен двумерный массив в Pascal и примеры работы с ним. Кроме того, предстоит знакомство с понятиями побочная диагональ матрицы в Паскаль и главная диагональ

Содержание:

  • Двумерный массив в Pascal
  • Описание, ввод и вывод элементов двумерного массива
  • Главная и побочная диагональ при работе с двумерными матрицами в Pascal

Матрица или двумерный массив – это прямоугольная таблица чисел (или других элементов одного типа). Каждый элемент матрицы имеет два индекса (номер строки и номер столбца).

матрица

Исходные данные для решения многих задач можно представить в табличной форме:
двумерный массив Pascal
Таблица результатов производственной деятельности нескольких филиалов фирмы может быть представлена так:

zavod1: array [1..4] of integer;
zavod2: array [1..4] of integer; 
zavod3: array [1..4] of integer;

Или в виде двумерного массива так:

Объявление двумерного массива:

var A: array[1..3,1..4] of integer;
begin
{...}
begin
  var  a := new integer[3,4];
  {...}
end.

Описание, ввод и вывод элементов двумерного массива

Варианты описания двумерного массива (традиционный pascal)

  1. Описание массива в разделе переменных:
  2. const N = 3;
          M = 4;
    var A: array[1..N,1..M] of integer;
  3. Описание массива через раздел type:
  4. const
      M=10;
      N=5;
    type
      matrix=array [1..M, 1..N] of integer;
    var A: matrix;

Ввод двумерного массива m x n с клавиатуры:

ввод двумерного массива

for i:=1 to N do
  for j:=1 to M do begin
    write('A[',i,',',j,']=');
    read ( A[i,j] );
  end;

for var i:=0 to a.RowCount-1 do
  for var j:=0 to a.ColCount-1 do
     a[i,j]:=readinteger;

Заполнение случайными числами:

заполнение случайными числами


var a := MatrRandomInteger(3,4,0,10); // целые числа в диапазоне от 0 до 10
var a1 := MatrRandomReal(3,4,1,9) // веществ. числа в диапазоне от 1 до 9

«Красивый» вывод элементов двумерного массива m x n:

Следующий фрагмент программы выводит на экран значения элементов массива по строкам:
вывод двумерного массива

1
2
3
4
5
for i:=1 to N do begin
  for j:=1 to M do
     write ( A[i,j]:5 );
  writeln;
end;

1
2
3
4
5
6
begin
  var a := MatrRandomInteger(3,4,0,10);
  var a1 := MatrRandomReal(3,4,1,9);
  a.Println;
  a1.Println(6,1) // 6 позиций всего на вывод, 1 знак после десят. запятой
end.

Результат:

   8   2   1   3
   5   8   0   8
   6   3   9   3
   3.3   4.7   3.7   5.4
   2.9   1.7   2.3   4.0
   8.3   3.7   8.4   1.4

Рассмотрим следующую задачу: Получены значения температуры воздуха за 4 дня с трех метеостанций, расположенных в разных регионах страны:

Номер станции 1-й день 2-й день 3-й день 4-й день
1 -8 -14 -19 -18
2 25 28 26 20
3 11 18 20 25

Т.е. запись показаний в двумерном массиве выглядела бы так:

t[1,1]:=-8; t[1,2]:=-14; t[1,3]:=-19; t[1,4]:=-18;
t[2,1]:=25; t[2,2]:=28; t[2,3]:=26; t[2,4]:=20;
t[3,1]:=11; t[3,2]:=18; t[3,3]:=20; t[3,4]:=25;

Или в pascalabc.NET:

var t := Matr(3,4,-8,-14,-19,-18,25,28,26,20,11,18,20,25);  
t.Println;

Объявление двумерного массива:

var t: array [1..3, 1..4] of integer;

Задание array 1: Необходимо:

  1. Распечатать температуру на 2-й метеостанции за 4-й день и на 3-й метеостанции за 1-й день.
  2. Распечатать показания термометров всех метеостанций за 2-й день.
  3. Определить среднюю температуру на 3-й метеостанции.
  4. Распечатать, в какие дни и на каких метеостанциях температура была в диапазоне 24-26 градусов тепла.

Дополните код:

Показать решение:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
var t: array [1..3, 1..4] of integer;
s,i,j:integer;
begin
t[1,1]:=-8; 	t[1,2]:=-14; 	t[1,3]:=-19; 	t[1,4]:=-18;
t[2,1]:=25; 	t[2,2]:=28; 	t[2,3]:=26; 	t[2,4]:=20;
t[3,1]:=11; 	t[3,2]:=18; 	t[3,3]:=20; 	t[3,4]:=25;
{1. Распечатать показания термометров на 2-й метеостанции за 4-й день и на 3-й метеостанции за 1-й день}
writeln('1-е задание: ',t[2,4] , ' и ',t[...,...]);
 
{2. Показания термометров всех метеостанций за 2-й день}
for i:=1 to ... do 
   writeln ('2-е задание: ',t[...,...]);
 
{3. Определим среднее значение температуры на 3-й метеостанции:}
i:=3;
s:=0;
for j:=1 to 4 do 
   s:=...; {сумматор}
writeln('3-е задание: ', s/4);
{распечатаем всю таблицу}
for i:=1 to 3 do
    for j:=1 to 4 do
        writeln(t[i,j]);
{4. Распечатаем станции и дни с температурой 24-26 гр}
writeln('4-е задание: ');
for i:=1 to 3 do
    for ... ... do
        if (...) and (...) then
           writeln('станция ', i, ' день ', j)
end.

Самостоятельно подумайте, как находится сумма элементов массива pascal.

Задание array 2. Найти сумму элементов массива (прямоугольной таблицы) размером [m x n]

Задание array 4.
Найти сумму всех элементов массива (переменная sum) 5 x 4, а также сумму элементов, составляющих столбцы таблицы (двумерного массива). Для хранения сумм столбцов чисел использовать одномерный массив (s). Дополните код.
двумерный массив в pascal

Показать решение:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
const  m = 5;
       n = 4;
var
    a: array[1..m,1..n] of byte;
    s: array[1..n] of byte;
    i,j, sum: byte;
begin
    randomize;
    for i := 1 to m do begin
        for j := 1 to n do begin
            ... {инициализация элементов массива случайными числами}
            ... {вывод элементов массива}
        end;
        writeln
    end;
    writeln ('------------'); {для оформления}
    {обнуление значений массива суммы s[]:}
    ...
    {поиск сумм элементов по столбцам:}
    for i := 1 to n do begin
         for j := 1 to m do begin
           s[i]:=...;
        end;
     write(...)  ; 
    end;
    {поиск общей суммы:}
    sum:=0;
    ...
    {вычисление суммы элементов массива значений сумм по столбцам:}
    for ...
        ...
    write (' | sum = ', sum);
readln
end.

Задание array 4_1.
Найти сумму элементов двумерного массива [m x n] по строкам:

2 8 1 9  : sum = 20
3 1 7 2  : sum = 13
4 5 6 2  : sum = 17

Методы матриц для работы со строками и столбцами:

begin
  var a := MatrRandomInteger(3,4);  
  a.Println;
 
  a.Row(0).Sum.Println();
  a.Row(1).Average.Println;
  a.Row(2).Product.Println;
 
  a.Col(0).Min.Println;
  a.Col(1).Max.Println;
end.

Результат:

  86  62  80  33
  51   4  36  65
  78  30   5  16
261 
39 
187200 
51 
62 

Главная и побочная диагональ при работе с двумерными матрицами в Pascal

Главная диагональ квадратной матрицы n x n (т.е. той, у которой количество строк равно количеству столбцов) проходит с верхнего левого угла матрицы (элемент 1,1) до правого нижнего угла матрицы (элемент n,n).

Побочная диагональ квадратной матрицы n x n проходит с нижнего левого угла матрицы (элемент n,1) до правого верхнего угла матрицы (элемент 1,n).

Формулу поиска элементов диагоналей проще всего искать, нарисовав элементы матрицы:
Если индексы начинаются с единицы (традиционный Паскаль):

1,1 1,2 1,3 1,4
2,1 2,2 2,3 2,4
3,1 3,2 3,3 3,4
4,1 4,2 4,3 4,4

Если индексы начинаются с нуля (pascalAbc.NET):

0,0 0,1 0,2 0,3
1,0 1,1 1,2 1,3
2,0 2,1 2,2 2,3
3,0 3,1 3,2 3,3

 
Учитывая, что первая цифра в программе будет соответствовать счетчику i, а вторая — счетчику j, то из таблицы можно вывести формулы:

Главная диагональ матрицы в Паскаль имеет формулу:
i=j
Побочная диагональ матрицы в Паскале традиционном имеет формулу:
n=i+j-1 (или j=n-i+1)

где n — размерность квадратной матрицы

Побочная диагональ матрицы в pascalAbc.Net имеет формулу:
n=i+j+1

где n — размерность квадратной матрицы

Пример: Вывести на экран сначала главную диагональ квадратной матрицы из N строк и N столбцов, а затем ее побочную диагональ.

Решение:
Вывод элементов главной диагонали
Вывод элементов побочной диагонали

Пример: Заменить элементы главной и побочной диагонали квадратной матрицы нулями

Показать решение:

Паскаль:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var i,j,n:integer;
a: array[1..100,1..100]of integer;
begin
   randomize;
   writeln ('введите размерность матрицы:');
   readln(n);
   for i:=1 to n do begin
        for j:=1 to n do  begin
            a[i,j]:=random(10);
            write(a[i,j]:3);
        end;
        writeln;
   end;
   writeln;
   for i:=1 to n do begin
        for j:=1 to n do  begin
            if (i=j) or (n=i+j-1) then a[i,j]:=0;
            write(a[i,j]:3)
        end;
        writeln;
   end;
end.

PascalAbc.Net

1
2
3
4
5
6
7
8
9
10
11
12
begin
  var n := readinteger('введите размерность матрицы:');
  var a := matrRandomInteger(n, n, -10, 10);
  a.Println(6);
  for var i := 0 to n - 1 do
  begin
    a[i, i] := 0;
    a[i, n - i - 1] := 0;
  end;
  writeln();
  a.Println(6);
end.

Задание array 5:
Найти отдельно сумму элементов главной и побочной диагонали квадратной матрицы

1 7 3 7
2 1 8 3
5 7 6 4
8 2 3 1
-------
sum1 = 9
sum2 = 30

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

Показать решение:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
var
A:array[1..5,1..5] of integer;
i,j:integer;
sum,sum1,sum2:integer;
begin
randomize;
for i:=1 to 5 do
for j:=1 to 5 do
    A[i,j]:=random(10);
write ('Исходный массив A: ');
for i:=1 to 5 do begin
    writeln;
    for j:=1 to 5 do
        write (A[i,j]:2,' ');
    end;
sum1:=0;
for i:=1 to 5 do
    for j:=1 to 5 do
        if (i-j=1) then
            sum1:=sum1+A[i,j];
sum2:=0;
for i:=1 to 5 do
    for j:=1 to 5 do
        if (j-i=1) then
           sum2:=sum2+A[i,j];
sum:=sum1+sum2;
writeln;
writeln('Сумма = ',sum);
end.

Задание array 6: Сформировать матрицу размерностью n. Вывести ее на экран. Затем преобразовать ее, заменив необходимые элементы на 0:
главная и побочная диагональ матрицы паскаль

Задание array 7: Сформировать матрицу размерностью n. Вывести ее на экран. Затем преобразовать ее, заменив необходимые элементы на 0:
главная и побочная диагональ матрицы паскальдиагонали матрицы Паскаль

Задание array 8: Сформировать матрицу размерностью n. Вывести ее на экран. Затем преобразовать ее, заменив необходимые элементы на 0:
диагонали матрицы Паскаль
главная и побочная диагональ матрицы паскаль

Задание array 9: Составить программу, позволяющую с помощью датчика случайных чисел сформировать матрицу размерностью N. Определить:

  • минимальный элемент, лежащий ниже побочной диагонали;
  • произведение ненулевых элементов последней строки.
  • Рассмотрим еще один пример работы с двумерным массивом.

    Пример: В двумерном массиве размером N х M определить среднее значение элементов. Найти индекс элемента массива, наиболее близкого к среднему значению.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    
    var index1,index2,i,j,N,M:integer;
    s,min,f:real;
    a:array[1..300,1..300] of real;
    begin
    N:=10;
    M:=5;
    for i:=1 to N do begin
      for j:=1 to M do begin
        a[i,j]:=random(20);
        s:=s+a[i,j];
        write(a[i,j]:3);
       end;
       writeln;
    end;
     
    f:=s/(N*M);
    writeln('srednee znachenie ',f);
    min:=abs(a[1,1]-f);
    for i:=1 to N do begin
      for j:=1 to M do begin
        if abs(a[i,j]-f)<min then begin
          min:=abs(a[i,j]-f);
          index1:=i;
          index2:=j;
        end;
      end;
    end;
    writeln('naibolee blizkiy ',index1,' ',index2);
    end.

    Потренируйтесь в решении задач по теме, щелкнув по пиктограмме:

    проверь себя

    0 / 0 / 0

    Регистрация: 16.01.2011

    Сообщений: 7

    1

    Найти сумму элементов диагоналей массива.

    16.01.2011, 17:02. Показов 10721. Ответов 11


    Студворк — интернет-сервис помощи студентам

    дан двухмерный массив.найти сумму элементов диагоналей массива.желательно блок схема,алгоритм и программу.(в басике и паскале)



    0



    MegaAce

    332 / 306 / 155

    Регистрация: 14.02.2010

    Сообщений: 662

    16.01.2011, 17:10

    2

    Как-то так

    Pascal
    1
    2
    3
    
    for i:=1 to n do
    for j:=1 to m do
    if i=j then s:=s+a[i,j] else if i=((m-j)+1) then s:=s+a[i,j];



    1



    0 / 0 / 0

    Регистрация: 16.01.2011

    Сообщений: 7

    16.01.2011, 17:14

     [ТС]

    3

    вся задача?



    0



    332 / 306 / 155

    Регистрация: 14.02.2010

    Сообщений: 662

    16.01.2011, 17:21

    4

    Весь алгоритм, который вы спрашивали



    0



    0 / 0 / 0

    Регистрация: 16.01.2011

    Сообщений: 7

    16.01.2011, 17:22

     [ТС]

    5

    а блок схему?



    0



    Mad_Dog

    Фрилансер

    452 / 433 / 117

    Регистрация: 01.06.2010

    Сообщений: 1,314

    16.01.2011, 17:23

    6

    Pascal
    1
    2
    
    for i:=1 to n do
      s:=s+a[i,i]+a[i,n-i+1]

    вот так как-то лучше…



    1



    MegaAce

    332 / 306 / 155

    Регистрация: 14.02.2010

    Сообщений: 662

    16.01.2011, 17:26

    7

    Цитата
    Сообщение от Mad_Dog
    Посмотреть сообщение

    for i:=1 to n do s:=s+a[i,i]+a[i,n-i+1]

    точно! Давно уже не делал операции с диагоналями))

    Pascal
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    uses crt;
    const n=4;
    var a:array[1..n,1..n] of integer; i,j,s:integer;
    begin
    randomize;
    for i:=1 to n do
    begin
    for j:=1 to n do
    begin
    a[i,j]:=random(10);
    write(a[i,j]:2);
    end;
    writeln;
    end;
     
    for i:=1 to n do
    s:=s+a[i,i]+a[i,n-i+1];
    writeln(s)
    end.



    1



    0 / 0 / 0

    Регистрация: 16.01.2011

    Сообщений: 7

    16.01.2011, 17:31

     [ТС]

    8

    блок схему можете сделать?



    0



    332 / 306 / 155

    Регистрация: 14.02.2010

    Сообщений: 662

    16.01.2011, 17:51

    9

    Как-то так, хотя не уверен

    Миниатюры

    Найти сумму элементов диагоналей массива.
     



    1



    332 / 306 / 155

    Регистрация: 14.02.2010

    Сообщений: 662

    16.01.2011, 17:58

    10

    Извините, немного не так

    К нижней схеме: Замените в параллелограмме нижнем a[i,j] на s

    Миниатюры

    Найти сумму элементов диагоналей массива.
     



    2



    Українець

    424 / 318 / 16

    Регистрация: 26.09.2009

    Сообщений: 844

    16.01.2011, 18:05

    11

    Артемка, ты — баран, научись просить, сдесь тебе никто ничего не должен



    0



    0 / 0 / 0

    Регистрация: 16.01.2011

    Сообщений: 7

    16.01.2011, 18:11

     [ТС]

    12

    я ни кого не заставляю мне помогать.люди по собственному желанию помогают.и кстати на форумах все горлопанить могут.однажды нашли такого оратора и он был в шоке!так что аккуратнее с выражениями!



    0



    Перейти к содержанию

    Вычислить сумму элементов главной или побочной диагонали матрицы

    Просмотров 9.6к. Обновлено 15 октября 2021

    Дана квадратная матрица. Вычислить сумму элементов главной или побочной диагонали в зависимости от выбора пользователя. Сумма элементов любой диагонали должна вычисляться в одной и той же функции.

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

    Если была выбрана сумма главной диагонали, то при определении ее элементов второй индекс матрицы будет равен первому и начинаться с первого элемента. В случае побочной диагонали второй индекс будет начинаться с последнего элемента и заканчиваться первым. Поэтому в теле функции перед проходом по матрице второму индексу присваивается либо 1 (или 0), либо размерность квадратной матрицы (N или N-1). При проходе второй индекс либо увеличивается на каждой итерации, либо уменьшается.

    Pascal


    const N = 10;
    type
    type_arr = array[1..N, 1..N] of byte;

    var
    arr: type_arr;
    i, j: byte;
    sum: byte;
    ch: char;

    function diagonal (var arr1: type_arr; c: char): byte;
    var
    sum1: byte;
    i, j: byte;
    begin
    sum1 := 0;
    if c = '1' then j := 1
    else j:= N;
    for i:=1 to N do begin
    sum1 := sum1 + arr1[i][j];
    if c = '1' then j := j + 1
    else j := j-1;
    end;
    diagonal := sum1;
    end;

    begin
    randomize;
    for i:=1 to N do begin
    for j:=1 to N do begin
    arr[i,j] := random(10);
    write(arr[i,j]:4);
    end;
    writeln;
    end;
    write('Главная (1) или побочная (2): ');
    readln(ch);
    if (ch = '1') or (ch = '2') then begin
    sum := diagonal(arr, ch);
    writeln(sum);
    end;
    end.



    Пример(ы) выполнения программы на языке Pascal:

    0 2 0 4 8 0 4 1 5 1
    1 7 7 0 1 7 8 4 7 7
    1 0 7 4 6 5 0 6 4 7
    1 5 3 3 0 4 6 7 8 0
    1 7 3 8 1 6 9 4 4 7
    8 5 7 7 1 7 8 8 8 4
    2 0 1 3 1 5 2 0 0 8
    4 8 3 7 5 6 5 1 3 9
    9 0 9 2 1 0 3 6 1 3
    8 3 7 5 8 8 9 5 1 1
    Главная (1) или побочная (2): 2
    41

    Язык Си


    #include < stdio.h>
    #define N 10
    int diagonal(char c);
    int a[N][N];

    main() {
    int i, j, sum;
    char ch;
    srand(time(NULL));
    for (i=0; i< N; i++) {
    for (j=0; j< N; j++) {
    a[i][j] = rand() % 10;
    printf("%3d", a[i][j]);
    }
    printf("n");
    }
    printf("Главная (1) или побочная (2): ");
    scanf("%c", &ch);
    sum = diagonal(ch);
    printf("%dn", sum);
    }

    int diagonal(char c) {
    int s, i, j;
    s = 0;
    if (c == '1')
    for (i=0; i< N; i++)
    s += a[i][i];
    else
    for (i=0, j=N-1; i< N; i++,j--)
    s += a[i][j];
    return s;
    }

    Python

    сумма элементов главной диагонали матрицы python


    def diagonal(l,c):
    s = 0
    i = 0
    while i < N:
    if c == '1':
    s += l[i][i]
    else:
    s += l[i][N-i-1]
    i += 1
    return s

    from random import random
    N = 10
    a = []
    for i in range(N):
    b = []
    for j in range(N):
    n = int(random()*10)
    b.append(n)
    print("%3d" % n, end='')
    a.append(b)
    print()

    ch = input("Главная (1) или побочная (2): ")
    if ch == '1' or ch == '2':
    summa = diagonal(a,ch)
    print(summa)

    КуМир


    цел N = 7
    цел таб a[1:N,1:N]
    алг
    нач
    цел i, j, sum
    сим ch
    нц для i от 1 до N
    нц для j от 1 до N
    a[i,j] := int(rand(0,10))
    вывод a[i,j], " "
    кц
    вывод нс
    кц
    вывод "Главная (г) или побочная (п): "
    ввод ch
    если ch = "г" или ch = "п" то
    sum := diag(ch)
    вывод sum
    все
    кон

    алг цел diag(сим c)
    нач
    цел s, i, j
    s := 0
    нц для i от 1 до N
    если c = "г" то
    s := s + a[i,i]
    иначе
    s := s + a[i,N-i+1]
    все
    кц
    знач := s
    кон

    Группа: Пользователи
    Сообщений: 3
    Пол: Женский

    Репутация: -  0  +



    Даны 3 двумерных массива A, B, C неодинаковой размерности. Разработать 2 процедуры: 1) процедуру для ввода размеров и элементов массива. 2) процедуру вычисления суммы диагональных элементов в каждом массиве. 3) процедуру вычисления суммы 1-ой строки массива. 4) процедуру вывода на экран элементов массива. В программе вычислить общую сумму диагональных элементов трех массивов. Результаты выдать на экран в программе.
    Дошла до общей суммы диагоналей и все ступор. Что делаю не так? подскажите и, по возможности, исправьте.

    program z_3;

    type mas=array[1..100, 1..100] of integer;
    Var
    A,B,C : mas;
    sa,sb,sc: integer;
    sum:real;
    procedure sm(VAR A:mas; Var s:integer);
    Var
    i,j,n,m,k: integer;

    Begin
    writeln('Введем размеры двумерного массива:');
    write(' Количество строк: '); readln(n);
    write(' Количество столбцов: '); readln(m);

    writeln('Заполним массив:');
    for i:=1 to n do
    for j:=1 to m do
    read(a[i,j]);

    writeln; sum:=0;
    k:=1;
    for j:=1 to m do sum:=sum+a[k,j];
    writeln('Сумма 1-го столбца равна ', sum);

    writeln; sum:=0;
    writeln('Сумму элементов какой диагонали необходимо найти:');
    write('Диагональ слева-направо- 1, справа-налево - 2: '); readln(k);
    if(k=1)then
    begin
    j:=1;
    for i:=1 to n do
    begin
    sum:=sum+a[i,j];
    j:=j+1;
    end;
    end;

    if(k=2)then
    begin
    j:=m;
    for i:=n downto 1 do
    begin
    sum:=sum+a[i,j];
    j:=j-1;
    end;
    end;
    writeln('Сумма равна ',sum);

    end;
    Begin
    sm(A, sa );
    sm(B, sb);
    sm(C, sc);
    begin

    sum:=0;
    sum:=sa+sb+sc;
    writeln ( 'сумма диогоналей 3х массивов =' , sum:8:2);
    end;

    end.

    Понравилась статья? Поделить с друзьями:
  • Как найти углы в правильном многоугольнике формула
  • Как найти длину границы участка прямоугольного
  • Как найти кадастровый квартал по адресу
  • Как составить трудовое соглашение при увольнении по соглашению сторон
  • Как найти кинетическую энергию тела на высоте