Число 55(16). Нумеруем сверху 55 каждую цифру, начиная с справа и с нуля. Над первой справа пятёркой пишем 0, над второй - 1. Чтобы перевести в десятичную, умножаем:
5 на основание системы счисления в степени, которую мы указали над числом. В данном случае, это 1.
Потом приплюсовываем следующее произведение: 5 умножаем на 16 в степени 0. Сумма будет являться десятичным числом:
55(16)=5*16^1+5*16^0=80+5=85(10)
Перевод из 8-ричной СС в 10-чную:
Число 222(8). Нумеруем сверху 222 каждую цифру, начиная с справа и с нуля. Над первой справа двойкой пишем 0, над второй - 1, над третьей - 2. Чтобы перевести в десятичную, умножаем:
2 на основание системы счисления в степени, которую мы указали над числом. В данном случае, это 2.
Потом приплюсовываем следующее произведение: 2 умножаем на 8 в степени 1. Потом приплюсовываем следующее произведение: 2 умножаем на 8 в степени 0. Сумма будет являться десятичным числом:
222(8)=2*8^2+2*8^1+2*8^0=128+16+2=146(10)
Перевод из 2-ичной СС в 10-чную:
Число 1111(2). Нумеруем сверху 1111 каждую цифру, начиная с справа и с нуля. Над первой справа единицей пишем 0, над второй - 1, над третьей - 2, над четвёртой - 3. Чтобы перевести в десятичную, умножаем:
1 на основание системы счисления в степени, которую мы указали над числом. В данном случае, это 3.
Потом приплюсовываем следующее произведение: 1 умножаем на 2 в степени 2. Потом приплюсовываем следующее произведение: 1 умножаем на 2 в степени 1. Потом приплюсовываем следующее произведение: 1 умножаем на 2 в степени 0. Сумма будет являться десятичным числом:
Const n=20; var a:array[1..n]of integer; i,b,k,c,f,g,h:integer; begin for i:=1 to n do a[i]:=Random(70)-20; for i:=1 to n do write(a[i],' '); writeln; for i:=1 to n do begin if (a[i] mod 5 = 0) and (a[i] mod 10<>0) or (a[i]=50) then begin b:=i; for b:=i to (n-1) do a[i]:=a[i+1]; end; end; for i:=1 to n do write(a[i],' '); write('введите к '); read(k); for i:=1 to n do begin if a[i] mod i = 0 then begin c:=i; for i:=n downto c+1 do begin a[i]:=a[i-1]; a[c+1]:=k; end;end;end; for i:=1 to n do write(a[i],' '); writeln; f:=0; g:=0; for i:=n downto 1 do begin if (a[i]>0) then f:=i; end; if a[f]=0 then write('нет положительных '); for i:=n downto 1 do begin if (a[i]<0) then g:=i; end; if (a[g]=0) then write('нет отрицательных '); if (a[f]<>0) and (a[g]<>0) then begin h:=a[f]; a[f]:=a[g]; a[g]:=h; end; for i:=1 to n do write(a[i],' '); writeln; end.
146
Объяснение:
Перевод из 16-ричной СС в 10-чную:
Число 55(16). Нумеруем сверху 55 каждую цифру, начиная с справа и с нуля. Над первой справа пятёркой пишем 0, над второй - 1. Чтобы перевести в десятичную, умножаем:
5 на основание системы счисления в степени, которую мы указали над числом. В данном случае, это 1.
Потом приплюсовываем следующее произведение: 5 умножаем на 16 в степени 0. Сумма будет являться десятичным числом:
55(16)=5*16^1+5*16^0=80+5=85(10)
Перевод из 8-ричной СС в 10-чную:
Число 222(8). Нумеруем сверху 222 каждую цифру, начиная с справа и с нуля. Над первой справа двойкой пишем 0, над второй - 1, над третьей - 2. Чтобы перевести в десятичную, умножаем:
2 на основание системы счисления в степени, которую мы указали над числом. В данном случае, это 2.
Потом приплюсовываем следующее произведение: 2 умножаем на 8 в степени 1. Потом приплюсовываем следующее произведение: 2 умножаем на 8 в степени 0. Сумма будет являться десятичным числом:
222(8)=2*8^2+2*8^1+2*8^0=128+16+2=146(10)
Перевод из 2-ичной СС в 10-чную:
Число 1111(2). Нумеруем сверху 1111 каждую цифру, начиная с справа и с нуля. Над первой справа единицей пишем 0, над второй - 1, над третьей - 2, над четвёртой - 3. Чтобы перевести в десятичную, умножаем:
1 на основание системы счисления в степени, которую мы указали над числом. В данном случае, это 3.
Потом приплюсовываем следующее произведение: 1 умножаем на 2 в степени 2. Потом приплюсовываем следующее произведение: 1 умножаем на 2 в степени 1. Потом приплюсовываем следующее произведение: 1 умножаем на 2 в степени 0. Сумма будет являться десятичным числом:
1111(2)=1*2^3+1*2^2+1*2^1+1*2^0=8+4+2+1=15(10)
var a:array[1..n]of integer;
i,b,k,c,f,g,h:integer;
begin
for i:=1 to n do a[i]:=Random(70)-20;
for i:=1 to n do
write(a[i],' ');
writeln;
for i:=1 to n do begin
if (a[i] mod 5 = 0) and (a[i] mod 10<>0) or (a[i]=50) then begin
b:=i;
for b:=i to (n-1) do
a[i]:=a[i+1];
end; end;
for i:=1 to n do
write(a[i],' ');
write('введите к ');
read(k);
for i:=1 to n do begin
if a[i] mod i = 0 then begin
c:=i;
for i:=n downto c+1 do begin
a[i]:=a[i-1];
a[c+1]:=k;
end;end;end;
for i:=1 to n do
write(a[i],' ');
writeln;
f:=0; g:=0;
for i:=n downto 1 do begin
if (a[i]>0) then f:=i;
end;
if a[f]=0 then write('нет положительных ');
for i:=n downto 1 do begin
if (a[i]<0) then g:=i;
end;
if (a[g]=0) then write('нет отрицательных ');
if (a[f]<>0) and (a[g]<>0) then begin
h:=a[f]; a[f]:=a[g]; a[g]:=h; end;
for i:=1 to n do
write(a[i],' ');
writeln;
end.