|
Вопрос # 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.Button1Click
- var s,maxs:string;
- i:integer;
- begin
- s:=IntToBin(StrToInt(edit1.text));
- maxs:=s;
- for i:=1 to length(s)-1
- do 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
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|