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.
5E_16 = 0101 1110_2 (каждая цифра в 16-ой сс соответствует четырёх цифрам в 2 сс)
111011_2 = 0011 1011_2
117_8 = 001 001 111_2 = 0100 1111_2 (каждая цифра 8сс соответствует трём цифрам в 2сс)
215_10 = 128 + 64 + 16 + 4 + 2 + 1 = 2^7 + 2^6 + 2^4 + 2^2 + 2^1 + 2^0 = 1101 0111_2.
Итак, надо сравнить 0101 1110, 0011 1011, 0100 1111, 1101 0111.
0011 1011 < 0100 1111 < 0101 1110 < 1101 0111
111011_2 < 117_8 < 5E_16 < 215_10
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