Синформатикой! заранее большое ! необходимое : написать программу,которая выводит суммы главной диагонали, верхней треугольной матрицы и нижней треугольной. язык )
// PascalABC.NET 3.3, сборка 1627 от 27.01.2018 // Внимание! Если программа не работает, обновите версию!
begin var n:=ReadInteger('Количество строк (столбцов) в матрице:'); Writeln('*** Исходная матрица ***'); var a:=MatrRandom(n,n,-99,99); a.Println(4); Writeln(4*a.ColCount*'-'); var (su,sd,sl):=(0,0,0); for var i:=0 to n-1 do for var j:=0 to n-1 do if i<j then su+=a[i,j] else if i=j then sd+=a[i,j] else sl+=a[i,j]; Writeln('Суммы элементов:'); Writeln(' - верхней треугольной матрицы ',su); Writeln(' - главной диагонали ',sd); Writeln(' - нижней треугольной матрицы ',sl) end.
Пример Количество строк (столбцов) в матрице: 4 *** Исходная матрица *** -73 -89 4 39 77 -32 23 -45 -29 -70 -88 -40 -83 9 21 -46
Суммы элементов: - верхней треугольной матрицы -108 - главной диагонали -239 - нижней треугольной матрицы -75
"Школьный" вариант
const nn=20; { максимальный размер }
var a:array[1..nn,1..nn] of integer; i,j,n:integer; su,sd,sl:longint;
begin Write('Количество строк (столбцов) в матрице:'); Readln(n); Randomize; Writeln('*** Исходная матрица ***'); su:=0; sd:=0; sl:=0; for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=Random(199)-99; Write(a[i,j]:4); if i<j then su+=a[i,j] else if i=j then sd+=a[i,j] else sl+=a[i,j] end; Writeln end; Writeln('Суммыа элементов:'); Writeln(' - верхней треугольной матрицы ',su); Writeln(' - главной диагонали ',sd); Writeln(' - нижней треугольной матрицы ',sl) end.
#include <iostream>#include <cstdlib>#include <ctime>using namespace std;int main(){ srand(time(0)); int mas[5][5]; int sum=0,sum1=0,sum2=0; for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ mas[i][j]=10+rand()%50; } } for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ if(i==j)sum+=mas[i][j]; if(i>j)sum1+=mas[i][j]; if(i<j)sum2+=mas[i][j]; } } for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ cout<<mas[i][j]<<" "; } cout<<endl; } cout<<endl; cout<<sum<<" "<<sum1<<" "<<sum2<<endl; return 0;}
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('Количество строк (столбцов) в матрице:');
Writeln('*** Исходная матрица ***');
var a:=MatrRandom(n,n,-99,99);
a.Println(4); Writeln(4*a.ColCount*'-');
var (su,sd,sl):=(0,0,0);
for var i:=0 to n-1 do
for var j:=0 to n-1 do
if i<j then su+=a[i,j]
else
if i=j then sd+=a[i,j]
else sl+=a[i,j];
Writeln('Суммы элементов:');
Writeln(' - верхней треугольной матрицы ',su);
Writeln(' - главной диагонали ',sd);
Writeln(' - нижней треугольной матрицы ',sl)
end.
Пример
Количество строк (столбцов) в матрице: 4
*** Исходная матрица ***
-73 -89 4 39
77 -32 23 -45
-29 -70 -88 -40
-83 9 21 -46
Суммы элементов:
- верхней треугольной матрицы -108
- главной диагонали -239
- нижней треугольной матрицы -75
"Школьный" вариант
const
nn=20; { максимальный размер }
var
a:array[1..nn,1..nn] of integer;
i,j,n:integer;
su,sd,sl:longint;
begin
Write('Количество строк (столбцов) в матрице:');
Readln(n);
Randomize;
Writeln('*** Исходная матрица ***');
su:=0; sd:=0; sl:=0;
for i:=1 to n do begin
for j:=1 to n do begin
a[i,j]:=Random(199)-99;
Write(a[i,j]:4);
if i<j then su+=a[i,j]
else
if i=j then sd+=a[i,j]
else sl+=a[i,j]
end;
Writeln
end;
Writeln('Суммыа элементов:');
Writeln(' - верхней треугольной матрицы ',su);
Writeln(' - главной диагонали ',sd);
Writeln(' - нижней треугольной матрицы ',sl)
end.