Версия для печати

Задача 322

Оцените материал
(1 Голосовать)

Задача 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;
Прочитано 3446 раз
Авторизуйтесь, чтобы получить возможность оставлять комментарии