Системы счисления
7. Написать программу преобразования введенного десятичного числа в восьмеричный формат
Яська писал(а):7. Написать программу преобразования введенного десятичного числа в восьмеричный формат
x - это число которое переводим, y - это формат в который переводим.
Код: Выделить всё
program perevod;
uses crt;
var x, y, rez, k: integer;
begin
clrscr;
writeln ('vvedite x, y');
readln (x, y);
rez:=0;
k:=1;
while x >= y do
begin
rez:=rez + k*(x mod y);
x:= x div y;
k:=k*10;
end;
rez:=rez + k*x;
writeln(rez);
readln;
end.

PS: если будут ошибки присылай скриншот, просто у меня не стоит паскаль, проверить не могу!!!
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Куда смотрят модераторы? Тема не соответсвует первому посту." писал(а):. Написать программу преобразования введенного десятичного числа в восьмеричный формат
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Посмотрел, перенес, переименовал.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Код: Выделить всё
function Trans(x,y:integer):string
var i,b,d,z:integer;
s:string;
begin
if y<=1 then Trans:='Не допустимое основание' else
begin
b:=x;
if (b<0) then z:=-1 else z:=1;
s:='';
b:=abs(b);
repeat
d:=b mod y;
b:=b div y;
s:=IntToStr(d)+s;
until (b=0)
end;
if z<0 then s:='-'+s;
Trans:=s;
end;
Добавлено сообщение
--------------------------------------------------------------------------------
Не только в синтаксисе. Если res имеет числовой тип, то Write(res) выведет только в десятичном." писал(а):ошибки в синтаксисе
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Все прекрасно работает без ошибок, и выдает то что надо!!!atavin-ta писал(а):
Не только в синтаксисе. Если res имеет числовой тип, то Write(res) выведет только в десятичном.
Можно было указать, что эта функция только для оснований не больше 10. Для всех остальных (до 36 включительно) надо поменятьatavin-ta писал(а):Код: Выделить всё
function Trans(x,y:integer):string
s:=IntToStr(d)+s;
на
if d<10 then s:=IntToStr(d)+s
else s:=chr(ord('A')+d-10)+s;
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.