Фортран, . составить подпрограмму формирования вектора из максимальных отрицательных элементов столбцов вещественной матрицы. с этой подпрограммы сформировать указанные вектора из матрицы а(-3: 3,-4: 2)
Const n=4; m=5; var a:array [1..n,1..m] of integer; i,j,min,imin,jmin:integer; begin Randomize; Writeln('Исходный массив:'); for i:=1 to n do begin for j:=1 to m do begin a[i,j]:=random(21)-10; write(a[i,j]:6); end; writeln; end; min:=a[1,1]; imin:=1;jmin:=1; for i:=1 to n do for j:=1 to m do if a[i,j]<min then begin min:=a[i,j]; imin:=i; jmin:=j; end; writeln('min=a[',imin,',',jmin,']=',min); end.
Если элементы массива идут по возрастанию, то вот так
program wstawka; uses crt; const min=1; max=20; type zona=min..max; massiw=array[zona] of integer; var mas:massiw; i,j:zona; a,N,M:integer; T:boolean; BEGIN randomize; clrscr; N:=random(20); writeln('4ucJlo N = ',N); M:=random(20); Writeln('4ucJlo M = ',M); for i:=min to max-2 do begin mas[i+1]:=mas[i]+random(5); write(mas[i],' '); end; for i:=min to max-2 do if (mas[i]>N) and (t=false) then begin t:=true; a:=mas[i]; mas[i]:=N; for j:=i+1 to max do begin N:=mas[j]; mas[j]:=a; a:=N; end; end; for i:=min to max-1 do if (mas[i]>M) and (t=true) then begin t:=false; a:=mas[i]; mas[i]:=M; for j:=i+1 to max do begin M:=mas[j]; mas[j]:=a; a:=M; end; end; writeln; for i:=min to max do write(mas[i],' '); readkey; END.
var a:array [1..n,1..m] of integer;
i,j,min,imin,jmin:integer;
begin
Randomize;
Writeln('Исходный массив:');
for i:=1 to n do
begin
for j:=1 to m do begin
a[i,j]:=random(21)-10;
write(a[i,j]:6);
end;
writeln;
end;
min:=a[1,1]; imin:=1;jmin:=1;
for i:=1 to n do
for j:=1 to m do
if a[i,j]<min then
begin min:=a[i,j]; imin:=i; jmin:=j; end;
writeln('min=a[',imin,',',jmin,']=',min);
end.
Пример:
Исходный массив:
5 8 2 -5 -4
1 -10 9 1 -4
8 2 -6 -4 -4
8 7 3 2 2
min=a[2,2]=-10
program wstawka;
uses crt;
const min=1;
max=20;
type zona=min..max;
massiw=array[zona] of integer;
var mas:massiw;
i,j:zona;
a,N,M:integer;
T:boolean;
BEGIN randomize;
clrscr; N:=random(20);
writeln('4ucJlo N = ',N);
M:=random(20); Writeln('4ucJlo M = ',M);
for i:=min to max-2 do
begin
mas[i+1]:=mas[i]+random(5);
write(mas[i],' ');
end;
for i:=min to max-2 do
if (mas[i]>N) and (t=false) then
begin
t:=true;
a:=mas[i];
mas[i]:=N;
for j:=i+1 to max do
begin
N:=mas[j];
mas[j]:=a;
a:=N;
end;
end;
for i:=min to max-1 do
if (mas[i]>M) and (t=true) then
begin
t:=false;
a:=mas[i];
mas[i]:=M;
for j:=i+1 to max do
begin
M:=mas[j];
mas[j]:=a;
a:=M;
end;
end;
writeln;
for i:=min to max do
write(mas[i],' ');
readkey;
END.