Есть ответ 👍

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

167
472
Посмотреть ответы 3

Ответы на вопрос:

Shady2002
4,6(27 оценок)

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


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


Бит, байт, гигабайт, мегабайт

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS