В матрице поменять местами две строки с заданными номерами - Turbo Pascal
Формулировка задачи:
Доброго времени суток. Прошу о помощи))
Выполнить над квадратной матрицей А порядка n последовательность действий, указанную в
задании.
а) В матрице А поменять местами две строки с заданными номерами;
б) сформировать из элементов полученной в результате предыдущего преобразования матрицы,
которые лежат на главной диагонали и под ней, нижнюю треугольную матрицу С;
в) вычислить сумму положительных элементов, расположенных под главной диагональю С.
Решение задачи: «В матрице поменять местами две строки с заданными номерами»
textual
Листинг программы
uses crt;
const nmax=10;
var a,c:array[1..nmax,1..nmax] of integer;
n,i,j,x,k1,k2,s:integer;
begin
clrscr;
randomize;
repeat
write('Размер матрицы от 2 до ',nmax,' n=');
readln(n);
until n in [2..nmax];
writeln('Исходная матрица:');
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=-5+random(11);
write(a[i,j]:3);
end;
writeln;
end;
repeat
writeln('Введите номера строк для обмена от 1 до ',n,' k1<>k2');
readln(k1,k2);
until(k1 in [1..n])and(k2 in [1..n])and(k1<>k2);
for j:=1 to n do
begin
x:=a[k1,j];
a[k1,j]:=a[k2,j];
a[k2,j]:=x;
end;
writeln('Обмен строк ',k1,' и ',k2);
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:3);
writeln;
end;
write('Нажмите Enter для продожения');
readln;
writeln('Нижнетреугольная матрица');
s:=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]:3);
if c[i,j]>0 then s:=s+c[i,j];
end;
writeln;
end;
write('Сумма положительных элементов=',s);
readln;
end.
Объяснение кода листинга программы
Этот код написан на языке Turbo Pascal и выполняет следующие действия:
- Запрашивает у пользователя размер матрицы и сохраняет его в переменной
n. - Создает двумерный массив
aразмеромnнаn, и заполняет его случайными числами от -5 до 5. - Выводит исходную матрицу
a. - Запрашивает у пользователя два номера строк для обмена, и проверяет, что они находятся в допустимом диапазоне от 1 до
n. - Меняет местами строки с заданными номерами в матрице
a. - Выводит обновленную матрицу
a. - Вычисляет сумму положительных элементов матрицы
c, гдеcявляется нижнетреугольной матрицей, полученной изa. - Выводит сумму положительных элементов.