У исполнителя Калькулятор три команды, которым присвоены номера: 1. прибавь 1 2. прибавь 3 3. умножь на 2 Сколько есть программ, которые число 3 преобразуют в число 15?
Вот такая программа позволяет инвертировать нечётные биты во введённом 16-ти разрядном числе (тип word).
Если что, счёт битов я брал начиная с нуля. Поэтому, младший бит (нулевой) считается чётным. Если вдруг у вас там принято считать биты начиная с единицы, то младший будет нечётным, и тогда в строке где b := 2; надо поставить единицу вместо двух.
Также, я сделал отображение всех 16 разрядов введённого числа, и числа которое получилось после инверсии битов (то есть, число выводится в двоичном виде, начиная со старших разрядов). Это сделано для удобства проверки работы программы.
После проверки лучше удалить эти две строки (они выделены жирным шрифтом), ведь в задании не сказано выводить числа в двоичном виде.
b:=32768;for n:=15 downto 0 do begin write((a mod(b*2))div b);b:=b div 2;end;writeln();
b := 2;
for n := 0 to 7 do
begin
if (a mod (b * 2)) div b = 0
then a := a + b
else a := a - b;
b := b * 4;
end;
b:=32768;for n:=15 downto 0 do begin write((a mod(b*2))div b);b:=b div 2;end;writeln();
writeln('После инверсии нечётных битов: a= ', a);
end.
ViktorovnaLarin
05.11.2022
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.
У исполнителя Калькулятор три команды, которым присвоены номера: 1. прибавь 1 2. прибавь 3 3. умножь на 2 Сколько есть программ, которые число 3 преобразуют в число 15?
Вот такая программа позволяет инвертировать нечётные биты во введённом 16-ти разрядном числе (тип word).
Если что, счёт битов я брал начиная с нуля. Поэтому, младший бит (нулевой) считается чётным. Если вдруг у вас там принято считать биты начиная с единицы, то младший будет нечётным, и тогда в строке где b := 2; надо поставить единицу вместо двух.
Также, я сделал отображение всех 16 разрядов введённого числа, и числа которое получилось после инверсии битов (то есть, число выводится в двоичном виде, начиная со старших разрядов). Это сделано для удобства проверки работы программы.
После проверки лучше удалить эти две строки (они выделены жирным шрифтом), ведь в задании не сказано выводить числа в двоичном виде.
var
a, b, n: word;
begin
write('Введите целое неотрицательное число: a= ');
readln(a);
b:=32768;for n:=15 downto 0 do begin write((a mod(b*2))div b);b:=b div 2;end;writeln();
b := 2;
for n := 0 to 7 do
begin
if (a mod (b * 2)) div b = 0
then a := a + b
else a := a - b;
b := b * 4;
end;
b:=32768;for n:=15 downto 0 do begin write((a mod(b*2))div b);b:=b div 2;end;writeln();
writeln('После инверсии нечётных битов: a= ', a);
end.