Нужна помощь в переводе чисел в другую систему счисления
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
Люди добрые, помогите кто чем может: Нужно написать программу для перевода чисел из одной системы счисления в другую на Delphi.
Если нужно помочь,
то: из какой в какую?
Если нужно написать за Вас, то "Спасибо не булькает
".
то: из какой в какую?
Если нужно написать за Вас, то "Спасибо не булькает

Из любой системы счисения в любую, у меня есть алгоритм, только не получается
это в Delphi оформить...
это в Delphi оформить...
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Считаю, тему нужно переместить в раздел "Решите мне задачку".
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Тема была совешенно обычной, ее GOS повернул в это русло.
Drawn, публикуйте Ваш алгоритм и то, что у Вас не получилось. Будем разбирать ошибки.
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;
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;
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Как я понял проблема с input и o output. Для input стоит использовать элемент управления edit box. Output можно сделать с помощью функции MessageBox, либо через ещё один edit box.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Можно обойтись без GUI.
Все что нужно добавить - это {$APPTYPE CONSOLE}
Вот полный текст Project1.dpr (единственного исходного файла приложения)
Все что нужно добавить - это {$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.
Возник еще один вопрос, как данную функцию использовать в программе?
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;
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;
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Странный вопрос. Так: Degree(5, 2), результат будет 25 

Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.