Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Delphi] Задача с использованием цикла Repeat


Автор: KycTo 18.1.2008, 01:41
Целое число, предствленое в двоичной системе счисления, модуль которого непревышает двоичного числа 1111111, вводиться в вещественную переменную. Необходимо вывести на экран значение этого числа в 10-й системе счисления как значение целочисленной переменной. Предусмотреть проверку правильности ввода информации

Решить с помощью цикла repeat

Автор: and85 18.1.2008, 11:45
любое двоичное число в 10-ой системе счисления выглядит как сумма значущего числа разряда умноженое на 2 в степени номер разряда.
примеры:
111 = 1*2^0 + 1*2^1 + 1*2^2 = 7
101 = 1*2^0 + 0*2^1 + 1*2^2 = 5

отсюда просто каждые раз в теле цикла умножаешь значение числа разряда на 2 в степени номер счетчика цикла и все это дело сумируеш. что то типа того

mas - массив представляющий из себя число в двоичной форме ( может и строкой быть )

Код

i:=0;
repeat
  sum:=sum + mas[i]*pow(2,i);
  inc(i);
until i>length(mas) ;

можно конечно сделать и получше, но тебе я так понял именно это надо.

PS. я 'на коленке' писал, так что проверь на сколько работает. но идея примерно такая

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)