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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2007, 14:45   #1
Ruver000
 
Регистрация: 04.10.2007
Сообщений: 6
По умолчанию Помогите с программой в Delphi

В общем нужно создать программу , которая умела бы переводить числа из одной системы счисления в другую. Заранее благодарен.
Ruver000 вне форума Ответить с цитированием
Старый 15.12.2007, 15:27   #2
kommunist
C# developer
Форумчанин
 
Аватар для kommunist
 
Регистрация: 03.10.2007
Сообщений: 393
По умолчанию

http://www.programmersforum.ru/showthread.php?t=7685
или вот
http://http://www.programmersclub.ru/inttohex
I like WPF
kommunist вне форума Ответить с цитированием
Старый 16.12.2007, 00:27   #3
Ruver000
 
Регистрация: 04.10.2007
Сообщений: 6
По умолчанию

Мне нужно сделать программу переводящую число из десятичной в любую другую(нами выбранную) Сист.Счисл.
Ruver000 вне форума Ответить с цитированием
Старый 16.12.2007, 08:13   #4
kommunist
C# developer
Форумчанин
 
Аватар для kommunist
 
Регистрация: 03.10.2007
Сообщений: 393
По умолчанию

Вот... Переводит из любой в любую, учитывает дробную часть
Код:
program notation;

{$APPTYPE CONSOLE}

uses
  SysUtils,Windows;

Var
  st:Set of Char;

Function F(a,b:Integer):Integer;
Var
  i:Integer;
Begin
Result:=a;

  For i:=1 To b-1 Do
    Result:=Result*a;

  IF b=0 Then Result:=1;

End;

Function ConvertDec(n:ShortString; q:Integer):Integer;
Var
  p,j,i:Integer;
Begin
j:=Length(n)-1;
Result:=0;

  For i:=1 To Length(n) Do
    Begin

        IF n[i] in [#48..#58] Then
          Begin
            Result:=Result+F(q,j)*StrToInt(n[i]);
            Dec(j);
          End

                               Else
            IF n[i] in st Then
          Begin
            Result:=Result+F(q,j)*(Ord(n[i])-55);
            Dec(j);
          End

    End;
End;

Function ConvertSS(d,q:Integer):ShortString;
Begin
Result:='';

  While d<>0 Do
    Begin

        IF d mod q>9 Then
          Result:=Chr(d mod q+55)+Result
                     Else
          Result:=IntToStr(d mod q)+Result;

      d:=d div q;
    End;
End;

Function ConvertEx(n:Extended; acc,q:Integer):ShortString;
Begin
Result:=',';

  IF acc=0 Then
    Begin
      Result:=Result+'0';
      Exit;
    End;

  While Length(Result)<acc+1 Do
    Begin
      n:=n*q;
      Result:=Result+IntToStr(Trunc(n));
      n:=n-Trunc(n);
    End;

End;

Var
  eps,i,tmp,qin,qout:Integer;
  t,nin:ShortString;
  buf:_Input_Record;
  n:Cardinal;
  r:Extended;
Label cont;
begin
st:=['A'..'Z','a'..'z'];
cont:
eps:=0;
WriteLn('Input data{');
WriteLn;
Write('Enter N: ');
ReadLn(nin);
Write('Enter Q: ');
ReadLn(qin);
Write('Enter Q: ');
ReadLn(qout);

  IF Pos(',',nin)<>0 Then
    Begin
      Write('Enter accuracy: ');
      ReadLn(eps);
      t:='0,'+IntToStr(ConvertDec(Copy(nin,Pos(',',nin)+1,Length(nin)),qin));
      r:=StrToFloat(t);
    End;

WriteLn('}');
WriteLn('Output data{');
Write('N=');

  IF qin=qout Then Write(nin)
              Else
                Begin
    IF eps<>0 Then tmp:=ConvertDec(Copy(nin,1,Pos(',',nin)-1),qin)
              Else tmp:=ConvertDec(nin,qin);
      Write(ConvertSS(tmp,qout)+ConvertEx(r,eps,qout));
                End;

WriteLn;
WriteLn('}');
WriteLn('Press ''q'' for quit or ''enter'' for continue...');
WriteLn;

  Repeat
    ReadConsoleInput(GetStdHandle(STD_INPUT_HANDLE),buf,1,n);

      Case buf.Event.KeyEvent.AsciiChar of
        #81,#113:Break;
        #13:GoTo cont;
      End;

  Until False;
end.
I like WPF
kommunist вне форума Ответить с цитированием
Старый 16.12.2007, 13:12   #5
Ruver000
 
Регистрация: 04.10.2007
Сообщений: 6
По умолчанию

Спасибо большое
Ruver000 вне форума Ответить с цитированием
Старый 16.12.2007, 15:16   #6
monkbeer
Новичок
Джуниор
 
Регистрация: 16.12.2007
Сообщений: 2
По умолчанию

Куда деваются мои сообщения!!!!!!!?????
monkbeer вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как организовать вывод сообщений программой в VCL режиме Delphi? Evgenii Помощь студентам 10 28.07.2008 11:28
Помогите,пожалуйста,с довольно простенькой программой(Delphi) o_O Помощь студентам 4 27.05.2008 11:35
Сканирование программой папки. Delphi DerSky Помощь студентам 2 21.05.2008 10:52
Помогите с программой (на Delphi) SPQR Помощь студентам 1 06.12.2007 20:00