Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2014, 16:49   #1
AngryProj
Пользователь
 
Регистрация: 27.11.2014
Сообщений: 11
По умолчанию Рекурсивный метод перевода числа из 2-ой СС в 10-ю. Pascal/Delphi

Помогите, пожалуйста разработать рекурсивный метод для перевода числа из двоичной СС в десятичную.
AngryProj вне форума Ответить с цитированием
Старый 04.12.2014, 17:14   #2
Iron Monk
Форумчанин
 
Аватар для Iron Monk
 
Регистрация: 05.10.2007
Сообщений: 478
По умолчанию

На скорую руку...
Код:
const
a_hex: array[0..15, 0..1] of string =
(('0000','0'),('0001','1'),('0010','2'),
 ('0011','3'),('0100','4'),('0101','5'),
 ('0110','6'),('0111','7'),('1000','8'),
 ('1001','9'),('1010','A'),('1011','B'),
 ('1100','C'),('1101','D'),('1110','E'),
 ('1111','F'));

procedure TForm1.Button1Click(Sender: TObject);
var
i, c: integer;
tmp, str_bin, str_hex: string;
begin
    c:= 4 - (Length(Edit1.Text) mod 4);
    if (c > 0) and (c < 4) then
      for i:= 1 to c do
        str_bin:= str_bin+ '0';
        str_bin:= str_bin+Edit1.Text;
        c:= Length(str_bin) div 4;
          for i:= 0 to c do
              begin
              tmp:= Copy(str_bin,(i*4)+1,4);
                  for c:= 0 to 15 do
                    if  tmp = a_hex[c,0] then
                    str_hex:= str_hex+ a_hex[c,1];
                    Edit2.Text:= IntToStr(StrToInt('$' + str_hex));
              end;
end;
end.
Iron Monk вне форума Ответить с цитированием
Старый 04.12.2014, 17:26   #3
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

Код:
var
 b:string;

  Function V(M:longint):longint;
    var c:char;
    begin
      read(c);
      if c=#13
        then
          begin
            V:=M;
            read(c)
          end
        else
          V:=V((M shl 1)+byte(c)-48)
    end;

  Function V2(S:String):longint;
    var i:integer;
    begin
      if s='' then V2:=0
        else
          begin
            i:=length(s);
            V2:=(V2(copy(s,1,i-1)) shl 1)+byte(s[i])-48
          end
    end;


begin
 write('Bin: ');
 writeln('Dec: ',V(0));


 write('Bin: '); readln(b);
 write('Dec: ',V2(b));
 readln
end.
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рекурсивный алгоритм вывода десятичного числа в прямом/обратном порядке zorg-kirill Общие вопросы C/C++ 14 17.12.2012 08:19
Написать функцию для перевода числа из десятичной системы в восьмиричную (Delphi) BLADIMIR Помощь студентам 32 06.09.2011 00:57
Delphi 7. ро-метод Полларда (факторизация числа) Pecho Помощь студентам 2 03.01.2011 20:29
C# - Рекурсивный метод Ronnie Помощь студентам 2 10.06.2010 08:30
Java ME Рекурсивный метод поиска в подпапках Клык Помощь студентам 0 31.07.2009 16:06