


Пишу программу на Delphi про перевод систем счисления, есть проблема...
Есть такой код (здесь я ввожу число в 10 системе и он мне выводит его в двоичной, в ABC паскале всё работает идеально, но....)
procedure Re ( n : integer);
begin
if n > 1 then Re( n div 2);
Write( n mod 2 );
end;
var
n : integer;
begin
Write('Введите число : ');
readln(n);
Re(n);
readln;
end.
Я делаю прогу в Лазарусе, на форму поместил Edit1 и Edit2. В Edit1 ввожу число в 10 системе, а в Edit2 после нажатия на кнопку должен получить его же, но в двоичной.
Проблема заключается в том, что я не могу вывести значение рекурсии ( Re(n) ) в поле Edit2. Не могу понять как вывести значение....
Если в ABC паскале достаточно было прокто написать Re(n), то здесь так тупо не получается... выдаёт как за ошибку.
>Write( n mod 2 );
>Я делаю прогу в Лазарусе, на форму поместил
Если у тебя там форма, то с какого ж перепуга ты делаешь Write?
Пиши рекуррентную функцию, если ты такой фанат рекурсии.
function Re ( n : integer):string;
begin
if n > 1 then Result:=Re( n shr 1)+IntToStr(n and 1)
else
Result:=IntToStr(n and 1);
end;
Ну так добавь процедуре еще аргумент - указатель на string, и к переданной строке конкатенируй эти циферки, вместо Write()... а когда процедура завершается, значение этой строки запихивай в Edit2.Text
В чем проблема-то?