ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎβΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Delphi
ΠΡ ΠΎΠ΄Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΡΠ΅ΡΠ° Π²ΡΠ²Π΅ΡΡΠΈ Π½Π° ΡΠΊΡΠ°Π½ (ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°ΡΠΏΠ΅ΡΠ°ΡΠΊΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΡΠ°Π±ΠΎΡΡ Π½Π° ΠΏΡΠΈΠ½ΡΠ΅ΡΠ΅), ΡΠ½Π°Π±Π΄ΠΈΠ² ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌΠΈ. ΠΠ°Π½ Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ 5 ΡΡΡΠΎΠΊ ΠΈ 3 ΡΡΠΎΠ»Π±ΡΠ°. ΠΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠ²Π»ΡΡΡΡΡ ΡΠ΅Π»ΡΠ΅ ΡΠΈΡΠ»Π°. Π£ΠΏΠΎΡΡΠ΄ΠΎΡΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΏΠΎ Π½Π΅ ΡΠ±ΡΠ²Π°Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π²ΡΠΎΡΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΠ»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° ΡΠΎΡΡΠ°Π²ΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΈΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ , ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π²… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎβΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Delphi (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΠ°Π΄Π°Π½ΠΈΠ΅ 1. ΠΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ. Π Π°Π±ΠΎΡΠ° Ρ Π³ΡΠ°ΡΠΈΠΊΠΎΠΉ
Π¦Π΅Π»Ρ Π·Π°Π΄Π°Π½ΠΈΡ:
ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ΄ΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΡΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ.
ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½ΡΡ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ.
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΌΡΡΠΈ ΠΈ Π²Π²ΠΎΠ΄Π΅ ΡΠΎΡΠ΅ΠΊ Ρ Π΅Π΅ ΠΏΠΎΠΌΠΎΡΡΡ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ.
ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ.
ΠΠ° ΡΠΎΡΠΌΠ΅ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΡΠΎΡΠΌΡΠ»Ρ Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ, ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π²Π²ΠΎΠ΄ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ Π»ΡΠ±ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π₯ ΠΈ Π²ΡΠ²ΠΎΠ΄ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΡΠ°ΡΡΠ΅ΡΠ° ΠΏΠΎ ΡΠΎΡΠΌΡΠ»Π΅.
ΠΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ Π½Π° ΡΠΎΡΠΌΠ΅ ΠΎΠ±Π»Π°ΡΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°ΡΠΈΡΠΎΠ²Π°ΡΡ Π³ΡΠ°ΡΠΈΠΊΠΈ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡ Π²Π°ΡΠΈΠ°Π½ΡΠ°.
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π²Π²ΠΎΠ΄ΠΈΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠΎΡΠΊΠΈ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΈ/ΠΈΠ»ΠΈ ΠΊΠ»ΠΈΠΊΠ½ΡΡΡ ΠΏΠΎ ΡΠΈΡΡΠ½ΠΊΡ Ρ ΠΎΠ±Π»Π°ΡΡΡΠΌΠΈ, ΡΠΊΠ°Π·Π°Π² ΡΠΎΡΠΊΡ, ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΠΈ ΡΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ.
Π¦Π²Π΅ΡΠΎΠΌ Π² ΠΎΠ±Π»Π°ΡΡΠΈ Π³ΡΠ°ΡΠΈΠΊΠΈ ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ Π½Π° ΡΠΎΡΠΌΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ Π²ΡΠ²ΠΎΠ΄ ΠΎ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΠΎΡΠΊΠΈ ΠΎΠ±Π»Π°ΡΡΡΠΌ.
ΠΠ°ΡΠΈΠ°Π½Ρ Π·Π°Π΄Π°Π½ΠΈΡ:
1) ΠΏΡΠΈ Π₯=-0.7129
2) ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΈΡΡΠ»Π΅Π΄ΡΠ΅ΠΌΠΎΠΉ ΡΠΎΡΠΊΠΈ: (-0.5;-0.9)
ΠΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, TeEngine, Series, TeeProcs, Chart, StdCtrls, ExtCtrls, TeeFunci,
TeeShape;
type
TForm1 = class (TForm)
pnl1: TPanel;
edt1: TEdit;
lbl1: TLabel;
lbl2: TLabel;
btn1: TButton;
cht1: TChart;
lnsrsSeries1: TLineSeries;
lbl3: TLabel;
pnl2: TPanel;
cht2: TChart;
shp1: TShape;
Series1: TChartShape;
edt2: TEdit;
lbl4: TLabel;
edt3: TEdit;
lbl5: TLabel;
btn2: TButton;
lbl6: TLabel;
procedure btn1Click (Sender: TObject);
procedure FormCreate (Sender: TObject);
procedure btn2Click (Sender: TObject);
procedure cht2Click (Sender: TObject);
private
function Y (const x: real): Real;
procedure SetDot (const x, y: Real);
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function TForm1. Y (const x: real): Real;
begin
Result := Sin (arctan (x));
end;
procedure TForm1. btn1Click (Sender: TObject);
const
Range = 4;
Step = 0.1;
var
x: Real;
begin
lbl3.Caption := FloatToStr (Y (StrToFloat (edt1.Text)));
lnsrsSeries1.Clear;
x := -Range;
while x < Range do
begin
lnsrsSeries1.AddXY (x, y (x));
x := x + Step;
end;
end;
procedure TForm1. FormCreate (Sender: TObject);
begin
DecimalSeparator := '.';
end;
procedure TForm1. SetDot (const x, y: Real);
begin
shp1.Top := cht2.LeftAxis.CalcPosValue (y) — shp1. Height div 2;
shp1.Left := cht2.BottomAxis.CalcPosValue (x) — shp1. Width div 2;
if (0 < y) and ((x < 0) and (y < x + 1) or (x > 0) and (y < - x + 1)) then
begin
shp1.Brush.Color := clWhite;
lbl6.Caption := 'Π’ΠΎΡΠΊΠ° ΠΏΡΠ΅Π½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΎΠ±Π»Π°ΡΡΠΈ';
end
else
begin
shp1.Brush.Color := clRed;
lbl6.Caption := 'Π’ΠΎΡΠΊΠ° Π½Π΅ ΠΏΡΠ΅Π½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΎΠ±Π»Π°ΡΡΠΈ';
end
end;
procedure TForm1. btn2Click (Sender: TObject);
begin
SetDot (StrToFloat (edt2.Text), StrToFloat (edt3.Text));
end;
procedure TForm1. cht2Click (Sender: TObject);
var
x, y: Real;
begin
x := cht2.BottomAxis.CalcPosPoint (cht2.GetCursorPos.x);
Y := cht2.LeftAxis.CalcPosPoint (cht2.GetCursorPos.Y);
edt2.Text := FloatToStr (x);
edt3.Text := FloatToStr (Y);
SetDot (x, y);
end;
end.
ΠΠΈΡΡΠΈΠ½Π³:
ΠΠ°Π΄Π°Π½ΠΈΠ΅ 2. ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ
Π¦Π΅Π»Ρ Π·Π°Π΄Π°Π½ΠΈΡ:
ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² ΠΏΠΎ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌ Π΄Π°Π½Π½ΡΡ
ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ:
1) Π‘ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ F (X) Π½Π° ΠΎΡΡΠ΅Π·ΠΊΠ΅ [A, B] Π² ΡΠΎΡΠΊΠ°Ρ X1=Π+Π, Π³Π΄Π΅ Π=(Π-Π)/Π, Π — Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ.
2) ΠΠΎΡΡΡΠΎΠΈΡΡ ΡΠ°Π±Π»ΠΈΡΡ, Π³Π΄Π΅ ΡΠΊΠ°Π·Π°ΡΡ:
β ΡΠ°Π³Π° | Π | Π₯= | F (X)= | |
3) ΠΠΎ Π΄Π°Π½Π½ΡΠΌ ΡΠ°Π±Π»ΠΈΡΡ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Π³ΡΠ°ΡΠΈΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ F (X) Ρ ΠΏΡΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎ ΠΎΠ±ΠΎΠΈΠΌ ΠΎΡΡΠΌ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠ°ΡΡΡΠ°Π±Π° Π³ΡΠ°ΡΠΈΠΊΠ°.
ΠΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΊΠ°Π·Π°Π½ΠΈΡ:
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π³Π° Π Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΡΡΠΈΡΠ»ΡΡΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·.
ΠΠ°ΡΠΈΠ°Π½Ρ Π·Π°Π΄Π°Π½ΠΈΡ:
ΠΠΎΠΌΠ΅Ρ Π²Π°ΡΠΈΠ°Π½ΡΠ° | Π€ΡΠ½ΠΊΡΠΈΡ | ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ | |||
Π | Π | Π | |||
3. | cos (x) | /3 | 2*/3 | ||
ΠΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, TeEngine, Series, ExtCtrls, TeeProcs, Chart;
type
TForm1 = class (TForm)
cht1: TChart;
lnsrsSeries1: TLineSeries;
StringGrid1: TStringGrid;
procedure FormCreate (Sender: TObject);
private
function f (const x: Real): Real;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
// 1) Π‘ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ F (X)
function TForm1. f (const x: Real): Real;
begin
Result := Cos (x);
end;
procedure TForm1. FormCreate (Sender: TObject);
const
// Π½Π° ΠΎΡΡΠ΅Π·ΠΊΠ΅ [A, B] Π² ΡΠΎΡΠΊΠ°Ρ X1=Π+Π, Π³Π΄Π΅ Π=(Π-Π)/Π, Π — Π·Π°Π΄Π°Π½Π½ΠΎΠ΅
ΡΠΈΡΠ»ΠΎ.
A = {-PI;}PI / 3;
B = {Pi;}2 * PI / 3;
M = {360;}20;
H = (B — A) / M;
var
i: Integer;
x: Real;
begin
// 2) ΠΠΎΡΡΡΠΎΠΈΡΡ ΡΠ°Π±Π»ΠΈΡΡ, Π³Π΄Π΅ ΡΠΊΠ°Π·Π°ΡΡ:
StringGrid1.Cells[0, 0] := 'β Π¨Π°Π³Π°';
StringGrid1.Cells[1, 0] := 'H';
StringGrid1.Cells[2, 0] := 'X =';
StringGrid1.Cells[3, 0] := 'F (X) =';
x := A;
i := 0;
while x < B do
begin
inc (i);
StringGrid1.RowCount := StringGrid1. RowCount + 1;
StringGrid1.Cells[0, i] := IntToStr (i);
StringGrid1.Cells[1, i] := FloatToStr (H);
StringGrid1.Cells[2, i] := FloatToStr (X);
StringGrid1.Cells[3, i] := FloatToStr (f (X));
x := x + h;
end;
// 3) ΠΠΎ Π΄Π°Π½Π½ΡΠΌ ΡΠ°Π±Π»ΠΈΡΡ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Π³ΡΠ°ΡΠΈΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ F (X) Ρ
// ΠΏΡΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎ ΠΎΠ±ΠΎΠΈΠΌ ΠΎΡΡΠΌ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ
// ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠ°ΡΡΡΠ°Π±Π° Π³ΡΠ°ΡΠΈΠΊΠ°.
for i := 1 to StringGrid1. RowCount — 1 do
lnsrsSeries1.AddXY (StrToFloat (StringGrid1.Cells[2, i]),
StrToFloat (StringGrid1.Cells[3, i]));
StringGrid1.FixedCols := 1;
StringGrid1.FixedRows := 1;
end;
end.
ΠΠΈΡΡΠΈΠ½Π³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
ΠΠ°Π΄Π°Π½ΠΈΠ΅ 3. ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΡΠΈΠΊΠ»ΠΎΠ² Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅
Π¦Π΅Π»Ρ Π·Π°Π΄Π°Π½ΠΈΡ
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π°Π²ΡΠΊΠΎΠ² Π² Π²ΡΠ±ΠΎΡΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΡΠΈΠΊΠ»Π° ΠΈ ΡΠ°Π±Π»ΠΈΡΡ StringGrid.
ΠΠ½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ
ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ
1. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠΈΠΊΠ»Π°, Π½Π°ΠΉΡΠΈ ΡΡΠΌΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°ΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠ°Π±Π»ΠΈΡΡ Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ β ΡΠ°Π³Π°, Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ»Π΅Π½Π° ΡΡΠ΄Π°, ΡΡΠΌΠΌΡ ΡΡΠ΄Π° Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠ°Π³Π΅:
β ΡΠ°Π³Π° | ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ»Π΅Π½Π° ΡΡΠ΄Π° | Π‘ΡΠΌΠΌΠ° ΡΡΠ΄Π° Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠ°Π³Π΅ | |
2. ΠΠΎΡΡΡΠΎΠΈΡΡ Π³ΡΠ°ΡΠΈΠΊ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΠ°Π±Π»ΠΈΡΡ.
ΠΠ°ΡΠΈΠ°Π½Ρ Π·Π°Π΄Π°Π½ΠΈΡ:
ΠΠ°ΠΉΡΠΈ ΡΡΠΌΠΌΡ 15 ΡΠ»Π΅Π½ΠΎΠ² ΡΡΠ΄Π°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ
ΠΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, TeEngine, Series, ExtCtrls, TeeProcs, Chart;
type
TForm1 = class (TForm)
cht1: TChart;
StringGrid1: TStringGrid;
lnsrsSeries1: TLineSeries;
lnsrsSeries2: TLineSeries;
procedure FormCreate (Sender: TObject);
private
function a (const n: Integer): Real;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function TForm1. a (const n: Integer): Real;
begin
Result := Exp (Sqr (Ln (n)))/exp (ln (n)*ln (ln (n)));
end;
procedure TForm1. FormCreate (Sender: TObject);
const
FirstN = 2;
N = 15;
LastN = N + FirstN — 1;
var
i: Integer;
cur: Real;
sum: Real;
begin
StringGrid1.RowCount := N + 1;
StringGrid1.FixedCols := 1;
StringGrid1.FixedRows := 1;
StringGrid1.Cells[0, 0] := 'β Π¨Π°Π³Π°';
StringGrid1.Cells[1, 0] := 'Π’Π΅ΠΊΡΡΠΈΠΉ';
StringGrid1.Cells[2, 0] := 'Π‘ΡΠΌΠΌΠ°';
sum := 0;
for i := 1 to N do
begin
cur := a (i + (FirstN — 1));
sum := sum + cur;
StringGrid1.Cells[0, i] := IntToStr (i);
StringGrid1.Cells[1, i] := FloatToStr (cur);
StringGrid1.Cells[2, i] := FloatToStr (sum);
lnsrsSeries1.AddXY (i, cur);
lnsrsSeries2.AddXY (i, sum);
end;
end;
end.
ΠΠΈΡΡΠΈΠ½Π³:
ΡΡΠ½ΠΊΡΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠ° ΠΈΡΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ²
ΠΠ°Π΄Π°Π½ΠΈΠ΅ 4. Π Π°Π±ΠΎΡΠ° Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ ΡΠΈΡΠ΅Π»
Π¦Π΅Π»Ρ Π·Π°Π΄Π°Π½ΠΈΡ:
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ Π½Π°Π²ΡΠΊΠΎΠ² Π² ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ
ΠΠ½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°ΠΌΠΈ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½ΠΈΡ
ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ:
1. ΠΠ»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° ΡΠΎΡΡΠ°Π²ΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΈΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ , ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π² Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° Π² Π²ΠΈΠ΄Π΅ ΡΠ°Π±Π»ΠΈΡΡ Π² ΡΡΡΠ½ΡΡ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.
2. ΠΠ·ΡΡΠΈΠ² Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½ΠΈΡ, Π²ΡΠ±ΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ . ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Π»ΡΠ±ΡΠΌ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ Π΄Π°Π½Π½ΡΡ .
3. ΠΡ ΠΎΠ΄Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΡΠ΅ΡΠ° Π²ΡΠ²Π΅ΡΡΠΈ Π½Π° ΡΠΊΡΠ°Π½ (ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°ΡΠΏΠ΅ΡΠ°ΡΠΊΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΡΠ°Π±ΠΎΡΡ Π½Π° ΠΏΡΠΈΠ½ΡΠ΅ΡΠ΅), ΡΠ½Π°Π±Π΄ΠΈΠ² ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌΠΈ.
4. ΠΠΎΠ΄ΡΡΠΈΡΠ°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π) ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²; Π) ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΎΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΠΎΡΡΠ΅ΡΠ°:
1) ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ.
2) ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²ΡΠ΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
3) ΠΠ»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ° ΠΈΠ»ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌ (Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ)
4) ΠΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΡΠΊΠ»Π°Π΄ΠΊΠΈ
5) ΠΠΈΡΡΠΈΠ½Π³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ Π²ΡΠ΅Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ
6) ΠΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ (ΡΠ°ΡΠΏΠ΅ΡΠ°ΡΠΊΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΡΠΊΡΠ°Π½ΠΎΠ², ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΡΡΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ).
ΠΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΊΠ°Π·Π°Π½ΠΈΡ:
ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π°, ΠΈ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅, ΠΈ Π½ΡΠ»ΠΈ.
ΠΠ°ΡΠΈΠ°Π½Ρ Π·Π°Π΄Π°Π½ΠΈΡ:
ΠΠ°Π½ Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ 5 ΡΡΡΠΎΠΊ ΠΈ 3 ΡΡΠΎΠ»Π±ΡΠ°. ΠΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠ²Π»ΡΡΡΡΡ ΡΠ΅Π»ΡΠ΅ ΡΠΈΡΠ»Π°. Π£ΠΏΠΎΡΡΠ΄ΠΎΡΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΏΠΎ Π½Π΅ ΡΠ±ΡΠ²Π°Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π²ΡΠΎΡΠΎΠΉ ΡΡΡΠΎΠΊΠΈ.
ΠΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls, ExtCtrls, Printers;
type
TForm1 = class (TForm)
pnl1: TPanel;
pnl2: TPanel;
StringGrid2: TStringGrid;
StringGrid1: TStringGrid;
pnl4: TPanel;
rb1: TRadioButton;
rb2: TRadioButton;
pnl3: TPanel;
btn1: TButton;
edt1: TEdit;
lbl1: TLabel;
lbl2: TLabel;
edt2: TEdit;
btn2: TButton;
pnl6: TPanel;
lbl3: TLabel;
lbl4: TLabel;
edt3: TEdit;
edt4: TEdit;
lbl5: TLabel;
lbl6: TLabel;
pnl5: TPanel;
btn4: TButton;
btn3: TButton;
procedure btn1Click (Sender: TObject);
procedure btn2Click (Sender: TObject);
procedure btn3Click (Sender: TObject);
procedure btn4Click (Sender: TObject);
private
m: Integer;
n: Integer;
a: array of array of Integer;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
const
MyRandMax = 99;
procedure TForm1. btn1Click (Sender: TObject);
begin
m := StrToInt (edt1.Text);
n := StrToInt (edt2.Text);
SetLength (a, m, n);
StringGrid1.RowCount := m;
StringGrid1.ColCount := n;
StringGrid2.RowCount := m;
StringGrid2.ColCount := n;
pnl3.Enabled := False;
pnl4.Enabled := True;
StringGrid1.Options := StringGrid1. Options + [goEditing];
end;
procedure TForm1. btn2Click (Sender: TObject);
var
i, j: Integer;
begin
if rb1. Checked then
for i := 0 to m — 1 do
for j := 0 to n — 1 do
a[i, j] := StrToInt (StringGrid1.Cells[j, i])
else
begin
Randomize;
for i := 0 to m — 1 do
for j := 0 to n — 1 do
begin
a[i, j] := Random (2 * MyRandMax + 1) — MyRandMax;
StringGrid1.Cells[j, i] := IntToStr (a[i, j]);
end;
end;
pnl4.Enabled := False;
pnl5.Enabled := True;
StringGrid1.Options := StringGrid1. Options — [goEditing];
end;
procedure TForm1. btn3Click (Sender: TObject);
var
i, j, k: Integer;
CmpCount, XchgCount: integer;
buf: integer;
begin
btn3.Enabled := False;
pnl6.Enabled := True;
CmpCount := 0;
XchgCount := 0;
for i := 0 to m — 2 do
for k := i + 1 to m — 1 do
begin
Inc (CmpCount);
if a[i][1] > a[k][1] then
for j := 0 to n — 1 do
begin
Inc (XchgCount);
buf := a[i][j];
a[i][j] := a[k][j];
a[k][j] := buf;
end;
end;
for i := 0 to m — 1 do
for j := 0 to n — 1 do
StringGrid2.Cells[j, i] := IntToStr (a[i, j]);
edt3.Text := IntToStr (CmpCount);
edt4.Text := IntToStr (XchgCount);
end;
procedure TForm1. btn4Click (Sender: TObject);
begin
// ΠΠ°ΡΠ°Π»ΠΎ ΠΏΠ΅ΡΠ°ΡΠΈ
Printer.BeginDoc;
Printer.Canvas.Font.Color := clBlack;
Printer.Canvas.TextOut (40, 20, 'Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠΉ = ' + edt3. Text);
Printer.Canvas.TextOut (40, 40, 'ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΎΠΊ = ' + edt4. Text);
// ΠΠΎΠ½Π΅Ρ ΠΏΠ΅ΡΠ°ΡΠΈ
Printer.EndDoc;
end;
end.
ΠΠΈΡΡΠΈΠ½Π³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ
Π£ΡΠ»ΠΎΠ²ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ
Π‘ΠΎΠ·Π΄Π°ΡΡ Π‘1-Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ, ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΠΉ ΠΏΠΎ Π‘2, ΠΈΠ· N Π‘3 Π‘4 ΠΈ Π½Π°ΠΉΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡΠΈΠΉ ΡΡΠ»ΠΎΠ²ΠΈΡ Π‘5. ΠΡΠ²Π΅ΡΡΠΈ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅: «Π‘ΠΏΠΈΡΠΎΠΊ ΠΏΡΡΡ». ΠΠ»Ρ Π΄Π²ΡΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΡΠΏΠΈΡΠΊΠΎΠ² — ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ Π΄Π²Π°ΠΆΠ΄Ρ: Π² ΠΏΡΡΠΌΠΎΠΌ ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
ΠΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅ΡΡ 1) Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½ΡΡ Π² ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ· ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°; 2) Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ N; 3) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΡΠΏΠΈΡΠΎΠΊ Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ C2.
ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ: Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΠΏΡΡΡΠΎΠΉ ΡΠΏΠΈΡΠΎΠΊ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ (Π² Π½Π°ΡΠ°Π»ΠΎ/ΠΊΠΎΠ½Π΅Ρ/ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Ρ), Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠΏΠΈΡΠΊΠ° (Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ/Π²Π²ΠΎΠ΄ ΠΈ Π²ΡΠ·ΠΎΠ² ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΠΈΡΠΊΠ°), Π²ΡΠ²ΠΎΠ΄Π° ΡΠΏΠΈΡΠΊΠ° Π² Memo, ΠΏΠΎΠΈΡΠΊΠ° Π² ΡΠΏΠΈΡΠΊΠ΅, ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ°.
ΠΠ°ΡΠΈΠ°Π½ΡΡ Π·Π°Π΄Π°Π½ΠΈΠΉ
ΠΡΡΠΈΡΠ»ΡΡΡΡΡ ΠΏΠΎ ΠΏΡΠ°Π²ΠΈΠ»Ρ: ΡΡΠΌΠΌΠ° Π΄Π²ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΡΠΈΡΡ Π·Π°ΡΠ΅ΡΠΊΠΈ. ΠΡΠ»ΠΈ ΡΡΠΌΠΌΠ° Π±ΠΎΠ»ΡΡΠ΅ 15, Π²Π°ΡΠΈΠ°Π½Ρ = ΡΡΠΌΠΌΠ° ΠΌΠΈΠ½ΡΡ 15
β | Π‘1 | Π‘2 | Π‘3 | Π‘4 | Π‘5 | |
ΠΠ΄Π½ΠΎ; | ΠΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄ΠΎΠ² ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² | ΠΡΠ΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ , ΠΎΡ, Π° Π΄ΠΎ Ρ | ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΊΠΈΡΠΈΠ»Π»ΠΈΡΡ | ΠΠΎΠΌΠ΅Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ Π³Π»Π°ΡΠ½ΠΎΠΉ Π±ΡΠΊΠ²Ρ | ||
ΠΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Spin;
type
TForm1 = class (TForm)
ButtonAddRandom: TButton;
Label1: TLabel;
ButtonLoad: TButton;
OpenDialog: TOpenDialog;
Memo: TMemo;
ButtonAdd: TButton;
EditData: TEdit;
Labe2: TLabel;
ButtonSearch: TButton;
LabelAnsw: TLabel;
SpinEdit: TSpinEdit;
ButtonClear: TButton;
ButtonRefresh: TButton;
procedure FormCreate (Sender: TObject);
procedure FormClose (Sender: TObject; var Action: TCloseAction);
procedure ButtonAddClick (Sender: TObject);
procedure ButtonAddRandomClick (Sender: TObject);
procedure ButtonLoadClick (Sender: TObject);
procedure ButtonClearClick (Sender: TObject);
procedure ButtonSearchClick (Sender: TObject);
procedure ButtonRefreshClick (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
PElement=^TElement;
TElement=record
Next:PElement;
Data:char;
end;
var
Form1: TForm1;
ListBegining, ListEnding: PElement;
implementation
{$R *.dfm}
procedure CreateList (var ListN, ListK: PElement; I: char);
begin
New (ListN);
ListK:=ListN;
ListN^.Data:=I;
ListN^.Next:=nil;
end;
procedure AddFirst (var ListN, ListK: PElement;I:char);
var
Elem:PElement;
begin
New (Elem);
Elem^.Data:=I;
Elem^.Next:=ListN;
ListN:=Elem;
end;
procedure AddLast (ListN:PElement;var ListK: PElement;I:char);
begin
New (ListK^.next);
ListK^.Next^.Data:=I;
ListK^.Next^.Next:=nil;
ListK:=ListK^.Next;
end;
procedure AddAfter (ListN, ListC, ListK: PElement;I:char);
var
Elem:PElement;
begin
New (Elem);
Elem^.Data:=I;
Elem^.Next:=ListC^.Next;
ListC^.Next:=Elem;
end;
procedure ClearList (var ListN, ListK: PElement);
var
Elem:PElement;
begin
Elem:=ListN;
while Elem<>nil do
begin
ListN:=ListN^.Next;
Dispose (Elem);
Elem:=ListN;
end;
ListK:=nil;
end;
procedure TForm1. FormCreate (Sender: TObject);
begin
Randomize;
ListBegining:=nil;
ListEnding:=nil;
end;
procedure TForm1. FormClose (Sender: TObject; var Action: TCloseAction);
begin
ClearList (ListBegining, ListEnding);
end;
procedure Add (var ListN, ListK: PElement;I:char);
var
listC:PElement;
begin
if ListN = nil then
CreateList (ListN, ListK, I)
else
if i <= ListN^.Data then
AddFirst (ListN, ListK, I)
else
if i >= ListK^.Data then
AddLast (ListN, ListK, I)
else
begin
ListC:=ListN;
while (ListC^.next^.Data) <= i do
ListC := ListC^.next;
AddAfter (ListN, ListC, ListK, I)
end;
end;
procedure ShowList;
var
i:Integer;
ListC:PElement;
begin
i:=0;
Form1.Memo.Clear;
ListC:=ListBegining;
if ListC=nil then
Form1.Memo.Lines.Add ('ΠΡΡΡΠΎ');
while ListC<>nil do
begin
inc (i);
Form1.Memo.Lines.Add (IntToStr (i)+') ΠΠ΄ΡΠ΅Ρ: '+
Format ('%p',[ListC])+' | ΠΠ»Π΅ΠΌΠ΅Π½Ρ: '+ListC^.Data+
' | Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ: '+Format ('%p',[ListC.Next]));
ListC:=ListC^.next;
end;
end;
procedure TForm1. ButtonAddClick (Sender: TObject);
var
I:char;
begin
try
I:=EditData.Text[1];
Add (ListBegining, ListEnding, I);
except
ShowMessage ('ΠΠ΅Π²Π΅ΡΠ½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ Π²Π²ΠΎΠ΄Π°');
end;
ShowList;
end;
procedure TForm1. ButtonAddRandomClick (Sender: TObject);
var j: Integer;
i:char;
begin
for j:=1 to SpinEdit. Value do
begin
I:=chr (ord ('Π°')+Random (33));
Add (ListBegining, ListEnding, I);
end;
ShowList;
end;
procedure TForm1. ButtonLoadClick (Sender: TObject);
var
DataFile:TextFile;
I:char;
begin
if OpenDialog. Execute then
begin
AssignFile (DataFile, OpenDialog. FileName);
try
Reset (DataFile);
try
try
while not Eof (DataFile) do
begin
readln (Datafile, I);
Add (ListBegining, ListEnding, I);
end;
except
ShowMessage ('ΠΠ΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅');
end;
finally
CloseFile (DataFile);
end;
except
ShowMessage ('ΠΠ΅ ΡΠ΄Π°Π»ΠΎΡΡ ΠΎΡΠΊΡΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ»');
end;
end
else
ShowMessage ('Π€Π°ΠΉΠ» Π½Π΅ Π·Π°Π΄Π°Π½');
ShowList;
end;
procedure TForm1. ButtonClearClick (Sender: TObject);
begin
ClearList (ListBegining, ListEnding);
ShowList;
end;
procedure TForm1. ButtonSearchClick (Sender: TObject);
var
listC, lastb: PElement;
num:integer;
f:boolean;
begin
listC:=ListBegining;
num:=0;
f:=false;
while listC<>nil do
begin
inc (num);
if (listC^.Data='Π°')or (listC^.Data='Π΅')or (listC^.Data='ΠΈ')or (listC^.Data='ΠΎ')or (l
istC^.Data='Ρ')
or (listC^.Data='Ρ')or (listC^.Data='Ρ')or (listC^.Data='Ρ')or (listC^.Data='Ρ')
then
begin
f:=true;
break;
end;
listC:=listC^.Next;
end;
if f then
LabelAnsw.Caption:='ΠΠΎΠΌΠ΅Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ Π³Π»Π°ΡΠ½ΠΎΠΉ Π±ΡΠΊΠ²Ρ: '+inttostr (num)
else
LabelAnsw.Caption:='ΠΠ΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ';
end;
procedure TForm1. ButtonRefreshClick (Sender: TObject);
begin
ShowList;
end;
end.