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


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

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



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



Для создания функции на языке Pascal, которая будет переводить числа из двоичной системы в десятичную, и прерываться, когда пользователь введет 0, можно использовать следующий код:
pascalprogram 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.


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







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili