Лидеры рейтинга

ID: 401284

Михаил Александров

Советник

380

Россия, Санкт-Петербург


ID: 259041

Алексеев Владимир Николаевич

Мастер-Эксперт

341

Россия, пос. Теплоозёрск, ЕАО


ID: 401888

puporev

Профессор

216

Россия, Пермский край


ID: 405338

vovaromanov.jr

1-й класс

114


ID: 400669

epimkin

Профессионал

112


ID: 242862

Hunter7007

Мастер-Эксперт

30

Россия, Омск


ID: 137394

Megaloman

Мастер-Эксперт

26

Беларусь, Гомель


8.10.2

13.10.2021

JS: 2.10.2
CSS: 4.6.0
jQuery: 3.6.0
DataForLocalStorage: 2021-10-23 16:46:01-standard


Создание программ на языках Pascal, Delphi и Lazarus.

Администратор раздела: Зенченко Константин Николаевич (Старший модератор)

Консультация онлайн # 108868

Раздел: Pascal / Delphi / Lazarus
Автор вопроса: Мироненко Николай Николаевич
Дата: 10.11.2007, 23:37 Консультация закрыта
Поступило ответов: 1

Пожалуйста! Помогите! Напишыте простейшый пример на язике Pascal(желательно с обьяснениями) программы перевода с двоичной системы исчисления в восьмеричную (входные данные Double Word, а результат
- Word) и наоборот с восьмеричной в двоичную! Если можно так же с двоичной в десятиричную. Я знаю что это вас не затруднит - ви профессионалы своего дела, поэтому заранее Вам спасибо! Помогите!

Ответ # 193156 от Gh0stik
Здравствуйте, Мироненко Николай Николаевич!

Программа перевода из двоичной в восьмиичную:
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; {если число не состоит из полных триад, то дополняем его ведущими нулями}
while length(c2) > 2 do
begin
v:=copy(c2,length(c2)-2,3); {вырезаем из числа триаду (набор из трех символов)}
i:=0;
while v<>masBin[i] do inc(i); {выбираем из массива номер соответствующего элемента}
str(i,d);
c8:=d+c8; {непосредственно формируем число}
delete(c2,length(c2)-2,3);
end;

write('OCT=',c8); {выводим число в 8-чной системе счисления}
readln;
end.


Программа перевода из восьмиичной в двоичную:
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]; {используя массив перехода переводим цифру в двоичную}

write('BIN=',copy(c2,pos('1',c2),length(c2)-pos('1',c2)+1)); {выводим число без ведущих нулей}
readln;
readln;
end.


Good Luck!!!

Gh0stik

Посетитель
11.11.2007, 00:26
Мини-форум консультации # 108868
Нет сообщений в мини-форуме
Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Лучшие эксперты раздела

puporev

Профессор

Рейтинг: 216

Зенченко Константин Николаевич

Старший модератор

Рейтинг: 155

Gluck

9-й класс

Рейтинг: 82

Лысков Игорь Витальевич

Мастер-Эксперт

Рейтинг: 0

Асмик Гаряка

Советник

Рейтинг: 0

Орловский Дмитрий

Мастер-Эксперт

Рейтинг: 0