ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° языкС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎβ€“ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования 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.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ