Консультация № 108868
10.11.2007, 23:37
0.00 руб.
0 1 1
Пожалуйста! Помогите! Напишыте простейшый пример на язике Pascal(желательно с обьяснениями) программы перевода с двоичной системы исчисления в восьмеричную (входные данные Double Word, а результат
- Word) и наоборот с восьмеричной в двоичную! Если можно так же с двоичной в десятиричную. Я знаю что это вас не затруднит - ви профессионалы своего дела, поэтому заранее Вам спасибо! Помогите!

Обсуждение

Неизвестный
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!!!
Форма ответа