Scorpion1991 Опубликовано 21 марта, 2012 Жалоба Поделиться Опубликовано 21 марта, 2012 Программа написана на delphi, она складывает два двоичных числа, но почему то в ответе выводятся либо одни нули, либо единицы, помогите разобраться.... пожалуйста, что не так?!procedure TForm1.BitBtn5Click(Sender: TObject);var memory, i, j, k: integer; s1, s2, s3: string;begin s1:=edit1.Text; s2:=edit2.Text; s3:=edit3.Text; memory:=0; for i:=length(s3)downto 0 do for j:=length(s2) downto 0 do for k:=length(s1) downto 0 do begin if (memory=1)then if(s1[k]='1') and (s2[j]='1') then begin s3:='1'; memory:=1; end; if(s1[k]='1') and (s2[j]='0') then begin s3:='1'; memory:=0; end; if(s1[k]='0') and (s2[j]='1') then begin s3:='1'; memory:=0; end; if(s1[k]='0') and (s2[j]='0') then begin s3:='1'; memory:=0; end else begin if(s1[k]='1') and (s2[j]='1') then begin s3:='0'; memory:=1; end; if(s1[k]='1') and (s2[j]='0') then begin s3:='1'; memory:=0; end; if(s1[k]='0') and (s2[j]='1') then begin s3:='1'; memory:=0; end; if(s1[k]='0') and (s2[j]='0') then begin s3:='0'; memory:=0; end; end; end; edit3.Text:=s3;end; Ссылка на комментарий
Scorpion1991 Опубликовано 21 марта, 2012 Автор Жалоба Поделиться Опубликовано 21 марта, 2012 блин....никто не знает?! Ссылка на комментарий
AgaOnline Опубликовано 22 марта, 2012 Жалоба Поделиться Опубликовано 22 марта, 2012 Полагаю, что вы тупо переписали с умножения, не задумываясь. Попробуйте пробежать по своему алгоритму переписывая шаги на листочкеОшибка там где слаживиаются 0+0(два нуля) и цикл по-моему должен быть один Ссылка на комментарий
Scorpion1991 Опубликовано 25 марта, 2012 Автор Жалоба Поделиться Опубликовано 25 марта, 2012 Нет, с умножения не переписывал, ну да в принципе можно также умножение организовать, только почему у меня в edite 3 теперь больше 5 знаков не выводятся? Ссылка на комментарий
AgaOnline Опубликовано 26 марта, 2012 Жалоба Поделиться Опубликовано 26 марта, 2012 хз почему 5 знаков.Возможно на форме стоит в параметре поля размер 5 знаков.s3:=edit3.Text; - это в начале убрать, сюда записывается только результат. Может быть уберется проблема с 5 знакамиЦикл при сложении должен быть один. Сложение происходит по разрядам с последних цифр до первой.И еще посмотрите спойлер в моем первом сообщении Ссылка на комментарий
ros.pro Опубликовано 27 марта, 2012 Жалоба Поделиться Опубликовано 27 марта, 2012 предлагаю переписать алгоритм полностью. Ссылка на комментарий
chemodan Опубликовано 6 апреля, 2012 Жалоба Поделиться Опубликовано 6 апреля, 2012 Предлагаю завести ещё одну переменную! Ссылка на комментарий
Рекомендуемые сообщения
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти