Gennady
Гений
(60626)
14 лет назад
Доброго времени суток.
Пока число больше нуля, в цикле делите его на основание системы (в вашем случае, 7) и записываете остатки справа на лево. Остаток от деления одного числа на другое находятся при помощи функции MOD (o := N mod 7;)
Удачи!
2 DVN: Нужна операция целочисленного деления div, а это d:= d/7; даст вещественное число. Плюс операция деления по модулю не применима к вещественным числам.
Виталий Дедюрин
Профи
(755)
14 лет назад
ИСПРАВЛЕННОЕ:
program ddd;
var
d,s,rez:integer
BEGIN
s:=0;
rez:=0;
Writeln('Введите число: ');
real(d);
while d>6 do
begin
s:= d mod 7;
d:= d div 7;
rez:= rez*10+ s;
end;
writeln('число в семеричной системе счисления: ' + rez);
read;
END.
Илья Павлов
Мыслитель
(7471)
14 лет назад
Программа может переводить из х10 в любую сс, по умолчанию х7:
program x7;
var
Res: String;
SBuf: String;
Value: Integer;
SSBase: Integer;
begin
Res := '';
SBuf := '';
Value := 0;
SSBase := 7; // Основание новой сс. Не обязательно 7.
Write('Input x10 Digit: ');
ReadLn(Value);
while(Value > 0) do
begin
Str(Value mod SSBase, SBuf);
Res := SBuf + Res;
Value := Value div SSBase;
end;
WriteLn('x', SSBase, ' Digit = ', Res);
ReadLn;
end.
З. Ы. : код, предложенный в первом ответе проверил, но у меня он не заработал. Тип Real там ни к чему
Написать программу перевода десятичного целого положительного числа в сиситему счисления с основанием 7.
СПАСИБО ЗАРАНЕЕ!!!!