Вопрос задан 23.07.2023 в 17:17. Предмет Информатика. Спрашивает Жардецкий Игорь.

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

0 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

0 0
Отвечает Леготин Никита.

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


0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для создания функции на языке Pascal, которая будет переводить числа из двоичной системы в десятичную, и прерываться, когда пользователь введет 0, можно использовать следующий код:

pascal
program BinaryToDecimal; function BinToDec(binaryStr: string): Integer; var i, len, power, decimal: Integer; begin len := Length(binaryStr); decimal := 0; power := 1; for i := len downto 1 do begin if binaryStr[i] = '1' then decimal := decimal + power; power := power * 2; end; Result := decimal; end; var binaryInput: string; decimalOutput: Integer; begin writeln('Введите двоичное число (для выхода введите 0):'); repeat readln(binaryInput); if binaryInput = '0' then break; decimalOutput := BinToDec(binaryInput); writeln('Десятичное представление: ', decimalOutput); writeln('Введите еще одно двоичное число (для выхода введите 0):'); until false; end.

Этот код определяет функцию BinToDec, которая принимает строку с двоичным числом и возвращает его десятичное представление. Затем основная часть программы запрашивает у пользователя ввод двоичных чисел, переводит их в десятичное представление с помощью функции BinToDec и выводит результат. Программа будет выполняться до тех пор, пока пользователь не введет 0.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос