Показать сообщение отдельно
Старый 18.01.2015, 15:07   #8 (permalink)
Asya_inter
Member
 
Аватар для Asya_inter
 
Регистрация: 12.01.2015
Сообщений: 71
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Vladimir_S, Здравствуйте! Я вчера сдавала данную задачу и мне сказали, чтобы сделать её более просто, чтобы можно было ввести любое по размеру двоичное число и сделать всё с помощью функции и не переводить 3 в десятичную систему счисления. Я кое-что написала (не знаю правильно ли), но не могу разобраться как посчитать число p. Вы может знаете как это сделать? подскажите пожалуйста!


program nomer_589(c);

function um(const s: string): longint;
var
i: integer;
r: longint;
begin
r := 0;
for i := 1 to length(s) do
begin
if (s[i] = '1') or (s[i] = '0') then
r := r * 2 + (ord(s[i]) - ord('0'))
else begin
um := -i;
exit;
end;
end;
um := r
end;

function umnogenie(dec: longint): string;
begin
if dec = 0 then umnogenie := ''
else
if odd(dec) then
umnogenie := umnogenie( dec div 2) + '1'
else
umnogenie := umnogenie(dec div 2) + '0';
end;

const
t = 3;

var
s: string;
d1: longint;

begin

Write('введите первое двоичное число: '); ReadLn(s);
d1 := um(s);
WriteLn('Произведение равно ', umnogenie( d1 * t ));
Readln
end.
Asya_inter вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070