11.11.2007, 00:26
общий
это ответ
Здравствуйте, Мироненко Николай Николаевич!
<b>Программа перевода из двоичной в восьмиичную:</b>
<code>const masBin: array[0..7] of string[3]=
(‘000‘,‘001‘,‘010‘,‘011‘,
‘100‘,‘101‘,‘110‘,‘111‘);
var c8,c2,v,d:string;
i:integer;
begin
write(‘BIN=‘);read(c2);
c8:=‘‘;
for i:=1 to length(c2) mod 3 do c2:=‘0‘+c2; <font color=green>{если число не состоит из полных триад, то дополняем его ведущими нулями}</font>
while length(c2) > 2 do
begin
v:=copy(c2,length(c2)-2,3); <font color=green>{вырезаем из числа триаду (набор из трех символов)}</font>
i:=0;
while v<>masBin[i] do inc(i); <font color=green>{выбираем из массива номер соответствующего элемента}</font>
str(i,d);
c8:=d+c8; <font color=green>{непосредственно формируем число}</font>
delete(c2,length(c2)-2,3);
end;
write(‘OCT=‘,c8); <font color=green>{выводим число в 8-чной системе счисления}</font>
readln;
end.</code>
<b>Программа перевода из восьмиичной в двоичную:</b>
<code>const masBin: array[0..7] of string[3]=
(‘000‘,‘001‘,‘010‘,‘011‘,
‘100‘,‘101‘,‘110‘,‘111‘);
var c8,c2:string;
i:integer;
begin
write(‘OCT=‘);read(c8);
c2:=‘‘;
for i:=1 to length(c8) do
c2:=c2+masBin[ord(c8[i])-48]; <font color=green>{используя массив перехода переводим цифру в двоичную}</font>
write(‘BIN=‘,copy(c2,pos(‘1‘,c2),length(c2)-pos(‘1‘,c2)+1)); <font color=green>{выводим число без ведущих нулей}</font>
readln;
readln;
end.</code>
Good Luck!!!