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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2007, 14:21   #11
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Цитата:
Сообщение от RIO Посмотреть сообщение
Код:
program schisleniya;
s:='123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_';{36}
for j:=1 to 36 do begin
36 - это что ? ? ? Я так понял до 36-ричной системы включително можна вычислять или я ошибаюсь? Возможно с этой программой можна вычислить какую угодно систему?
Улыбнуло... Чуть выше написанно:

s:='123456789ABCDEFGHIJKLMNOPQRSTUV WXYZ_';{36}

Если подсчитать, то там ровно 36 элементов....

for j:=1 to 36 do begin

цикл который посимвольно перебирает строку S (все 36 символов), и дальше наверное будет сравнивать....
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 16.12.2007, 15:22   #12
RIO
Форумчанин
 
Аватар для RIO
 
Регистрация: 15.12.2007
Сообщений: 422
По умолчанию

Цитата:
s:='123456789ABCDEFGHIJKLMNOPQRSTUV WXYZ_';{36}
А что означает символ - _ в конце строки S ? И зачем он там нужен собственно?
RIO вне форума Ответить с цитированием
Старый 17.12.2007, 01:36   #13
RIO
Форумчанин
 
Аватар для RIO
 
Регистрация: 15.12.2007
Сообщений: 422
По умолчанию

Помоготи пожалуйста, переписал код вроде правильно, для перевода из любой системы счисления в десетичную, но где присутствует ошибочка Потомучто считает не правильно И ещё прикол, на Паскале этот код работает правильно, а на Делфи отказуеться работать, считает плохо, так сказать, вызываю я эту функцию вот так :

Memo1.Lines.Add(IntToStr(In10(2, IntToStr(10))));

А сама функция вот:

function In10(A: Integer; B: string): Integer;
var
I, J, C, K, R: Integer;
S, T1, T2: string;
begin
S := '123456789ABCDEFGHIJKLMNOPQRSTUVWXY Z_';
C := Length(B);
for I := 1 to C do
begin
T1 := Copy(B, I, 1);
for J := 1 to 36 do
begin
T2 := Copy(S, J, 1);
if T1 = T2 then
K := J;
end;
R := A * R + K;
end;
Result := R;
end;

Последний раз редактировалось RIO; 17.12.2007 в 01:54.
RIO вне форума Ответить с цитированием
Старый 17.12.2007, 02:24   #14
RIO
Форумчанин
 
Аватар для RIO
 
Регистрация: 15.12.2007
Сообщений: 422
По умолчанию

Все . . . Сделал, в начале функции нужно было дописать R := 0
RIO вне форума Ответить с цитированием
Старый 17.12.2007, 14:32   #15
RIO
Форумчанин
 
Аватар для RIO
 
Регистрация: 15.12.2007
Сообщений: 422
По умолчанию

Кстати, функция перевода в десятичную систему, работает не коректно . . . В чем проблемка?
RIO вне форума Ответить с цитированием
Старый 28.05.2008, 17:16   #16
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Блин, ну немогу я написать рабочую прогу для перевода из 2и-чной системы в 16и-ричную... даже на базе указанных кодов
помогите пожалуйста
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 03.04.2009, 19:46   #17
Tesey
Новичок
Джуниор
 
Регистрация: 04.03.2009
Сообщений: 2
По умолчанию

Цитата:
Сообщение от jopa Посмотреть сообщение
Благодарю. Теперь разобрался
Немного подгонки под себя и понесу здавать 1ю лабораторку
Не всё равно не канает(( когда переводишь 101 из 2ной в 10ную то получается 7..
Tesey вне форума Ответить с цитированием
Старый 03.04.2009, 19:49   #18
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

Код:
function BinToInt(Value: string): Integer;
 var
   i, iValueSize: Integer;
 begin
   Result := 0;
   iValueSize := Length(Value);
   for i := iValueSize downto 1 do
     if Value[i] = '1' then Result := Result + (1 shl (iValueSize - i));
 end;
// 10 в 2
function IntToBin(d: Longint): string;
 var
   x, p: Integer;
   bin: string;
 begin
   bin := '';
   for x := 1 to 8 * SizeOf(d) do
   begin
     if Odd(d) then bin := '1' + bin
     else
       bin := '0' + bin;
     d := d shr 1;
   end;
   Delete(bin, 1, 8 * ((Pos('1', bin) - 1) div 8));
   Result := bin;
 end;
//16 в 2
 function HexToBin(Hexadecimal: string): string;
 const
   BCD: array [0..15] of string =
     ('0000', '0001', '0010', '0011', '0100', '0101', '0110', '0111',
     '1000', '1001', '1010', '1011', '1100', '1101', '1110', '1111');
 var
   i: integer;
 begin
   for i := Length(Hexadecimal) downto 1 do
     Result := BCD[StrToInt('$' + Hexadecimal[i])] + Result;
 end;
 //10 в 8
 function IntToOct(Value: Longint; digits: Integer): string;
 var
   rest: Longint;
   oct: string;
   i: Integer;
 begin
   oct := '';
   while Value <> 0 do
   begin
     rest  := Value mod 8;
     Value := Value div 8;
     oct := IntToStr(rest) + oct;
   end;
   for i := Length(oct) + 1 to digits do
     oct := '0' + oct;
   Result := oct;
 end;
  // 8 в 10
function OctToInt(Value: string): Longint;
 var
    i: Integer;
   int: Integer;
 begin
   int := 0;
   for i := 1 to Length(Value) do
   begin
     int := int * 8 + StrToInt(Copy(Value, i, 1));
   end;
   Result := int;
 end
;
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума Ответить с цитированием
Старый 08.06.2010, 09:21   #19
Anty_F[R]eez
Пользователь
 
Регистрация: 04.06.2010
Сообщений: 11
По умолчанию

если не тяжело переведите в С++ пожалуйста
Учу С++ и многого не знаю... буду очень благодарен если вы мне поможите понять...тупо зделать не прошу и сам в этом не заинтересован!!!
Anty_F[R]eez вне форума Ответить с цитированием
Старый 12.12.2010, 16:18   #20
gettingup
 
Регистрация: 12.12.2010
Сообщений: 4
По умолчанию

всем здорова,я не могу разобраться что в этом куске проги мы делаем?
if p>=10 then b:=copy(s,p,1) else str(p,b);
ss:=b+ss;
n:=n div k;
end;
gettingup вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод из одной системы исчисления в другую. Svop Помощь студентам 7 20.12.2010 19:00
Программа перевода из одной системы счисления в другую - Turbo Pascal 7.0. Prescott Помощь студентам 5 19.03.2010 19:26
Перевод из одной системы счисления в другую Sky_VSUH Помощь студентам 1 28.02.2008 20:18
перевести числа с одной системы счисления в другую Informer Общие вопросы C/C++ 3 23.11.2007 16:21