Показать сообщение отдельно
  #18  
Старый 25.05.2011, 15:46
Ксюха Ксюха вне форума
Прохожий
 
Регистрация: 22.05.2011
Сообщения: 28
Репутация: 10
По умолчанию

подскажите пожалуйста.дана задача в паскале ее нужно переделать так чтобы она работала в делфи+элементы калькулятора.ну допустим сложение переведенных в другую сс чисел
{Написать программу перевода числа из одной СС в другую}
Код:
program p1;
uses crt;
var cs1,cs2,res,change:integer;
    TD:string;
function FromDec(n,r:longint):string;
var
  s:String;
const
  digit:string[16]='0123456789ABCDEF';
begin
  s:='';
  repeat
    s:=digit[(n mod r)+1]+s;
    n:=n div r;
  until n=0;
    FromDec:=s;
end;
function ToDec(n:string;r:longint):longint;
var
  m,i:longint;
const
  digit:string[16]='0123456789ABCDEF';
begin
  m:=0;
  while n[1]='0' do
    delete(n,1,1);
  for i:=1 to length(n) do
    m:=m*r+pos(n[i],digit)-1;
  ToDec:=m;
end;
begin
  write('Введите из какой сс (2,8,10,16): ');
  readln(cs1);
  if (cs1=0) or (cs1=1) or (cs1=3) or (cs1=4) or (cs1=5) or (cs1=6) or (cs1=7) or (cs1=9) or (cs1=11) or (cs1=12) or (cs1=13) or (cs1=14) or (cs1=15)
  then writeln('Неверное основание СС!')
  else write('Введите число в соответствии с ',cs1,'-ой сс: ');
  readln(TD);
  
  writeln('Введите в какую сс (2,8,10,16):');
  readln(cs2);
  case cs2 of
  0,1,3,4,5,6,7,9,11,12,13,14,15: exit;
  end;
  writeln(FromDec(ToDec(TD,cs1),cs2));
end.
Админ: напоминаю про оформление кода, иначе последуют санкции!
Ответить с цитированием