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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2010, 16:36   #1
13xXx13
Пользователь
 
Регистрация: 14.12.2010
Сообщений: 17
По умолчанию перевод чисел. (связать две программы в одну.)

первая программа переводит число из 10 в 2 систему счисления, вторая из 2 в 10 систему счисления
помогите их соединить чтоб программа переводила число из любой системы счисления в любую систему счисления!! please))

uses CRT;
var a:longint;
function Y(x:longint):string;
const digits:array [0..1] of char = ('0','1');
var res:string; d:0..1;
BEGIN
res:='';
while (x<>0) do begin
d:=x mod 2; res:=digits[d]+res;
x:=x div 2;
END;
Y:=res;
END;
BEGIN
clrscr;
writeln(' programma perevoda chisla iz desjatichnoi sistemy v dvoichnuiy');
writeln(' ');
writeln(' *********************************** *****************************');
writeln('vvedite luboe chislo:'); readln(a);
writeln('rezultat perevoda:',Y(a)); readln
END.


uses crt; var a : string;
function Y(x:string):longint;
const cifri:array [0..1] of char = ('0','1');
var res,ves:longint; i,j:byte;
BEGIN
res:=0; ves:=1;
for i:=length(x) downto 1 do begin
j:=0;
while (cifri[j]<>x[i]) do inc(j);
res:=res+ves*j;
ves:=ves*2;
end; Y:=res;
END;
BEGIN
clrscr;
writeln(' programma perevoda chisla iz dvoichnoy sistemy v desjatichnuy');
writeln(' ');
writeln(' *********************************** *****************************');
writeln('vvedite luboe chislo:'); readln(a);
writeln('rezultat perevoda:',Y(a)); readln
END.
13xXx13 вне форума Ответить с цитированием
Старый 21.12.2010, 19:51   #2
NioTo
Пользователь
 
Регистрация: 17.12.2007
Сообщений: 32
По умолчанию

Код:
function ConvertNumeralSystem(Number: String; SourceBase, ResultBase: Integer): String;
var
  i, j: Integer;
  k: LongInt = 1;
  Digits: Array[0..34] of Char = ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');
  Dec: LongInt = 0;
begin
  for i := Length(Number) downto 1 do begin
    j := 0;
    while Number[i] <> Digits[j] do
      Inc(j);

    Dec := Dec + j * k;
    k := k * SourceBase;
  end;

  ConvertNumeralSystem := '';
  while Dec <> 0 do begin
    ConvertNumeralSystem := Digits[Dec mod ResultBase] + ConvertNumeralSystem;
    Dec := Dec div ResultBase;
  end;
end;

var
  Number: String;
  SourceBase, ResultBase: Integer;

begin
  ReadLn(Number, SourceBase, ResultBase);
  WriteLn(ConvertNumeralSystem(Number, SourceBase, ResultBase));
end.
NioTo вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
связать две программки в одну с использованием условия. 13xXx13 Помощь студентам 1 15.12.2010 16:51
связать одну дочернюю с несколькими главными alexdrew БД в Delphi 1 17.04.2010 21:15
нужно Связать две вещи Pascal shark2010 Помощь студентам 8 25.03.2010 17:07
Как связать две таблицы Savage Microsoft Office Access 0 09.04.2009 13:15
Как связать две программы на Паскале Romanus Паскаль, Turbo Pascal, PascalABC.NET 3 29.07.2007 21:09