IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Двоично-десятичная форма, перевести в двоично-десятичную форму
Вероника
сообщение 11.10.2005 17:17
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Женский
Реальное имя: Вероника

Репутация: -  0  +


Помогите пожалуйста!
Я даже толком не поняла задание но оно звучит так:
Исходная информация: натуральное число записано в виде строки десятичных цифр(можно предполагать, что оно размещается в формате longint).
Задание: перевести это число в двоично-десятичную форму и вывести в виде строки(каждый соответствует двум десятичным цифрам).
Подскажите пожалуйста я буду вам очень благодарна! Заранее спасибо! huh.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 20.10.2005 13:23
Сообщение #2


Гость






{ Это - та функция, которую я делал раньше }
function get_bcd_visual(n: longint): string;
const
quart: array['0' .. '9'] of string[4] =
('0000', '0001', '0010', '0011', '0100',
'0101', '0110', '0111', '1000', '1001');
delim: array[boolean] of string = ('', ' ');
var
s: string;
b: boolean;
begin
s := ''; b := true;
while n > 0 do begin
s := quart[chr(48 + (n mod 10))] + {delim[b] +} s;
n := n div 10; b := not b;
end;
if not b then s := quart['0'] + s;
get_bcd_visual := s;
end;

{ А вот это - то, что ты просила в предыдущем посте: }
function get_bcd(s: string): string;
const
h_b: array[0 .. $F] of string[4] =
('0000', '0001', '0010', '0011',
'0100', '0101', '0110', '0111',
'1000', '1001', '1010', '1011',
'1100', '1101', '1110', '1111');
var
T, st: string;
i, count, code: byte;
begin
st := '';
while (length(s) mod 8) <> 0 do s := '0' + s;
repeat
code := 0;
for count := 1 to 2 do begin
T := copy(s, 1, 4); delete(s, 1, 4);
for i := 0 to $F do
if h_b[i] = T then inc(code, i * (16 + (1 - Count)*15));
end;
st := st + chr(code);
until s = '';
get_bcd := st;
end;

begin
writeln( get_bcd(get_bcd_visual(1234)) );
end.

Но опять же, учти, что в результате преобразования, например числа "1234" по тому алгоритму, что ты привела, получатся непечатаемые символы, и ты просто можешь чего-то не увидеть на экране, хотя сам результат преобразования будет правильным...
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Вероника   Двоично-десятичная форма   11.10.2005 17:17
virt   двоично десятичная форма это когда в байт записыва...   11.10.2005 17:42
klem4   Вероника, такие задачи уже решались, пользуйтесь п...   11.10.2005 17:42
Вероника   Это очень хорошо что вы мне объяснили что такое дв...   11.10.2005 21:08
volvo   Вероника, не совсем понятно, что именно тебе нужно...   11.10.2005 21:45
Вероника   Спасибо котик буду надеяться что это именно то что...   12.10.2005 15:08
Вероника   Помогите решить задачу всё на ту же тему но усложн...   13.10.2005 13:38
volvo   Еще раз повторяю вопрос: КАК именно задана строка?...   13.10.2005 14:28
Вероника   :( :( :( я не знаю примера это задание дано на л...   13.10.2005 14:58
Вероника   Так что Котик без примера не как???   13.10.2005 16:03
Вероника   Привет ещё раз котик помнишь ту задачу которую ты ...   20.10.2005 12:39
volvo   { Это - та функция, которую я делал раньше } funct...   20.10.2005 13:23
Вероника   Котя я тебя обажаю ты лучший Спасибо тебе большое...   20.10.2005 15:18
Вероника   Вот вопросик ещё в 1- ой программе было delim[b] а...   20.10.2005 15:36
volvo   Если ты используешь ТОЛЬКО первую подпрограмму(get...   20.10.2005 15:42


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 11:22
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"