Программирую двоичный калькулятор. По заданию нужно сделать так чтобы он складывал два числа в двоичной системе счисления также как это происходит на бумаге, т.е. 0+0=1; 1+0=1; 1+1=0(с переносом единицы в следующий разряд) и выводил всё в той же двоичной системе счисления.
Программа компилируется, но при выполнении любого действия зависает...
Код не доработан, в частности не реализован перенос единица в след. разряд, с чем тоже возникают трудности.
Это моя первая работа в Delphi так что прошу без наездов типа:"Ты что, тупой? Тут же надо всего лишь..."
Код:
unit BiCalc;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var s: string;
ost, i, a: integer;
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
s:= Edit1.Text;
i:= Length(s);
while i>0 do
begin
if StrToInt(Edit1.Text[i])+StrToInt(Edit2.Text[i])=0 then
begin
Edit3.Text:= IntToStr(ost);
ost:=0;
end;
if StrToInt(Edit1.Text[i])+StrToInt(Edit2.Text[i])=1 then
begin
Edit3.Text:= IntToStr(ost);
ost:=1;
end;
if StrToInt(Edit1.Text[i])+StrToInt(Edit2.Text[i])=2 then
begin
Edit3.Text:= IntToStr(ost);
ost:=0;
a:=1;
end;
end;
end;
end.