Страница 1 из 2
Нужна помощь в переводе чисел в другую систему счисления
Добавлено: 07 ноя 2004, 20:42
Drawn
Люди добрые, помогите кто чем может: Нужно написать программу для перевода чисел из одной системы счисления в другую на Delphi.
Добавлено: 07 ноя 2004, 23:14
GOS
Если нужно помочь,
то: из какой в какую?
Если нужно написать за Вас, то "Спасибо не булькает

".
Добавлено: 07 ноя 2004, 23:54
Drawn
Из любой системы счисения в любую, у меня есть алгоритм, только не получается
это в Delphi оформить...
Добавлено: 08 ноя 2004, 19:37
Romeo
Считаю, тему нужно переместить в раздел "Решите мне задачку".
Добавлено: 09 ноя 2004, 07:37
Naeel Maqsudov
Тема была совешенно обычной, ее GOS повернул в это русло.
Drawn, публикуйте Ваш алгоритм и то, что у Вас не получилось. Будем разбирать ошибки.
Добавлено: 09 ноя 2004, 19:15
Drawn
Как эти строчки будут выглядеть в Delphi?
const
chars: array[0..35] of char = ('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K',
'L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
и
write('Vvedite ishodnoe chislo: '); readln(s);
write('k= '); readln(k);
chis:=0;
for i:=1 to length(s) do begin
s:=upcase(s);
j:=-1;
repeat
inc(j);
until (j=36) or (s=chars[j]);
if j=36 then begin writeln('ne verno vvedeno chislo .... '); exit; end;
Chis:=Chis*k+j;
end;
Добавлено: 10 ноя 2004, 10:26
Romeo
Как я понял проблема с input и o output. Для input стоит использовать элемент управления edit box. Output можно сделать с помощью функции MessageBox, либо через ещё один edit box.
Добавлено: 12 ноя 2004, 00:20
Naeel Maqsudov
Можно обойтись без GUI.
Все что нужно добавить - это {$APPTYPE CONSOLE}
Вот полный текст Project1.dpr (единственного исходного файла приложения)
Код: Выделить всё
program Project1;
{$APPTYPE CONSOLE}
const
chars: array[0..35] of char = ('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K',
'L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
var
s:string; chis,k,i,j:integer;
begin
// Insert user code here
write('Vvedite ishodnoe chislo: '); readln(s);
write('k= '); readln(k);
chis:=0;
for i:=1 to length(s) do begin
s[i]:=upcase(s[i]);
j:=-1;
repeat
inc(j);
until (j=36) or (s[i]=chars[j]);
if j=36 then begin writeln('ne verno vvedeno chislo .... '); exit; end;
Chis:=Chis*k+j;
end;
writeln(Chis);
readln;
end.
Добавлено: 16 ноя 2004, 21:59
Drawn
Возник еще один вопрос, как данную функцию использовать в программе?
Function Degree(Num:Real; Deg:Integer):Real;
Var I:Integer;
D:Real;
Begin
D:=1;
IF Deg<0 Then For I:=1 to Abs(Deg) Do D:=D/Num
Else For I:=1 to Deg Do D:=D*Num;
Degree:=D
End;
Добавлено: 17 ноя 2004, 11:32
Romeo
Странный вопрос. Так:
Degree(5, 2), результат будет 25
