Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2014, 15:38   #1
chit
Новичок
Джуниор
 
Регистрация: 19.05.2014
Сообщений: 3
По умолчанию Программа умножения двух двоичных чисел(Pascal)

помогите с программой, нужно написать программу умножения двух двоичных чисел: 1111 и 10101.
chit вне форума Ответить с цитированием
Старый 19.05.2014, 16:27   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Код:
Программа умножения двоичных чисел.
введите первое двоичное число: 1111
введите второе двоичное число: 10101
Произведение равно 100111011
Код:
function BinaryStrToInt(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
      BinaryStrToInt := -i;
      exit;
    end;
  end;
  BinaryStrToInt := r
end;

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


var 
  s : string;
  d1, d2 : longint;
begin
  WriteLn('Программа умножения двоичных чисел.');
  Write('введите первое двоичное число: '); ReadLn(s);
  d1 := BinaryStrToInt(s);
  if d1<0 then begin WriteLn('Ошибка в представлении двоичного числа (',s,') ! '); Halt(1) end;
  Write('введите второе двоичное число: '); ReadLn(s);
  d2 := BinaryStrToInt(s);
  if d2<0 then begin WriteLn('Ошибка в представлении двоичного числа (',s,') ! '); Halt(1) end;
{  WriteLn('d1 = ',d1,' d2 = ', d2 ); }
  WriteLn('Произведение равно ', dec2bin( d1 * d2 ));
  Readln
end.

p.s. преобразование числа в двоичное представление выполнено через рекурсию.
Ни по каким основаниям. Просто так, прикола ради!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.05.2014, 16:33   #3
chit
Новичок
Джуниор
 
Регистрация: 19.05.2014
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Код:
function BinaryStrToInt(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
      BinaryStrToInt := -i;
      exit;
    end;
  end;
  BinaryStrToInt := r
end;

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


var 
  s : string;
  d1, d2 : longint;
begin
  WriteLn('Программа умножения двоичных чисел.');
  Write('введите первое двоичное число: '); ReadLn(s);
  d1 := BinaryStrToInt(s);
  if d1<0 then begin WriteLn('Ошибка в представлении двоичного числа (',s,') ! '); Halt(1) end;
  Write('введите второе двоичное число: '); ReadLn(s);
  d2 := BinaryStrToInt(s);
  if d2<0 then begin WriteLn('Ошибка в представлении двоичного числа (',s,') ! '); Halt(1) end;
{  WriteLn('d1 = ',d1,' d2 = ', d2 ); }
  WriteLn('Произведение равно ', dec2bin( d1 * d2 ));
  Readln
end.

p.s. преобразование числа в двоичное представление выполнено через рекурсию.
Ни по каким основаниям. Просто так, прикола ради!
спасибо огромное сейчас буду разбираться)
chit вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализовать алгоритмы умножения и деления двоичных чисел на языке vhdl в среде Quartus aggelqt Фриланс 0 14.05.2014 17:39
17. Составить программу логического отрицания и логического умножения двоичных чисел. Программа на языке высокого уровня. мурад05 Помощь студентам 1 08.10.2012 16:06
автомат умножения двоичных чисел Lucky777 C# (си шарп) 1 01.12.2011 09:01
умножение двух двоичных чисел!!! 2008kedr2008 Общие вопросы C/C++ 1 12.05.2011 13:28