Считать квадратичную матрицу А из файла: 1-поменять местами в матрице А две строки с заданными номерами 2-сформировать из элементов матрицы полученной в результате предыдущего преобразования нижнюю треугольную матрицу С 3-вычислить сумму положительных элементов под главной диагональю матрицы С- Pascal(Паскаль)

Пример файла

6
 10 -11  12  13 -14 14
  9   8  11  25  16 -5
 18  -5  10  33  20 -6
-20  12  15  20  25 12
 31  14 -26  65  23 23
 -5   6  12 -14   6 12
uses crt;
var f,g:text;
    a,c:array[1..20,1..20] of integer;
    n,i,j,s1,s2:byte;
    nf,ng:string;
    x,sm:integer;
begin
clrscr;
write('Имя файла для чтения: ');
readln(nf);
nf:=nf+'.txt';
assign(f,nf);
{$I-} reset(f);  {$I+}
if IOResult <> 0 then
 begin
  writeLn('Файл ',nf,' не найден!');
  writeLn('Работа программы завершена. Нажмите ENTER');
  readln;
  exit;
 end;
write('Имя файла для записи: ');
readln(ng);
ng:=ng+'.txt';
assign(g,ng);
rewrite(g);
read(f,n);
writeln('Матрица А:');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    read(f,a[i,j]);
    write(a[i,j]:4);
   end;
  writeln;
 end;
close(f);
repeat
writeln('Введите номера 2х разных строк для обмена от 1 до ',n);
readln(s1,s2);
until(s1 in [1..n])and(s2 in [1..n])and(s1<>s2);
for j:=1 to n do
 begin
  x:=a[s1,j];
  a[s1,j]:=a[s2,j];
  a[s2,j]:=x;
 end;
writeln('Матирица после обмена строк ',s1,' и ',s2);
for i:=1 to n do
 begin
  for j:=1 to n do
  write(a[i,j]:4);
  writeln;
 end;
writeln('Нижняя треугольная матрица С:');
writeln(g,'Niznyaya treugolnaya matrica C:');
sm:=0;
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    if j<=i then c[i,j]:=a[i,j]
    else c[i,j]:=0;
    write(c[i,j]:4);
    write(g,c[i,j]:4);
    if (j<i)and(c[i,j]>0) then sm:=sm+a[i,j];
   end;
  writeln;
  writeln(g);
 end;
writeln('Сумма положительных ниже главной диагонали=',sm);
writeln(g,'Summa polozitelnyh nize glavnoj diagonali=',sm);
close(g);
write('Нижняя треугольная матрица С записана в файл ',ng);
readln
end.

Выходной файл

Niznyaya treugolnaya matrica C:
  10   0   0   0   0   0
   9   8   0   0   0   0
  18  -5  10   0   0   0
 -20  12  15  20   0   0
  -5   6  12 -14   6   0
  31  14 -26  65  23  23
Summa polozitelnyh nize glavnoj diagonali=205

Leave a Comment

− 2 = 2