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

Вопрос по программированию

Добавлено: Чт окт 08, 2009 4:32 pm
Rockwill
Кароч....
Нам задали сделать программу,котрая переводит числа из десятичной системы счисления в код Грея.....
Сделать это надо в МатКаде...
помогите,кто чем может....плз...
Хотя бы в С++))))

Добавлено: Чт окт 08, 2009 4:43 pm
Senior Lupasin
Если скажешь, что такое код Грея, сделаю на Паскале.

Добавлено: Чт окт 08, 2009 4:46 pm
Rockwill
http://www.klgtu.ru/ru/students/literat ... su/90.html

Лупасин,ты ж вроде на КМ учился...ВАм разве Малевич такого не задавал?

Добавлено: Чт окт 08, 2009 4:55 pm
Senior Lupasin
Я уже синус суммы забыл, а не то что коды Грея.

Добавлено: Чт окт 08, 2009 4:56 pm
Rockwill
:)

Добавлено: Чт окт 08, 2009 5:05 pm
Senior Lupasin
Хммм...

(паскаль моего детства)

Program LupaKiss;

Var
S, SS: String;
I: Integer;

Begin
WriteLn ('Введите число (не более 63 знаков)')
ReadLn (S);
SS:='';
for I:=1 to Length (S) do
case S of
'0': SS:=SS+'0000';
'1': SS:=SS+'0001';
'2': SS:=SS+'0011';
'3': SS:=SS+'0010';
'4': SS:=SS+'0110';
'5': SS:=SS+'0111';
'6': SS:=SS+'0101';
'7': SS:=SS+'0100';
'8': SS:=SS+'1100';
'9': SS:=SS+'1101';
else
begin
SS:='ERROR: invalid notation'
break
end end;
WriteLn (SS);
ReadLn
End.

Добавлено: Чт окт 08, 2009 5:14 pm
Rockwill
Спасибо))...на худой конец попробую в этом разобраться)))
Может кто в Маткаде такую штуку могёт?)))

Добавлено: Чт окт 08, 2009 5:17 pm
Senior Lupasin
В этом посте Лупасин объяснял особенности функционирования своего алгоритма.

Добавлено: Чт окт 08, 2009 6:04 pm
shapeshifter
Лупасин, ты написал полную :censored:. Точнее крайне частный случай решения задачи. Взятый из примера )

Добавлено: Чт окт 08, 2009 6:07 pm
Senior Lupasin
Бывает.

Ты думаешь, она не будет работать?

Добавлено: Чт окт 08, 2009 6:08 pm
shapeshifter
Senior Lupasin писал(а):Бывает.

Ты думаешь, она не будет работать?
Будет. Но делать будет совсем не то, что ожидается.

Добавлено: Чт окт 08, 2009 6:10 pm
Senior Lupasin
То есть переводить в код Грея нужно число в целом, а не цифры в отдельности?

Добавлено: Чт окт 08, 2009 6:15 pm
shapeshifter
Senior Lupasin писал(а):То есть переводить в код Грея нужно число в целом, а не цифры в отдельности?
Да. Вообще, стоит взглянуть сюда.
В частности:
Алгоритм преобразования из двоичной системы счисления в код Грея, записанный на языке C++:

unsigned int grayencode(unsigned int g)
{
return g ^ (g >> 1);
}

Добавлено: Чт окт 08, 2009 6:16 pm
Senior Lupasin
Я навёлся на слово "десятичная" и на пример.

Добавлено: Чт окт 08, 2009 6:20 pm
shapeshifter
Хотя прозреваю, что средствами Маткада побитовые операции реализовать будет сложно. Так что проще пользовать первую ссылку, шаги 1-4.