function binToDec(s:string):integer;
var a,d,i:integer;
begin
a:=0;
d:=1;
for i:=length(s) downto 1 do
begin
if s[i]='1' then a:=a+d;
d:=2*d;
end;
binTodec:=a;
end;
var dv: string; fl:boolean; i:integer;
begin
write('Введите двоичное число: ');
readln(dv);
while dv<>'0' do
begin
fl:=true;
for i:=1 to length(dv) do
fl:=fl and (dv[i] in ['0','1']);
if fl then writeln(dv,'(2) = ',binToDec(dv),'(10)')
else writeln('Ошибка ввода');
write('Введите двоичное число:');
readln(dv);
end;
end.
Пример:
Введите двоичное число: 123
Ошибка ввода
Введите двоичное число:10101
10101(2) = 21(10)
Введите двоичное число:0