4. Напишите функцию kbdn, которая вычисляет количество цифр в двоичной записи вводимого десятичного числа.
Ответ
Вот пример функции kbdn, которая вычисляет количество цифр в двоичной записи вводимого десятичного числа в Паскаль:
function kbdn(number: integer): integer;
var
count: integer;
begin
count := 0;
if number = 0 then
count := 1
else
begin
while number <> 0 do
begin
count := count + 1;
number := number div 2;
end;
end;
kbdn := count;
end;
В этой функции используется цикл «while», чтобы последовательно делить число на 2 и увеличивать счетчик, пока оно не станет равным 0. Каждое деление на 2 удаляет одну цифру числа в двоичной записи, пока все цифры не будут удалены.
Применение функции kbdn осуществляется присвоением возвращаемого значения функции переменной, например:
var
num, digits: integer;
begin
write('Введите десятичное число: ');
readln(num);
digits := kbdn(num);
writeln('Количество цифр в двоичной записи: ', digits);
end.
В этом примере программа сначала запрашивает у пользователя ввод десятичного числа, затем вызывает функцию kbdn для вычисления количества цифр в его двоичной записи и выводит результат на экран.