Другие языки программирования и технологии

Объяснить что делает переменная в коде на delphi

Это калькулятор, нужно объяснить для чего нужна переменная B, я сказал преподавателю что если у нас false, значит идёт ввод чисел, а когда у нас true, то идёт действие, преподаватель сказал что нет, B используется ещё до действий
var
Form1: TForm1;

B:Boolean;
D:Integer;
X:Real;

implementation

{$R *.dfm}

procedure TForm1.Button10Click(Sender: TObject);
begin
If B Then Edit1.Text:='';
B:=False;
If (Edit1.Text<>'0') or (Edit1.text='') Then
Edit1.Text:=Edit1.Text+'0';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
If B Then Edit1.Text:='';
B:=False;
Edit1.Text:=Edit1.Text+'1';
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
If B Then Edit1.Text:='';
B:=False;
Edit1.Text:=Edit1.Text+'2';
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
If B Then Edit1.Text:='';
B:=False;
Edit1.Text:=Edit1.Text+'3';
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
If B Then Edit1.Text:='';
B:=False;
Edit1.Text:=Edit1.Text+'4';
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
If B Then Edit1.Text:='';
B:=False;
Edit1.Text:=Edit1.Text+'5';
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
If B Then Edit1.Text:='';
B:=False;
Edit1.Text:=Edit1.Text+'6';
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
If B Then Edit1.Text:='';
B:=False;
Edit1.Text:=Edit1.Text+'7';
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
If B Then Edit1.Text:='';
B:=False;
Edit1.Text:=Edit1.Text+'8';
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
If B Then Edit1.Text:='';
B:=False;
Edit1.Text:=Edit1.Text+'9';
end;

procedure TForm1.Button11Click(Sender: TObject);
begin
X:=StrToFloat(Edit1.Text);
D:=1;
B:=True;
end;

procedure TForm1.Button12Click(Sender: TObject);
begin
X:=StrToFloat(Edit1.Text);
D:=2;
B:=True;
end;

procedure TForm1.Button13Click(Sender: TObject);
begin
X:=StrToFloat(Edit1.Text);
D:=3;
B:=True;
end;

procedure TForm1.Button14Click(Sender: TObject);
begin
X:=StrToFloat(Edit1.Text);
D:=4;
B:=True;
end;

procedure TForm1.Button15Click(Sender: TObject);
begin
Case D of
1: If Edit1.Text<>'0' then Edit1.Text:=FloatToStr(X/StrToFloat(Edit1.Text))
Else
Begin
Edit1.Text:=’ Делить на ноль нельзя!!!';
B:=True;
End;
2: Edit1.Text:=FloatToStr(X*StrToFloat(Edit1.Text));
3: Edit1.Text:=FloatToStr(X-StrToFloat(Edit1.Text));
4: Edit1.Text:=FloatToStr(X+StrToFloat(Edit1.Text));
End;
B:=True;
end;

procedure TForm1.Button17Click(Sender: TObject);
begin
If Edit1.Text<>'' then
Edit1.Text:=Edit1.Text+',';
end;

procedure TForm1.Button16Click(Sender: TObject);
begin
X:=0;
B:=False;
D:=4;
Edit1.Text:='';
end;

end.
Vik Ch
Vik Ch
47
Любой калькулятор при нажатии цифровой кнопки должен решить следующую проблему: надо ли очистить текущее отображение и отобразить значение цифровой кнопки или же надо добавить значение цифровой кнопки к текущему отображению. Условно говоря, если на экране "8" и пользователь нажимает "7", то что должно получиться, "7" или "87"? Переменная B как раз предназначена для решения этой проблемы.

Значение B = true обозначает состояние после вычисления выражения (должно получиться "7"), B = false обозначает состояние ввода числа (должно получиться "87").

(Button17Click - поздняя вставка? Почему она не следует логике цифровых кнопок?)
Саша Галицкий
Саша Галицкий
12 091
Лучший ответ
Судя по всему, тут задумана проверка ввода числовых значений. Почему кнопок на форме калькулятора (!) больше десятка понять не могу. Возможно скрин формы может как-то прояснить..
Как по мне - жесть. Разгадывать чужой код и все подлянки его автора такое себе занятие. Он издевается : "Скажи мне, что я думаю"
Bekbolat Koptileuov Надо полагать, с первой по десятую цифры 1..0, 11-14 арифметические действия, 15 - кнопка "равно", 17 - очистка, а 16 - ХЗ
Vik Ch Есть предположение что B=true то очищается поле
Анекдот в тему (делать надо все самому, тогда вопросов не будет):
 Уехала жена в командировку. Через 2 дня муж ей пишет SMS: "Где все ложки, ножи и вилки?", жена в ответ: "Спи дома!". Он ничего не понимает, но ждёт ещё 2 дня и опять пишет SMS: "Где все ложки, ножи и вилки?", жена в ответ: "Спи дома!".  

Через неделю возвращается жена домой, муж её встречает злой с вопросом, куда она дела все ложки, ножи и вилки. Жена берёт его за руку, ведёт в спальню и стягивает с кровати покрывало, а там лежат ложки, ножи и вилки!

-Я же говорила тебе - спи дома!
Vik Ch Так нам и не надо было делать, преподаватель дал лист с кодом и сказал объяснить как работает код и что делают переменные