| 
| 
 | Вопрос # 2 063/ вопрос открыт / | 
 |  Здравствуйте, уважаемые эксперты! Помогите решить задачку: берется любое целое число, переводится в двоичную систему счисления. Затем начинаем сдвигать цифры полученного двоичного числа по циклу (так что последняя цыфра становится первой, а остальные сдвигаются на одну позицию вправо),выписывая образующиеся при этом последовательности из нулей и единиц в столбик. Потом находим максимальное из выписанных чисел и переводим его обратно в десятичную систему. ЗАДАЧА заключается в том, что это надо сделать все программно. 
 Help me, please.....
 Примечание #1 (8 ноября 2008, 15:18): На форме находится только одна кнопка и два едита. 
 
|  |   Вопрос задал: Ученый (статус: 8-ой класс)Вопрос отправлен: 8 ноября 2008, 15:00
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: Мережников Андрей Здравствуйте, Ученый!Смотрите пример в приложении
 Приложение:Переключить в обычный режим 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;  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; procedure TForm1.Button1Clickvar s,maxs:string;      i:integer;begins:=IntToBin(StrToInt(edit1.text));maxs:=s;for i:=1 to length(s)-1do begin s:=s[length(s)]+copy(s,1,length(s)-1); if s>maxs then maxs:=s;end;edit2.text:=StrToInt(BinToInt(maxs));end;
|  | Ответ отправил: Мережников Андрей (статус: Абитуриент)Время отправки: 8 ноября 2008, 17:18
 Оценка за ответ: 5
 |  
 Мини-форум вопросаВсего сообщений: 3; последнее сообщение — 9 ноября 2008, 07:45; участников в обсуждении: 3. 
|   | Ученый (статус: 8-ой класс), 8 ноября 2008, 17:35 [#1]:То Мережников Андрей. Спасибо!!! сделал как вы сказали, но проблемма- борланд ругается и пишет [Hint] Unit1.pas(40): Variable 'p' is declared but never used in 'IntToBin' |  
|   | Аксион (статус: 4-ый класс), 8 ноября 2008, 19:44 [#2]:[Hint] - это всего лишь подсказка, которая говорит о том, что переменная p обьявлена, но не использована.... не обращайте внимания или просто удалите обьявление этой переменной.... |  
|   | Мережников Андрей (статус: Абитуриент), 9 ноября 2008, 07:45 [#3]:Да, это всего лишь подсказка, что в функции IntToBin объявлена переменная p, которая не используется, надо ее убрать из строки var |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |