хелп! использовать подпрограммы (ввода, вывода, обрабатывающей части). дан массив целых чисел в(m,n), n,m< =10. переставить столбцы с максимальным и минимальным значениями суммы квадратов их элементов. предмет (программирование) pascalabc
Const m=5; n=6; type arr=array[1..m,1..n] of integer; procedure p1(var a:arr); var i,j:integer; begin for i:=1 to m do for j:=1 to n do a[i,j]:=random(51); end; procedure p2(var a:arr); var i,j:integer; begin for i:=1 to m do begin for j:=1 to n do write(a[i,j]:4); writeln; end; end; procedure p3(var a:arr); var i,j,s,max,min,jmax,jmin,c:integer; begin max:=0; min:=m*50*50; for j:=1 to n do begin s:=0; for i:=1 to m do s:=s+a[i,j]*a[i,j]; if s>max then begin max:=s; jmax:=j; end; if s<min then begin min:=s; jmin:=j; end; end; writeln('jmax = ',jmax,' jmin = ',jmin); for i:=1 to m do begin c:=a[i,jmax]; a[i,jmax]:=a[i,jmin]; a[i,jmin]:=c; end; end;
var b:arr; begin Randomize; p1(b); writeln('Исходный массив:'); p2(b); p3(b); writeln('Полученный массив:'); p2(b); end.
type arr=array[1..m,1..n] of integer;
procedure p1(var a:arr);
var i,j:integer;
begin
for i:=1 to m do
for j:=1 to n do a[i,j]:=random(51);
end;
procedure p2(var a:arr);
var i,j:integer;
begin
for i:=1 to m do
begin
for j:=1 to n do write(a[i,j]:4);
writeln;
end;
end;
procedure p3(var a:arr);
var i,j,s,max,min,jmax,jmin,c:integer;
begin
max:=0; min:=m*50*50;
for j:=1 to n do
begin
s:=0;
for i:=1 to m do s:=s+a[i,j]*a[i,j];
if s>max then begin max:=s; jmax:=j; end;
if s<min then begin min:=s; jmin:=j; end;
end;
writeln('jmax = ',jmax,' jmin = ',jmin);
for i:=1 to m do
begin
c:=a[i,jmax]; a[i,jmax]:=a[i,jmin]; a[i,jmin]:=c;
end;
end;
var
b:arr;
begin
Randomize;
p1(b);
writeln('Исходный массив:');
p2(b);
p3(b);
writeln('Полученный массив:');
p2(b);
end.
Пример:
Исходный массив:
34 47 38 31 18 19
12 0 43 30 2 33
20 49 43 16 45 14
31 32 29 30 50 26
44 32 30 50 1 23
jmax = 3 jmin = 6
Полученный массив:
34 47 19 31 18 38
12 0 33 30 2 43
20 49 14 16 45 43
31 32 26 30 50 29
44 32 23 50 1 30