Нужна помощь в переводе чисел в другую систему счисления

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Нужна помощь в переводе чисел в другую систему счисления

drmist » 17 ноя 2004, 15:59

допустим, тебе надо присвоить переменной a результат этой функци:

var a:real;
[...]
begin
[...]
a:=degree(5,2);
[...]

теперь а равно 25.

Romeo » 17 ноя 2004, 11:32

Странный вопрос. Так: Degree(5, 2), результат будет 25 :)

Drawn » 16 ноя 2004, 21:59

Возник еще один вопрос, как данную функцию использовать в программе?

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;

Naeel Maqsudov » 12 ноя 2004, 00:20

Можно обойтись без 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.

Romeo » 10 ноя 2004, 10:26

Как я понял проблема с input и o output. Для input стоит использовать элемент управления edit box. Output можно сделать с помощью функции MessageBox, либо через ещё один edit box.

Drawn » 09 ноя 2004, 19:15

Как эти строчки будут выглядеть в 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;

Naeel Maqsudov » 09 ноя 2004, 07:37

Тема была совешенно обычной, ее GOS повернул в это русло.
Drawn, публикуйте Ваш алгоритм и то, что у Вас не получилось. Будем разбирать ошибки.

Romeo » 08 ноя 2004, 19:37

Считаю, тему нужно переместить в раздел "Решите мне задачку".

Drawn » 07 ноя 2004, 23:54

Из любой системы счисения в любую, у меня есть алгоритм, только не получается
это в Delphi оформить...

GOS » 07 ноя 2004, 23:14

Если нужно помочь,
то: из какой в какую?
Если нужно написать за Вас, то "Спасибо не булькает :) ".

Вернуться к началу