Составьте программу на Паскале, переводящую дробное недесятичное число с основанием р в десятичную систему счисления. р больше или равно двум, меньше или равно девяти
program ConvertFractionalNumber; var number: real; base, integerPart: integer; fractionalPart: real; begin write('Введите дробное число: '); read(number); write('Введите основание системы счисления (от 2 до 9): '); read(base); integerPart := trunc(number); // извлекаем целую часть fractionalPart := number - integerPart; // извлекаем дробную часть // переводим целую часть в десятичную систему writeln('Целая часть:'); while integerPart > 0 do begin write(integerPart mod 10); integerPart := integerPart div 10; end; // переводим дробную часть в десятичную систему writeln; writeln('Дробная часть:'); for integerPart := 1 to 10 do begin fractionalPart := fractionalPart * base; write(trunc(fractionalPart)); fractionalPart := fractionalPart - trunc(fractionalPart); end; end.
Пример работы программы:
Введите дробное число: 3.14159 Введите основание системы счисления (от 2 до 9): 2 Целая часть: 11 Дробная часть: 0010010000
Данная программа переводит дробное число 3.14159 из двоичной системы счисления в десятичную.
Программа на Паскале:
program ConvertFractionalNumber;var
number: real;
base, integerPart: integer;
fractionalPart: real;
begin
write('Введите дробное число: ');
read(number);
write('Введите основание системы счисления (от 2 до 9): ');
read(base);
integerPart := trunc(number); // извлекаем целую часть
fractionalPart := number - integerPart; // извлекаем дробную часть
// переводим целую часть в десятичную систему
writeln('Целая часть:');
while integerPart > 0 do
begin
write(integerPart mod 10);
integerPart := integerPart div 10;
end;
// переводим дробную часть в десятичную систему
writeln;
writeln('Дробная часть:');
for integerPart := 1 to 10 do
begin
fractionalPart := fractionalPart * base;
write(trunc(fractionalPart));
fractionalPart := fractionalPart - trunc(fractionalPart);
end;
end.
Пример работы программы:
Введите дробное число: 3.14159Введите основание системы счисления (от 2 до 9): 2
Целая часть:
11
Дробная часть:
0010010000
Данная программа переводит дробное число 3.14159 из двоичной системы счисления в десятичную.