Целая часть от деления Остаток от деления12 div 2 = 6 12 mod 2 = 06 div 2 = 3 6 mod 2 = 03 div 2 = 1 3 mod 2 = 11 div 2 = 0 1 mod 2 = 1Остаток от деления записываем в обратном порядке. Получаем число в 2-ой системе счисления: 1100 12 = 1100|2 Для перевода дробной части числа последовательно умножаем дробную часть на основание 2. В результате каждый раз записываем целую часть произведения. 0.75*2 = 1.5 (целая часть 1) 0.5*2 = 1 (целая часть 1) 0*2 = 0 (целая часть 0) 0*2 = 0 (целая часть 0) Получаем число в 2-ой системе счисления: 1100 0.75 = 1100|2 В итоге получаем число: 1100.1100|2
Const m=5; n=6; var a:array[1..m,1..n] of integer; i,j,max,imax,jmax,min,imin,jmin:integer; begin Randomize; writeln('Исходный массив:'); for i:=1 to m do begin for j:=1 to n do begin a[i,j]:=random(100); write(a[i,j]:4); end; writeln; end; max:=a[1,1]; imax:=1; jmax:=1; min:=a[1,1]; imin:=1; jmin:=1; for i:=1 to m do for j:=1 to n do begin if a[i,j]>max then begin max:=a[i,j]; imax:=i; jmax:=j; end; if a[i,j]<min then begin min:=a[i,j]; imin:=i; jmin:=j; end; end; writeln('max = a[',imax,',',jmax,'] = ',max); writeln('min = a[',imin,',',jmin,'] = ',min); a[imax,jmax]:=min; a[imin,jmin]:=max; writeln('Полученный массив:'); for i:=1 to m do begin for j:=1 to n do write(a[i,j]:4); writeln; end; end.
12 = 1100|2
Для перевода дробной части числа последовательно умножаем дробную часть на основание 2. В результате каждый раз записываем целую часть произведения.
0.75*2 = 1.5 (целая часть 1)
0.5*2 = 1 (целая часть 1)
0*2 = 0 (целая часть 0)
0*2 = 0 (целая часть 0)
Получаем число в 2-ой системе счисления: 1100
0.75 = 1100|2
В итоге получаем число: 1100.1100|2
var
a:array[1..m,1..n] of integer;
i,j,max,imax,jmax,min,imin,jmin:integer;
begin
Randomize;
writeln('Исходный массив:');
for i:=1 to m do
begin
for j:=1 to n do
begin
a[i,j]:=random(100);
write(a[i,j]:4);
end;
writeln;
end;
max:=a[1,1]; imax:=1; jmax:=1;
min:=a[1,1]; imin:=1; jmin:=1;
for i:=1 to m do
for j:=1 to n do
begin
if a[i,j]>max then begin max:=a[i,j]; imax:=i; jmax:=j; end;
if a[i,j]<min then begin min:=a[i,j]; imin:=i; jmin:=j; end;
end;
writeln('max = a[',imax,',',jmax,'] = ',max);
writeln('min = a[',imin,',',jmin,'] = ',min);
a[imax,jmax]:=min;
a[imin,jmin]:=max;
writeln('Полученный массив:');
for i:=1 to m do
begin
for j:=1 to n do write(a[i,j]:4);
writeln;
end;
end.
Пример:
Исходный массив:
69 2 25 92 32 43
98 77 49 29 48 5
30 8 95 83 37 83
31 6 47 91 82 65
86 31 62 70 82 38
max = a[2,1] = 98
min = a[1,2] = 2
Полученный массив:
69 98 25 92 32 43
2 77 49 29 48 5
30 8 95 83 37 83
31 6 47 91 82 65
86 31 62 70 82 38