Другие языки программирования и технологии

Написать программу в паскале и составить блок схему

Дана прямоугольная матрица размером m*n . Определить номер строки, сумма элементов которой максимальна, и поменять местами эту строку и последнюю строку матрицы. Если данная строка оказалась последней, выдать на экран сообщение, о том, что менять строки местами не нужно.
Примечание: размеры матриц вводятся с клавиатуры и не должны превышать 10*10 ; при вводе соответствующего элемента матрицы на экране должен высвечиваться его номер. Сразу после окончания ввода должна быть осуществлена очистка экрана, и введённая матрица (матрицы) должна быть выведена на экран в прямоугольном виде. Если в результате выполнения программы получена новая матрица, она должна быть выведена на экран также в прямоугольном виде.
Alex Alex
Alex Alex
405
uses crt;
var i, j, m, n, i_max: byte;
a: array [1..11, 1..11] of byte;
begin
write ('m = ');
readln (m);
write ('n = ');
readln (n);
i_max:=1;
{ввод}
for i:=1 to m do
begin
for j:=1 to n do
begin
write ('a[',i,',',j,']=');
readln (a[i,j]);
a[i,n+1]:=a[i,n+1]+a[i,j];
end;
if a[i,n+1] > a[i_max,n+1] then i_max := i;
end;
{вывод}
clrscr;
for i:=1 to m do
begin
for j:=1 to n do write (a[i,j]:2);
writeln;
end;
writeln ('_'*2*n) ;
if i_max = m then writeln ('Менять строки не имеет смысла.')
else
begin
for j:=1 to n do
begin
a[m+1,j]:=a[i_max, j];
a[i_max, j]:=a[m,j];
a[m,j]:=a[m+1,j];
end;
for i:=1 to m do
begin
for j:=1 to n do write (a[i,j]:2);
writeln;
end;
end;
end.
Иван Вагин
Иван Вагин
20 124
Лучший ответ
вот программа, переделай, не получится - пиши
program massiv;
uses crt;
type matr= array[1..100,1..100] of integer;
procedure vvod(var c:matr; n,m:integer); //---------------------------------
var i,j:integer;
begin
for i:=1 to n do
for j:=1 to m do
c[i,j]:=random(101);
end; //----------------------------------------------------
procedure vivod( c:matr; n,m:integer);
var i,j:integer;
begin
for i:=1 to n do begin
for j:=1 to m do
write(c[i,j]:3);
writeln; end;
end; //-------------------------------------------------
var
i,j,n,m:integer;
a:matr;
BEGIN
randomize;
clrscr;
writeln('Zadacha na massiv ');
writeln('---------------------------');
writeln;
write('Vvesti N and M: ');
readln(n,m);
writeln('Massiv A: ');
{ for i:=1 to n do begin
for j:=1 to m do begin
a[i,j]:=random(101);
write(a[i,j]:3);
end;
writeln; end; }
vvod(a,n,m);
vivod(a,n,m);
end.
Alex Alex определить номер строки, сумма элементов которой максимальна, и поменять местами эту строку и последнюю строку матрицы. Если данная строка оказалась последней, выдать на экран сообщение, о том, что менять строки местами не нужно.
А с этим как?