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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 26.11.2009, 14:12   #1
ruslan-gonch
 
Регистрация: 25.10.2009
Сообщений: 4
Плохо Системы счисления

Цель задачи: вводятся числа n, p, q. Перевести число n из числа с основанием p в систему счисления по основанию q.

Используя решения предыдущих задач, я решил перевести число сначала в десятичную систему, а потом в qичную.

Все заготовки на перевод P - 10:



Код:
Type
 LongArray = Array Of LongInt;
 
 
Function GetDigits(n, p: LongInt): LongArray;
Var
 x: LongArray;
Begin
 While (n <> 0) Do
  Begin
   SetLength(x, Length(x)+1);
   x[Length(x)-1] := n Mod p;
   n := n Div p;
  End;
 GetDigits := x;
End;
 
Function Digit2Char(n: LongInt): Char;
Begin
 If (n < 10) Then
  Digit2Char := Chr(Ord('0')+n)
 Else
  Digit2Char := Chr(Ord('A')+n-10);
End;

Перевод 10 - Q:

Type
 LongArray = Array Of LongInt;
 
Function C2D(c: Char): LongInt;
Begin
 If (c < 'A') Then
  C2D := Ord(c)-Ord('0')
 Else
  C2d := Ord(c)-Ord('A')+10;
End;
 
Function GDFS(s: String): LongArray;
Var
 x: LongArray;
 i: LongInt;
Begin
 SetLength(x, Length(s));
 For i := 1 To Length(s) Do
  x[i-1] := C2D(s[i]);
 GDFS := x;
End;
 
Function GetNumber(x: LongArray; p: LongInt): LongInt;
Var
 i, n: LongInt;
Begin
 n := 0;
 For i := 0 To Length(x)-1 Do
  n := p*n+x[i];
 GetNumber := n;
End;
Но совместить все эти функции в одну не удаётся- из-за разных типов данных.
Когда я изменил типы на верные- ошибок стало ещё больше!

Что делать?

Последний раз редактировалось Stilet; 26.11.2009 в 14:31.
ruslan-gonch вне форума
Старый 26.11.2009, 17:20   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Смотрим в низ страницы - "Похожие темы".
Закрыто.
Сколько можно мусолить одно и то же?
mihali4 вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Системы счисления Nikitaunett Помощь студентам 17 24.11.2009 20:20
Системы счисления BloodMaX Общие вопросы C/C++ 1 08.11.2009 14:46
Системы счисления vdv08 Паскаль, Turbo Pascal, PascalABC.NET 1 08.05.2008 17:32