ΠΠ±ΡΡΠ½ΡΠΉ ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡ.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅: delphi
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, f = 1 ΠΆΠ΄Π΅ΠΌ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΡΡΡ. }. Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡΠ° (ΡΠΈΡ. 53). ΠΠ°ΡΠΈΠ°Π½Ρ 1. Π‘ΠΎΠ±ΡΡΠΈΠ΅ OnClick Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°. Π¦Π΅Π»Ρ ΡΠ°Π±ΠΎΡΡ — ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΊΠ½ΠΎΠΏΠΎΡΠ½ΠΎΠ³ΠΎ ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡΠ°. Π¦Π΅Π»Ρ ΡΠ°Π±ΠΎΡΡ — ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠ±ΡΡΠ½ΡΠΉ ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅: delphi (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
Π¦Π΅Π»Ρ ΡΠ°Π±ΠΎΡΡ — ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡΠ°.
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΠ»Π°Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
- 1. ΠΡΠΊΡΠΎΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ.
- 2. Π Π°Π·ΠΌΠ΅ΡΡΠΈΡΠ΅ Π½Π° ΡΠΎΡΠΌΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²: Label, Edit, Button (ΡΠΈΡ. 52).
3. Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ, Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΡΠΉΡΠ΅ Π΅Π³ΠΎ.
Π ΠΈΡ. 52. ΠΠΊΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΠΈΡΡΠΈΠ½Π³ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ procedure TForml. FormCreate (Sender: TObject); begin
Editl.Text Edit2. Text := '';
Edit3.Text := ''; end;
procedure TForml. Button5Click (Sender: TObject); begin
Editl.Text := '';
Edit2.Text := '';
Edit3.Text := 11; end;
procedure TForml. Button6Click (Sender: TObject); begin close; end;
procedure TForml. ButtonlClick (Sender: TObject); begin
a := StrToFloat (Editl.Text); b := StrToFloat (Edit2.Text); c := a + b;
Edit3.Text := FloatToStr (c); end;
procedure TForml. Button2Click (Sender: TObject); begin
a := StrToFloat (Editl.Text); b := StrToFloat (Edit2.Text); c := a — b;
Edit3.Text := FloatToStr (c); end;
procedure TForml. Button3Click (Sender: TObject); begin
a := StrToFloat (Editl.Text); b := StrToFloat (Edit2.Text); c := a * b;
Edit3.Text := FloatToStr (c); end;
procedure TForml. Button4Click (Sender: TObject); begin
a := StrToFloat (Editl.Text); b := StrToFloat (Edit2.Text); if b = 0 then
Edit3.Text := 'division by zero' else begin
c := a / b;
Edit3.Text := FloatToStr (c); end; end;
ΠΠ°Π΄Π°Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
1. Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡΠ° (ΡΠΈΡ. 53).
Π ΠΈΡ. 53. ΠΡΠΎΡΡΠΎΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ½ΡΠΉ ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡ
Π€ΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ cos (x)).
if Editl. Text ΠΎ '' then begin
a := StrToFloat (Editl.Text); c := cos (a); end;
if Edit2. Text '' then begin
b := StrToFloat (Edit2.Text); c := cos (b); end;
Edit3.Text := FloatToStr (c);
- 2. ΠΠΎΠ±Π°Π²ΠΈΡΡ Π½Π° ΡΠΎΡΠΌΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ tg (x), logab.
- 3. Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΠΈΡΠ΅Π» ΠΈΠ· Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π² Π΄Π²ΠΎΠΈΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ (ΡΠΈΡ. 54).
Π ΠΈΡ. 54. ΠΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΠΈΡΠ΅Π»
ΠΠ½ΠΎΠΏΠΎΡΠ½ΡΠΉ ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡ
Π¦Π΅Π»Ρ ΡΠ°Π±ΠΎΡΡ — ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΊΠ½ΠΎΠΏΠΎΡΠ½ΠΎΠ³ΠΎ ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡΠ°.
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΠ»Π°Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
- 1. ΠΡΠΊΡΡΡΡ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ.
- 2. Π Π°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π½Π° ΡΠΎΡΠΌΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²: Edit, Button.
Π ΠΈΡ. 55. ΠΠΊΠ½ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠΊΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
Π ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ Π΄Π°Π½Ρ Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ° ΡΠ΅ΡΠ΅Π½ΠΈΡ. Π ΠΏΠ΅ΡΠ²ΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΡΠΎΠ·Π΄Π°Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΡ OnClick. ΠΠΎ Π²ΡΠΎΡΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅ OnClick Π²ΡΠ΅Ρ ΡΠΈΡΡΠΎΠ²ΡΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΎΠ΄Π½Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ ΡΠ΅ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ°ΡΠΈΠ°Π½Ρ 1. Π‘ΠΎΠ±ΡΡΠΈΠ΅ OnClick Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°.
implementation
{$R *.dfm}
var
accum: real; // Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ
oper: integer; // ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ: 1 — 2 ;
// 0 — «Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ» (ΠΊΠ½ΠΎΠΏΠΊΠ° «=»).
f: integer;
{ f = Π² ΠΆΠ΄Π΅ΠΌ ΠΏΠ΅ΡΠ²ΡΡ ΡΠΈΡΡΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, f = 1 ΠΆΠ΄Π΅ΠΌ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΡΡΡ. }.
// ΠΊΠ½ΠΎΠΏΠΊΠ° 0.
procedure TForml. Button0Click (Sender: TObject); begin
if f = 0 // ΠΏΠ΅ΡΠ²Π°Ρ ΡΠΈΡΡΠ° ΡΠΈΡΠ»Π°
then
begin
Editl.Text := '0'; f := 1; // ΠΆΠ΄Π΅ΠΌ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΡΡΡ end
else if Editl. Text '0'.
// ΡΡΠΎΠ±Ρ Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ΅ Π½Π΅ Π±ΡΠ»ΠΎ // Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π½ΡΠ»Π΅ΠΉ Π² Π½Π°ΡΠ°Π»Π΅ ΡΠΈΡΠ»Π° then
Editl.Text := Editl. Text + '0';
end;
// ΠΊΠ½ΠΎΠΏΠΊΠ° 1
procedure TForml. ButtonlClick (Sender: TObject); begin
if f = 0 // ΠΏΠ΅ΡΠ²Π°Ρ ΡΠΈΡΡΠ° ΡΠΈΡΠ»Π°
then
begin
Editl.Text := '1'; f := 1; // ΠΆΠ΄Π΅ΠΌ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΡΡΡ end else
Editl.Text := Editl. Text + '1';
end;
// ΠΊΠ½ΠΎΠΏΠΊΠ° 2
procedure TForml. Button2Click (Sender: TObject); begin
if f = 0 // ΠΏΠ΅ΡΠ²Π°Ρ ΡΠΈΡΡΠ° ΡΠΈΡΠ»Π°
then
begin
Editl.Text := '2'; f := 1; // ΠΆΠ΄Π΅ΠΌ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΡΡΡ end else
Editl.Text := Editl. Text + '2';
end;
// ΠΊΠ½ΠΎΠΏΠΊΠ° 3
procedure TForml. Button3Click (Sender: TObject); begin
if f = 0 // ΠΏΠ΅ΡΠ²Π°Ρ ΡΠΈΡΡΠ° ΡΠΈΡΠ»Π°
then
begin
Editl.Text := '3'; f := 1; // ΠΆΠ΄Π΅ΠΌ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΡΡΡ end else
Editl.Text := Editl. Text + '31;
end;
// ΠΊΠ½ΠΎΠΏΠΊΠ° 4
procedure TForml. Button4Click (Sender: TObject); begin
if f = 0 // ΠΏΠ΅ΡΠ²Π°Ρ ΡΠΈΡΡΠ° ΡΠΈΡΠ»Π°
then
begin
Editl.Text := '4'; f := 1; // ΠΆΠ΄Π΅ΠΌ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΡΡΡ end else
Editl.Text := Editl. Text + '4';
end;
// ΠΊΠ½ΠΎΠΏΠΊΠ° 5
procedure TForml. Button5Click (Sender: TObject); begin
if f = 0 // ΠΏΠ΅ΡΠ²Π°Ρ ΡΠΈΡΡΠ° ΡΠΈΡΠ»Π°
then
begin
Editl.Text := '5'; f := 1; // ΠΆΠ΄Π΅ΠΌ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΡΡΡ end else
Editl.Text := Editl. Text + '5';
end;
// ΠΊΠ½ΠΎΠΏΠΊΠ° 6
procedure TForml. Button6Click (Sender: TObject); begin
if f = 0 // ΠΏΠ΅ΡΠ²Π°Ρ ΡΠΈΡΡΠ° ΡΠΈΡΠ»Π°
then
begin
Editl.Text := '6'; f := 1; // ΠΆΠ΄Π΅ΠΌ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΡΡΡ end else
Editl.Text := Editl. Text + '6';
end;
// ΠΊΠ½ΠΎΠΏΠΊΠ° 7
procedure TForml. Button7Click (Sender: TObject); begin
if f = 0 // ΠΏΠ΅ΡΠ²Π°Ρ ΡΠΈΡΡΠ° ΡΠΈΡΠ»Π°
then
begin
Editl.Text := '7'; f := 1; // ΠΆΠ΄Π΅ΠΌ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΡΡΡ end else
Editl.Text := Editl. Text + '7';
end;
// ΠΊΠ½ΠΎΠΏΠΊΠ° 8
procedure TForml. Button8Click (Sender: TObject); begin
if f = 0 // ΠΏΠ΅ΡΠ²Π°Ρ ΡΠΈΡΡΠ° ΡΠΈΡΠ»Π°
then
begin
Editl.Text := '8'; f := 1; // ΠΆΠ΄Π΅ΠΌ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΡΡΡ end else
Editl.Text := Editl. Text + '8';
end;
// ΠΊΠ½ΠΎΠΏΠΊΠ° 9
procedure TForml. Button9Click (Sender: TObject); begin
if f = 0 // ΠΏΠ΅ΡΠ²Π°Ρ ΡΠΈΡΡΠ° ΡΠΈΡΠ»Π°
then
begin
Editl.Text := '9'; f := 1; // ΠΆΠ΄Π΅ΠΌ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΡΡΡ end else
Editl.Text := Editl. Text + '9';
end;
// Π΄Π΅ΡΡΡΠΈΡΠ½Π°Ρ ΡΠΎΡΠΊΠ°
procedure TForml. ButtonZClick (Sender: TObject); begin
if Editl. Text = '0' then begin
Editl.Text := '0/; f := l; end;
if Pos (',', Editl. Text) = 0 then Editl. Text := Editl. Text +.
end;
// Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ procedure DoOper; var
numb: real; // ΡΠΈΡΠ»ΠΎ Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ΅
begin
// Π°ΡΡΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ,
// ΠΎΡΠ΅Π³ — ΠΊΠΎΠ΄ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΡ Π½Π°Π΄ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ.
// ΠΠΏΠ΅ΡΠ°Π½Π΄ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ΅. numb := StrToFloat (Forml.Editl.Text); case ΠΎΡΠ΅Π³ of 0:
accum := numb;
1:
accum := accum + numb;
2:
accum := accum — numb;
end;
Forml.Editl.Text := FloatToStr (accum); end;
// ΠΊΠ½ΠΎΠΏΠΊΠ° «+» .
procedure TForml. ButtonPlusClick (Sender: TObject);
{ ΠΠ°Π΄ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, Π²ΡΠ²Π΅ΡΡΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ, Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ ΡΠ΅ΠΊΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅ΠΆΠΈΠΌ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠΈΡΡΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°. } begin
if f = 0 // ΠΆΠ΄Π΅ΠΌ ΠΏΠ΅ΡΠ²ΡΡ ΡΠΈΡΡΡ,
// Π½ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ΅Π»ΠΊΠ½ΡΠ» Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ
then
ΠΎΡΠ΅Π³ := 1 // Π·Π°ΠΏΠΎΠΌΠ½ΠΈΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ else begin
// Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ΅ Π΅ΡΡΡ ΡΠΈΡΠ»ΠΎ DoOper; // Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΎΡΠ΅Π³ := 1; // Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ ΡΠ΅ΠΊΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ f := 0; // ΠΆΠ΄Π΅ΠΌ ΠΏΠ΅ΡΠ²ΡΡ ΡΠΈΡΡΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°
end; end;
// ΠΊΠ½ΠΎΠΏΠΊΠ°
procedure TForml. ButtonMinusClick (Sender: TObject);
// ΡΠΌ. ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΊ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ OnCLxck Π½Π° «+» begin
if f = 0 // ΠΆΠ΄Π΅ΠΌ ΠΏΠ΅ΡΠ²ΡΡ ΡΠΈΡΡΡ then
ΠΎΡΠ΅Π³ := 2 else begin
DoOper; // Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΎΡΠ΅Π³ := 2; // Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ ΡΠ΅ΠΊΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ f := 0; // ΠΆΠ΄Π΅ΠΌ ΠΏΠ΅ΡΠ²ΡΡ ΡΠΈΡΡΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°
end; end;
// ΠΊΠ½ΠΎΠΏΠΊΠ° «=».
procedure TForml. ButtonEnterClick (Sender: TObject); begin
if f = 0 // ΠΆΠ΄Π΅ΠΌ ΠΏΠ΅ΡΠ²ΡΡ ΡΠΈΡΡΡ
then
ΠΎΡΠ΅Π³ := 0 else begin
DoOper; // Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΎΡΠ΅Π³ := 0; // Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ ΡΠ΅ΠΊΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ f := 0; // ΠΆΠ΄Π΅ΠΌ ΠΏΠ΅ΡΠ²ΡΡ ΡΠΈΡΡΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°
end; end;
// ΠΊΠ½ΠΎΠΏΠΊΠ° «Ρ» — ΠΎΡΠΈΡΡΠΊΠ°
procedure TForml. ButtonCClick (Sender: TObject); begin
Editl.Text := '0'; accum := 0; oper := 0;
f := 0; // ΠΆΠ΄Π΅ΠΌ ΠΏΠ΅ΡΠ²ΡΡ ΡΠΈΡΡΡ ΡΠΈΡΠ»Π° end;
// Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ Π² ΠΏΠΎΠ»Π΅ Editl
procedure TForml. EditlChange (Sender: TObject; var Key: Char); begin
Key := Chr (0); // Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ end;
procedure TForml. FormCreate (Sender: TObject); begin
oper := 0; end;
end.
ΠΠ°ΡΠΈΠ°Π½Ρ 2. Π‘ΠΎΠ±ΡΡΠΈΡ OnClick Π½Π° Π²ΡΠ΅Ρ ΡΠΈΡΡΠΎΠ²ΡΡ ΠΊΠ½ΠΎΠΏΠΊΠ°Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΎΠ΄Π½Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°.
implementation
{$R *.dfm}
{ 1. ΠΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΡΠΌΡ ΡΠ²ΠΎΠΉΡΡΠ²Ρ Tag ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π°Π΄ΠΎ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠ°Π²Π½ΠΎΠ΅ ΡΠΈΡΡΠ΅, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΡΠ²ΠΈΡΡΡΡ Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ΅ ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡΠ°.
2. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΡ OnCLxck Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠΈΡΡΠΎΠ²ΡΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ «.1», Π½Π°Π΄ΠΎ Π·Π°Π΄Π°ΡΡ, ΡΡΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ OnCLick Π΄Π»Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΡΠ° ΠΆΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°. ΠΠ΅Π»Π°Π΅ΡΡΡ ΡΡΠΎ Π²ΡΠ±ΠΎΡΠΎΠΌ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ΅Π»ΡΠΊΠ° Π½Π° Π·Π½Π°ΡΠΊΠ΅ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡΠ΅Π³ΠΎΡΡ ΡΠΏΠΈΡΠΊΠ° Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠ΅ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Events. }.
var
accum: real; // Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ
oper: integer; // ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ: 1 — 2 —
// 0 — «Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ» (ΠΊΠ½ΠΎΠΏΠΊΠ° «=»).
f: integer;
{ / = 0 ΠΆΠ΄Π΅ΠΌ ΠΏΠ΅ΡΠ²ΡΡ ΡΠΈΡΡΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, f = 1 ΠΆΠ΄Π΅ΠΌ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΡΡΡ. }.
// ΠΠ°ΠΆΠ°ΡΠΈΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠΈ «Π²» — «9» procedure TForml. DigitBtnClick (Sender: TObject); var
Btn: TButton; ch: Char; begin
Btn := Sender as TButton; ch := Chr (48 + Btn. Tag);
// chr (48) = '0'; chr{49) = '4β ΠΈ m. d.
// ΠΌΠΎΠΆΠ½ΠΎ ΠΈ ΡΠ°ΠΊ: ch := Btn. Caption; case Btn. Tag of.
1. .9: // ΠΊΠ½ΠΎΠΏΠΊΠΈ «1» — «9» .
if f = 0 // ΠΏΠ΅ΡΠ²Π°Ρ ΡΠΈΡΡΠ° ΡΠΈΡΠ»Π° then begin
Editl.Text := ch; f := 1; // ΠΆΠ΄Π΅ΠΌ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΡΡΡ end else
Editl.Text := Editl. Text + ch;
0: // ΠΊΠ½ΠΎΠΏΠΊΠ° «0».
if Editl. Text '0' //Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ΅ 0 // ΡΡΠΎΠ±Ρ Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ΅ Π½Π΅ Π±ΡΠ»ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π½ΡΠ»Π΅ΠΉ // Π² Π½Π°ΡΠ°Π»Π΅ ΡΠΈΡΠ»Π° then
Editl.Text := Editl. Text + '0';
end;
end;
// Π΄Π΅ΡΡΡΠΈΡΠ½Π°Ρ ΡΠΎΡΠΊΠ°
procedure TForml. ButtonZClick (Sender: TObject); begin
if Editl. Text = '0' then begin
Editl.Text := '0/; f := 1; end;
if Pos (',', Editl. Text) = 0 then Editl. Text := Editl. Text +.
end;
// Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ procedure DoOper; var
numb: real; // ΡΠΈΡΠ»ΠΎ Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ΅ begin
// accum ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ,
// ΠΎΡΠ΅Π³ — ΠΊΠΎΠ΄ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΡ Π½Π°Π΄ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ.
// ΠΠΏΠ΅ΡΠ°Π½Π΄ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ΅. numb := StrToFloat (Forml.Editl.Text);
case oper of 0:
accum := numb;
1:
accum := accum + numb;
2:
accum := accum — numb;
end;
Forml.Editl.Text := FloatToStr (accum); end;
// ΠΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π½Π°ΠΆΠ°ΡΠΈΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠΈ «+», «-» ΠΈ «=» procedure TForml. OpBtnClick (Sender: TObject);
{ ΠΠ°Π΄ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, Π²ΡΠ²Π΅ΡΡΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ, Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ ΡΠ΅ΠΊΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅ΠΆΠΈΠΌ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠΈΡΡΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°. } var
Btn: TButton; begin
Btn := Sender as TButton;
if f = 0 // ΠΆΠ΄Π΅ΠΌ ΠΏΠ΅ΡΠ²ΡΡ ΡΠΈΡΡΡ, Π½ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°ΠΆΠ°Π» // Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ
then
// ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Tag ΠΊΠ½ΠΎΠΏΠΊΠΈ Ρ ΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ oper := Btn. Tag // Π·Π°ΠΏΠΎΠΌΠ½ΠΈΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ else begin
DoOper; // Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ oper := Btn. Tag; // Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ ΡΠ΅ΠΊΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ f := 0; // ΠΆΠ΄Π΅ΠΌ ΠΏΠ΅ΡΠ²ΡΡ ΡΠΈΡΡΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° end; end;
// ΠΊΠ½ΠΎΠΏΠΊΠ° Ρ — ΠΎΡΠΈΡΡΠΊΠ°
procedure TForml. ButtonCClick (Sender: TObject); begin
Editl.Text := '0'; accum := 0; oper := 0;
f := 0; // ΠΆΠ΄Π΅ΠΌ ΠΏΠ΅ΡΠ²ΡΡ ΡΠΈΡΡΡ ΡΠΈΡΠ»Π° end;
// Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ Π² ΠΏΠΎΠ»Π΅ Editl
procedure TForml. EditlChange (Sender: TObject; var Key: Char); begin
Key := Chr (0); // Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ end;
procedure TForml. FormCreate (Sender: TObject); begin
oper := 0; end;
end.