Страница 1 из 1

Системы счисления

Добавлено: 26 окт 2009, 19:11
Яська
7. Написать программу преобразования введенного десятичного числа в восьмеричный формат

Re: циклическая структура в паскале. помогите написать программу

Добавлено: 26 окт 2009, 20:52
Angel666
Яська писал(а):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: если будут ошибки присылай скриншот, просто у меня не стоит паскаль, проверить не могу!!!

Re: циклическая структура в паскале. помогите написать программу

Добавлено: 27 окт 2009, 09:52
Хыиуду

Re: циклическая структура в паскале. помогите написать программу

Добавлено: 30 окт 2009, 08:50
atavin-ta
&quot писал(а):. Написать программу преобразования введенного десятичного числа в восьмеричный формат
Куда смотрят модераторы? Тема не соответсвует первому посту.

Re: Системы счисления

Добавлено: 30 окт 2009, 09:03
Хыиуду
Посмотрел, перенес, переименовал.

Re: Системы счисления

Добавлено: 30 окт 2009, 09:25
atavin-ta

Код: Выделить всё

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;
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
&quot писал(а):ошибки в синтаксисе
Не только в синтаксисе. Если res имеет числовой тип, то Write(res) выведет только в десятичном.

Re: Системы счисления

Добавлено: 30 окт 2009, 15:56
Angel666
atavin-ta писал(а):
Не только в синтаксисе. Если res имеет числовой тип, то Write(res) выведет только в десятичном.
Все прекрасно работает без ошибок, и выдает то что надо!!!

Re: Системы счисления

Добавлено: 02 ноя 2009, 10:19
Хыиуду
atavin-ta писал(а):

Код: Выделить всё

function Trans(x,y:integer):string
Можно было указать, что эта функция только для оснований не больше 10. Для всех остальных (до 36 включительно) надо поменять
s:=IntToStr(d)+s;
на
if d<10 then s:=IntToStr(d)+s
else s:=chr(ord('A')+d-10)+s;