Program ToDec;
Uses crt;
var s:string;
n,l,i:integer;
function Pow(x,y:integer):integer;
begin
if y>0 then Pow:=Pow(x,y-1)*x
else Pow:=1;
end;
function ToDec(A : string) : integer;
var L : Byte;
begin
if A = '' then ToDec := 0
else begin
L := length(A);
case A[1] of
'0' : ToDec := ToDec(Copy(A, 2, L - 1));
'1' : ToDec := Pow(2, L - 1) + ToDec(Copy(A, 2, L - 1));
end;
end;
end;
begin
clrscr;
write('Введите двоичное число: ');
readln(s);
writeln('Это число в десятичной системе : ', ToDec(S));
readkey;
end.
1₂ = 1₁₀
10₂ =2₁₀
11₂ = 3₁₀
100₂ = 4₁₀
101₂ = 5₁₀
110₂ = 6₁₀
111₂ = 7₁₀
1000₂ = 8₁₀
1001₂ = 9₁₀
1010₂ = 10₁₀
1011₂ = 11₁₀
1100₂ = 12₁₀
1101₂ = 13₁₀
1110₂ = 14₁₀
1111₂ = 15₁₀
это таблица для перевода координат точек в 10-ную систему
Объяснение:
1₂ = 1*2⁰ = 1₁₀
10₂ = 0*2⁰ + 1*2¹ = 2₁₀
11₂ = 1*2⁰ + 1*2¹ = 3₁₀
100₂ = 0*2⁰ + 0*2¹ + 1*2² = 4₁₀
101₂ = 1*2⁰ + 0*2¹ + 1*2² = 5₁₀
110₂ = 0*2⁰ + 1*2¹ + 1*2² = 6₁₀
111₂ = 1*2⁰ + 1*2¹ + 1*2² = 7₁₀
1000₂ = 0*2⁰ + 0*2¹ + 0*2² + 1*2³ = 8₁₀
1001₂ = 1*2⁰ + 0*2¹ + 0*2² + 1*2³ = 9₁₀
1010₂ = 0*2⁰ + 1*2¹ + 0*2² + 1*2³ = 10₁₀
1011₂ = 1*2⁰ + 1*2¹ + 0*2² + 1*2³ = 11₁₀
1100₂ = 0*2⁰ + 0*2¹ + 1*2² + 1*2³ = 12₁₀
1101₂ = 1*2⁰ + 0*2¹ + 1*2² + 1*2³ = 13₁₀
1110₂ = 0*2⁰ + 1*2¹ + 1*2² + 1*2³ = 14₁₀
1111₂ = 1*2⁰ + 1*2¹ + 1*2² + 1*2³ = 15₁₀
Номер 1
использовать Робот
алг
нач
нц пока сверху свободно
вверх
кц
нц пока сверху стена
закрасить
влево
кц
нц пока сверху не стена
влево
кц
нц пока сверху стена
закрасить
влево
кц
вверх
вправо
нц пока снизу стена
закрасить
вправо
кц
нц пока снизу не стена
вправо
кц
нц пока снизу стена
закрасить
вправо
кц
кон
Номер 2
использовать Робот
алг
нач
нц пока сверху стена
закрасить
влево
кц
вправо
нц пока сверху стена
если справа не свободно то
вправо
все
если справа свободно то
вправо
если сверху стена то
закрасить
все
все
кц
влево
нц пока снизу не стена
вниз
кц
нц пока слева не стена и снизу стена
закрасить
влево
кц
кон