Да мне нужен числовой массив. а что там за команда "digit[(n mod radix)+1]" ... что то типа взврата символа?
volvo
2.03.2006 21:14
klem4, а ты приведенную программу ВНИМАТЕЛЬНО смотрел? Уверен, что в FAQ-е есть аналог?
nik.bstu, заменять div 2 на shr 1 (будет быстрее), t := t-1 на dec(t) (тоже быстрее), избавляемся от лишней переменной... Вот результат:
procedure convertor(var a:t_kod; y:longint ); var t: longint; x: longint; begin t := n; x := y; if x<0 then a[1]:= 1; x := abs(x); repeat a[t] := x and $1; x := x shr 1; dec(t); until (x = 0) or (t = 1);
Есть мной написанный конвертор числа в двоичный код
Где тут слово массив ? А привиденную программу я смотрел и как раз подумал, что автору надо показать как это делается без массива.
volvo
3.03.2006 10:24
Цитата(klem4 @ 3.03.2006 9:19)
Где тут слово массив ?
Здесь:
Цитата
type t_kod=array[1..n] of 0..1;
Значит, так смотрел программу!
klem4
3.03.2006 10:36
/ offtop Не буду естественно с тобой спорить,я видел этот массив , но подумал что автор сделал конвертор каким-то не изученным наукой методом, поэтому и дал ссылку на FAQ, чисто теоретически его массив 1 и 0 можно перевести в string и и использовать процедуру из нашего FAQ, но так как это не требуется, прошу прощения.
ps И всетаки в самом задании не сказано, что для представления числа в двоичной сс надо использовать массив ;)
Дополнительный код Все понял, виноват, исправлюсь ;)
volvo
3.03.2006 10:36
Понимаешь, в чем дело... Если человек описывает отдельный тип для числового массива, а потом еще в программе делает:
if x<0 then a[1]:= 1; { <-- Вот это !!! }
, значит, ему нужно нечто отличное от просто строки...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.