Задача 322
Целое число, представленное в двоичной системе счисления, модуль которого не превышает двоичного числа 1111111, вводиться в вещественную переменную. Необходимо вывести на экран значение этого числа в 10-й системе счисления как значение целочисленной переменной. Предусмотреть проверку правильности ввода информации.
procedure TForm1.Button1Click(Sender: TObject);
var
i, j: Byte;
r: Real;
begin
// Проверяем правильность --------------------------------
if Length (Edit1.Text) > 7 then begin
ShowMessage ('Слишком много ввели. Не более 7 символов');
Exit; end;
if Edit1.Text = '' then begin
ShowMessage ('Введите хоть что-нибудь');
Exit; end;
i := 0;
repeat
Inc (i);
if (Edit1.Text [i] <> '0') and (Edit1.Text [i] <> '1') then begin
ShowMessage ('Вводить нужно "0" или "1"');
Exit; end;
until i = Length (Edit1.Text);
// Преобразование ----------------------------------------
r := 0;
i := 0;
repeat
Inc (i);
j := StrToInt (Edit1.Text [i]);
r := r*2 + j;
until i = Length (Edit1.Text);
Edit2.Text := FloatToStr (r);
end;
|