Нахождение суммы элементов диагоналей - Pascal
Формулировка задачи:
Дана матрица А размера n на n. Найти сумму элементов главной и побочной диагонали. Минимальное и максимальное значения среди этих элементов. Как будет выглядеть эта программа?
Решение задачи: «Нахождение суммы элементов диагоналей»
textual
Листинг программы
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.
Объяснение кода листинга программы
- Создается переменная
nmax
и присваивается ей значение 20. - Создается массив
a
типаarray[1..nmax,1..nmax] of integer
. - Создаются переменные
n
,i
,j
,s
,mn
,mx
и присваиваются им начальные значения. - Выводится запрос на ввод размера матрицы, и считывается введенное значение.
- Для каждого элемента матрицы
a[i,j]
выводится его значение. - Вычисляются минимальный и максимальный элементы матрицы
a
. - Вычисляется сумма элементов диагоналей матрицы
a
. - Если размер матрицы нечетный, то вычисляется сумма элементов центральной диагонали и вычитается из общей суммы.
- Выводится сумма диагональных элементов, минимальный и максимальный элементы.
- Программа завершается, ожидая ввода пользователя.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д