Procedure Dec2Oct(n:longint); { Перевод натурального десятичного n в восьмеричную систему счисления и вывод результата } const alpha = '01234567'; var s: string; i:integer; begin s := ''; while n > 0 do begin s := alpha[(n mod 8) + 1] + s; n := n div 8 end; for i:=Length(s) to 9 do s:='0'+s; Write(s) end;
{ Использование } var x:longint; begin Write('Введите десятичное число: '); Read(x); Write('В восьмеричной системе счисления: '); Dec2Oct(x); Writeln end.
Тестовое решение: Введите десятичное число: 1234567 В восьмеричной системе счисления: 0004553207
Началось все с самого простого калькулятора, который мог переводить из десятичной системы счисления в двоичную, восьмиричную и шестнадцатеричную. Потом один из пользователей запросил возможность переводить число из десятичной системы счисления в схему с любым другим основанием. Так появился калькулятор в котором можно было указывать основание системы счисления в которую надо перевести десятичное число. Вводится число FF, вводится основание системы счисления этого числа - 16. Потом, основание системы счисления, в которую надо переобразовать , это число- 10. Получается результат 255 в десятичной системе счисления.
{ Перевод натурального десятичного n в восьмеричную систему счисления
и вывод результата }
const
alpha = '01234567';
var
s: string;
i:integer;
begin
s := '';
while n > 0 do begin
s := alpha[(n mod 8) + 1] + s;
n := n div 8
end;
for i:=Length(s) to 9 do s:='0'+s;
Write(s)
end;
{ Использование }
var
x:longint;
begin
Write('Введите десятичное число: '); Read(x);
Write('В восьмеричной системе счисления: ');
Dec2Oct(x);
Writeln
end.
Тестовое решение:
Введите десятичное число: 1234567
В восьмеричной системе счисления: 0004553207