• написать функцию, которая переводит из дваичной системы в 10 пока пользователь не введёт 0.
    Pascal

Ответы 2

  • function decbin(n: int64): int64;

    var k,m: int64;

        priz: boolean;

    begin

     k:=1;  m:=0;

     priz:=true;

     repeat

       if (n mod 10)>1 then

       begin

         writeln('недопустимый ввод - цифра ',n mod 10);

         priz:=false;

         break;

       end;      

       m:=m+k*(n mod 10);

       n:=n div 10;

       k:=k*2;  

     until n=0;  

     if priz then decbin:=m

     else decbin:=-1;

    end;

    // основная программа

    var n,k: int64;

    begin

     repeat

       readln(n);

       if n=0 then break

       else

       begin

         k:=decbin(n);

         if k>0 then writeln('десятичное число: ',k);

       end;  

     until false;  

    end.

    1011100011210

    недопустимый ввод - цифра 2

    11101101

    десятичное число: 237

    11111111

    десятичное число: 255

    0

    • Автор:

      zeus44
    • 6 лет назад
    • 0
  • 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

    • Автор:

      omariwshs
    • 6 лет назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years