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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.06.2009, 16:16   #1
kikimka
Пользователь
 
Регистрация: 30.06.2009
Сообщений: 15
Восклицание Delphi. Переводчик систем исчисления(из любой в любую)

Всем приветик!)Я студентка, дали задания для практики, а мы этот язык не изучали, а написать надо до 10-ого июляПомогите написать программу ПОЖАЛУЙСТА!!
Требуется реализовать программу, позволяющую переводить числа из любой заданной системы исчисления, в любую другую заданную. Количество знаков в системе от 1 до максимально возможного с учетом размеров английского алфавита.

Интерфейс должен состоять из:
-поля для ввода исходных чисел( возможно - нескольких);
-поля для выбора исходной системы (с возможностью быстрого выбора из 2, 10 и 16-ричной, и произвольного задания любой возможной);
-поля для задания результатирующей системы ( также с возможностью быстрого выбора и произвольного задания).
-поле выбора результата ( не редактируемое ).

ЗАРАНЕЕ ОГРОМНОЕ СПАСИБО...
kikimka вне форума Ответить с цитированием
Старый 30.06.2009, 16:21   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

поиском по форуму порулите.
тут эта задача неоднократно решалась!
и ещё внизу страницы посмотрите - "Похожие темы"...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.06.2009, 16:30   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вообще-то у меня например с делфой поставлялись примеры, в том числе и конвертер как ты ищещь, так что загляни в свой Demos
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.07.2009, 14:17   #4
megachuhancer
Форумчанин
 
Регистрация: 16.04.2009
Сообщений: 247
По умолчанию

У меня как раз завалялся исходник на TP. Первое число в файле - основание исходной системы, второе - системы в которую надо перевести. В следующей строке само число. Работает с числами длиной до numlen.
Код:
program scale;
const
	 numlen=6000;
type
	number=array[1..numlen]of byte;
var
	i,j:byte;
	len,lenr,rem:word;
	n:number;
	r:array[1..6000]of char;
function char_to_dec(ch:char):byte;
begin
	if ch in ['0'..'9'] then char_to_dec:=ord(ch)-ord('0')
	else char_to_dec:=ord(ch)-ord('A')+10;
end;
procedure swapbyte(var a,b:byte);
var
	t:byte;
begin
	t:=a;
	a:=b;
	b:=t;
end;
procedure readlong(var n:number);
var
	i:word;
	carry:byte;
	ch:char;
begin
	while not eoln do begin
		read(ch);
		inc(len);
		n[len]:=char_to_dec(ch);
	end;
	for i:=1 to len div 2 do swapbyte(n[i],n[len-i+1]);
end;
procedure divshort(var n:number; len:word; radix,divisor:byte; var rem:word);
var
	i:word;
begin
	for i:=len downto 1 do begin
		rem:=rem*radix+n[i];
		n[i]:=rem div divisor;
		rem:=rem mod divisor;
	end;
end;
procedure writeres;
var
	i:word;
begin
	for i:=lenr downto 1 do write(r[i]);
end;
function lenf(var n:number):word;
var
	p:word;
begin
	p:=numlen;
	while(p<>0)and(n[p]=0)do dec(p);
	lenf:=p;
end;
function dec_to_char(b:byte):char;
begin
	if(b<10)then dec_to_char:=chr(ord('0')+b)
	else dec_to_char:=chr(ord('A')+b-10);
end;
begin
	assign(input,'scale.in');
	assign(output,'scale.out');
	reset(input);
	rewrite(output);
	readln(i,j);
	readlong(n);
	len:=lenf(n);
	r[1]:='0';
	while len<>0 do begin
		divshort(n,len,i,j,rem);
		len:=lenf(n);
		inc(lenr);
		r[lenr]:=dec_to_char(rem);
		rem:=0;
	end;
	if lenr=0 then lenr:=1;
	writeres;
	close(input);
	close(output);
end.
Код тестировался. Прикрутить к этому графический интерфейс - и готово.

Последний раз редактировалось megachuhancer; 01.07.2009 в 14:42.
megachuhancer вне форума Ответить с цитированием
Старый 01.07.2009, 21:49   #5
kikimka
Пользователь
 
Регистрация: 30.06.2009
Сообщений: 15
По умолчанию

а как сделать етот графический интерфейс?как поля ети создать?
kikimka вне форума Ответить с цитированием
Старый 03.07.2009, 14:05   #6
megachuhancer
Форумчанин
 
Регистрация: 16.04.2009
Сообщений: 247
По умолчанию

Описать как это делать прямо в посте на форуме, я полагаю, затруднительно. А делать "етот" графический интерфейс за кого-то - сомнительное удовольствие. Так что, как уже говорил Stilet, загляни в свой Demos.

Последний раз редактировалось megachuhancer; 03.07.2009 в 14:07.
megachuhancer вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переводчик в Delphi dani92 Общие вопросы Delphi 28 08.04.2015 18:00
Парсер поисковых систем (Delphi) dotsik Помощь студентам 0 13.06.2009 17:48
Решение систем уравнений методом Гаусса. Delphi. FixiK Помощь студентам 2 26.04.2009 12:06
Имитационное моделирование систем массового обслуживания на Delphi или C++Builder Приватная Фриланс 4 04.12.2008 10:39
Преобразования систем исчисления Altera Общие вопросы Delphi 5 21.02.2008 08:43