Скачиваний:
34
Добавлен:
01.05.2014
Размер:
13.16 Кб
Скачать
я23.10. ЏаЁ¬ЁвЁўл п¤а  ¤«п ®Ў¬Ґ­  б®®ЎйҐ­Ёп¬Ё

Ќ Ї®¬­о, зв® ¬л Є« ббЁдЁжЁа®ў «Ё ЇаЁ¬ЁвЁўл п¤а  ­  ваЁ
ЈагЇЇл:
1) ЇаЁ¬ЁвЁўл гЇа ў«Ґ­Ёп Їа®жҐбб ¬Ё;
2) ЇаЁ¬ЁвЁўл бЁ­еа®­Ё§ жЁЁ Їа®жҐбб®ў;
3) ЇаЁ¬ЁвЁўл ®Ў¬Ґ­  ¤ ­­л¬Ё.

‘Ё­еа®­Ё§ жЁп Ё ®Ў¬Ґ­ ¤ ­­л¬Ё ў¬Ґб⥠­ §лў овбп ®Ў®ЎйҐ­­®
я2ў§ Ё¬®¤Ґ©бвўЁҐ¬.я0
…б«Ё ®Їпвм Ї®бва®Ёвм ­ҐЄ®в®аго ¬­®Ј®га®ў­Ґўго Є« ббЁдЁЄ жЁо,
в® ЇаЁ¬ЁвЁўл ўв®а®Ј® Ё ваҐв쥣® Є« бб  б«Ґ¤гҐв Ї®¬ҐбвЁвм
ў б«Ґ¤гойго ЁҐа аеЁзҐбЄго б奬г:

ЋЎ¬Ґ­ ¤ ­­л¬Ё
ДДДДДДДДДДДДД
‘Ё­еа®­Ё§ жЁп

’.Ґ. ®Ў¬Ґ­ ¤ ­­л¬Ё - нв® «®ЈЁзҐбЄЁ Ў®«ҐҐ ўлб®ЄЁ© га®ўҐ­м
ў§ Ё¬®¤Ґ©бвўЁп Їа®жҐбб®ў, 祬 бЁ­еа®­Ё§ жЁп.

ЋЎ¬Ґ­ ¤ ­­л¬Ё ­Ґ ¬®¦Ґв Ўлвм ॠ«Ё§®ў ­ ЎҐ§ бЁ­еа®­Ё§ жЁЁ.
ЏаЁ н⮬ б।бвў  бЁ­еа®­Ё§ жЁЁ "ўбва Ёў овбп" ў б।бвў  ®Ў¬Ґ­ 
¤ ­­л¬Ё в ЄЁ¬ ®Ўа §®¬, зв® ®­Ё ®Є §лў овбп бЄалвл¬Ё ®в
Ї®«м§®ў вҐ«п.
Џ®«м§®ў вҐ«о ЇаҐ¤®бв ў«пҐвбп Ї а  ЇаЁ¬ЁвЁў®ў вЁЇ : SEND,
RECEIVE Ё«Ё READ, WRITE.

ЋЎ¬Ґ­ ¤ ­­л¬Ё ¬®¦Ґв а бб¬ ваЁў вмбп ў ¤ўге  бЇҐЄв е.
1) ®Ў¬Ґ­ Їа®Ёб室Ёв ¬Ґ¦¤г Їа®жҐбб ¬Ё, ўлЇ®«­пойЁ¬Ёбп ­ 
®¤­®© дЁ§ЁзҐбЄ®© ¬ иЁ­Ґ;
2) ®Ў¬Ґ­ Їа®Ёб室Ёв ¬Ґ¦¤г Їа®жҐбб ¬Ё, ўлЇ®«­пойЁ¬Ёбп ­ 
а §«Ёз­ле дЁ§ЁзҐбЄЁе ¬ иЁ­ е.

‚ ¤ ­­®¬ Ї а Ја дҐ ¬л а бᬮваЁ¬ ЇҐаўл© ў аЁ ­в ®Ў¬Ґ­ 
¤ ­­л¬Ё, а бб¬ ваЁў п б।бвў  ®Ў¬Ґ­  Є Є ЇаЁ¬ЁвЁўл п¤а . Њл
гўЁ¤Ё¬, Єбв вЁ, зв® нвЁ ЇаЁ¬ЁвЁўл Ї®¤Ї ¤ ов Ї®¤ ®ЇаҐ¤Ґ«Ґ­ЁҐ
Ї®­пвЁп ЊЋЌ€’Ћђ, а бᬮв७­®Ґ ўлиҐ.

ЋЎ¬Ґ­г ¤ ­­л¬Ё ў 楫®¬, б гзҐв®¬ ў®§¬®¦­®бвЁ ўлЇ®«­Ґ­Ёп
ў§ Ё¬®¤Ґ©бвўгойЁе Їа®жҐбб®ў ­  а §«Ёз­ле ¬ иЁ­ е, Ї®бўп饭
бЇҐжЁ «м­л© а §¤Ґ«, а бб¬ ваЁў ойЁ© ў®б쬮© га®ўҐ­м Ў §®ў®©
Є« ббЁдЁЄ жЁЁ ®ЇҐа жЁ®­­®© б।л - га®ўҐ­м Є®¬¬г­ЁЄ жЁ©.

Љ Є Ё а ­ҐҐ, ¬л а бᬮваЁ¬ ¬®¤Ґ«Ё ®Ў¬Ґ­  ¤ ­­л¬Ё,   § вҐ¬
ЇаЁўҐ¤Ґ¬ ЇаЁ¬Ґал б।бвў ®Ў¬Ґ­  ¤ ­­л¬Ё ў ॠ«м­ле ®ЇҐа жЁ®­­ле
б। е.

Ѓ §®ўл¬ б।бвў®¬ ®Ў¬Ґ­  ¤ ­­л¬Ё ¬Ґ¦¤г Їа®жҐбб ¬Ё пў«пҐвбп
б।бвў®, ­ §лў Ґ¬®Ґ ЎгдҐа®¬.

я23.10.1. ЃгдҐа Є Є б।бвў® Є®¬¬г­ЁЄ жЁЁ ¬Ґ¦¤г Їа®жҐбб ¬Ё

ЏаЁ ®аЈ ­Ё§ жЁЁ бўп§Ё ¬Ґ¦¤г Їа®жҐбб ¬Ё б Ї®¬®ймо «оЎ®Ј®
б।бвў  вॡгҐвбп б®бв ўЁвм бЇҐжЁдЁЄ жЁо Є н⮬г б।бвўг.
‘ЇҐжЁдЁЄ жЁп ЎгдҐа  Є Є б।бвў  бўп§Ё ўлЈ«п¤Ёв б«Ґ¤гойЁ¬
®Ўа §®¬:
- б®®ЎйҐ­Ёп ў ЎгдҐаҐ Ё¬Ґов дЁЄбЁа®ў ­­л© а §¬Ґа;
- а §¬Ґа ЎгдҐа  ®Ја ­ЁзҐ­, ЎгдҐа - Є®«м楢®©;
- Ї®бл«Є  б®®ЎйҐ­Ёп ў Ї®«­л© ЎгдҐа ­Ґ¤®ЇгбвЁ¬ ;
- з⥭ЁҐ б®®ЎйҐ­Ёп Ё§ Їгбв®Ј® ЎгдҐа  в Є¦Ґ ­Ґ¤®ЇгбвЁ¬ .

ЏҐаҐзЁб«Ёў гб«®ўЁп дг­ЄжЁ®­Ёа®ў ­Ёп ЎгдҐа , ¬®¦­® Ї®бва®Ёвм
ҐЈ® ®ЇЁб ­ЁҐ, а бб¬ ваЁў п ЎгдҐа ў ўЁ¤Ґ ¬®­Ёв®а .
Type
PBuffer = ^TBuffer;
TBuffer = Object
n : [0..N]; {⥪г饥 Є®«ЁзҐбвў® б®®ЎйҐ­Ё© ў ЎгдҐаҐ}
in : [0..N-1]; {Ё­¤ҐЄб п祩ЄЁ, ў Є®в®аго Їа®Ё§ў®¤Ёвбп}
{⥪гй п § ЇЁбм}
out : [0..N-1]; {Ё­¤ҐЄб п祩ЄЁ, Ё§ Є®в®а®© Їа®Ё§ў®¤Ёвбп}
{⥪г饥 з⥭ЁҐ}
Buf : Array[0..N-1] Of TMessage;
RList : PList; {®зҐаҐ¤м Їа®жҐбб®ў, ¦¤гйЁе з⥭Ёп}
WList : PList; {®зҐаҐ¤м Їа®жҐбб®ў, ¦¤гйЁе § ЇЁбЁ}
Constructor Init;
Destructor Done;
Procedure Write(M : TMessage);
Procedure Read(Var M : TMessage);
End {TBuffer};

‘奬  ЁбЇ®«м§®ў ­Ёп ЎгдҐа  ўлЈ«п¤Ёв б«Ґ¤гойЁ¬ ®Ўа §®¬.
Var
B : PBuffer;
Begin
B := New(PBuffer, Init);
...
Dispose(B, Done);
End.

Џа®жҐбб 1: Џа®жҐбб 2:
Procedure Џа®Ё§ў®¤ЁвҐ«м; Procedure Џ®вॡЁвҐ«м;
Var Var
Message : TMessage; Message : TMessage;
Begin Begin
While True Do Begin While True Do Begin
... ...
‘д®а¬Ёа®ў вм(Message); B^.Read(Message);
B^.Write(Message); ЋЎа Ў®в вм(Message);
... ...
End {While}; End {While};
End {Џа®Ё§ў®¤ЁвҐ«м}; End {Џ®вॡЁвҐ«м};

–Ґ«мо ЁбЇ®«м§®ў ­Ёп ЎгдҐа  ЇаЁ ®Ў¬Ґ­Ґ ¤ ­­л¬Ё ¬Ґ¦¤г
Їа®жҐбб ¬Ё пў«пҐвбп б®Ј« б®ў ­ЁҐ бЄ®а®б⥩ § ЇЁбЁ Ё з⥭Ёп
Ё­д®а¬ жЁЁ а §«Ёз­л¬Ё Їа®жҐбб ¬Ё.
…б«Ё бЄ®а®бвЁ § ЇЁбЁ Ё з⥭Ёп ®¤Ё­ Є®ўл, в® аЁбг­®Є
б®бв®п­Ёп ЎгдҐа  Ўг¤Ґв ўлЈ«п¤Ґвм ЇаЁ¬Ґа­® в Є:

ЪДДДДДДДДДДДДДДДДДДї
і і
ГДДДДДДДДДДДДДДДДДДґ
і//////////////////і ДДДДДДДДД> out з⥭ЁҐ
ГДДДДДДДДДДДДДДДДДДґ (зЁв Ґ¬ Ё§ ЇҐаў®©
і//////////////////і § ­пв®© п祩ЄЁ)
ГДДДДДДДДДДДДДДДДДДґ
і//////////////////і
ГДДДДДДДДДДДДДДДДДДґ
‡ ЇЁбм in ДДДДДД> і і
(ЇЁиҐ¬ ў ЇҐаўго ГДДДДДДДДДДДДДДДДДДґ
бў®Ў®¤­го п祩Єг) і і
АДДДДДДДДДДДДДДДДДДЩ

…б«Ё бЄ®а®бвм з⥭Ёп ЇаҐўли Ґв бЄ®а®бвм § ЇЁбЁ, в® б奬 
б®бв®п­Ёп ЎгдҐа  Ўг¤Ґв ўлЈ«п¤Ґвм б«Ґ¤гойЁ¬ ®Ўа §®¬.

ЪДДДДДДДДДДДДДДДДДДї
і і
ГДДДДДДДДДДДДДДДДДДґ
і і
ГДДДДДДДДДДДДДДДДДДґ
і і
ГДДДДДДДДДДДДДДДДДДґ
і//////////////////і ДДДДДДДДД> out з⥭ЁҐ
ГДДДДДДДДДДДДДДДДДДґ
‡ ЇЁбм in ДДДДДД> і і out -> in
ГДДДДДДДДДДДДДДДДДДґ
і і
АДДДДДДДДДДДДДДДДДДЩ

’.Ґ. ЎгдҐа Ўг¤Ґв Ў®«м襥 ўаҐ¬п Їгбвл¬, 祬 § ­пвл¬,  
Їа®жҐбб, зЁв ойЁ© Ё§ ЎгдҐа , Ўг¤Ґв ¦¤ вм § ЇЁбЁ.

…б«Ё бЄ®а®бвм § ЇЁбЁ ЇаҐўли Ґв бЄ®а®бвм з⥭Ёп, в® б奬 
б®бв®п­Ёп ЎгдҐа  Ўг¤Ґв ўлЈ«п¤Ґвм б«Ґ¤гойЁ¬ ®Ўа §®¬.

ЪДДДДДДДДДДДДДДДДДДї
і//////////////////і
ГДДДДДДДДДДДДДДДДДДґ
і//////////////////і
ГДДДДДДДДДДДДДДДДДДґ
‡ ЇЁбм in ДДДДДД> і//////////////////і
ГДДДДДДДДДДДДДДДДДДґ
in -> out і//////////////////і ДДДДДДДДД> out з⥭ЁҐ
ГДДДДДДДДДДДДДДДДДДґ
і//////////////////і
ГДДДДДДДДДДДДДДДДДДґ
і//////////////////і
АДДДДДДДДДДДДДДДДДДЩ

’.Ґ. ЎгдҐа Ўг¤Ґв Ў®«м襥 ўаҐ¬п Ї®«­л¬, 祬 бў®Ў®¤­л¬,  
Їа®жҐбб, § ЇЁблў ойЁ© ў ЎгдҐа, Ўг¤Ґв ¦¤ вм з⥭Ёп.

ђ бЇЁиҐ¬ ⥯Ґам ¬Ґв®¤л ¬®­Ёв®а  Ѓ“”…ђ.

Constructor TBuffer.Init;
Begin
n := 0;
in := 0;
out := 0;
RList := New(PList, Init);
WList := New(PList, Init);
End {TBuffer.Init};

Destructor TBuffer.Done;
Begin
Dispose(RList, Done);
Dispose(WList, Done);
End {TBuffer.Done};

Procedure TBuffer.Write(M : TMessage);
Begin
‡ ЇаҐв ЇаҐалў ­Ё©;
If n = N Then Begin {ЎгдҐа Ї®«®­}
WList^.Insert(’ҐЄгйЁ© Їа®жҐбб); {¦¤Ґ¬ § ЇЁбЁ}
Џ…ђ…ЌЂ‡ЌЂ—€’њ ЏђЋ–…‘‘Ћђ;
End {If};
Inc(n);
Buf[in] := M;
in := (in + 1) MOD N;
If RList ­Ґ Їгбв п Then Begin { ЄвЁўЁ§ жЁп ¦¤г饣® з⥭Ёп}
ЋзҐаҐ¤м_Ј®в®ўле.Insert(’ҐЄгйЁ© Їа®жҐбб);
WList^.Remove(ЏҐаўл© Їа®жҐбб);
ЏҐаҐ¤ вм гЇа ў«Ґ­ЁҐ(’ҐЄгйЁ© Їа®жҐбб, ЏҐаўл© Їа®жҐбб);
End {If};
ђ §аҐиҐ­ЁҐ ЇаҐалў ­Ё©;
End {TBuffer.Write};

Procedure TBuffer.Read(Var M : TMessage);
Begin
‡ ЇаҐйҐ­ЁҐ ЇаҐалў ­Ё©;
If n = 0 Then Begin
RList^.Insert(’ҐЄгйЁ© Їа®жҐбб); {¦¤Ґ¬ з⥭Ёп}
Џ…ђ…ЌЂ‡ЌЂ—€’њ ЏђЋ–…‘‘Ћђ;
End {If};
Dec(n);
M := Buf[out];
out := (out + 1) MOD N;
If WList ­Ґ Їгбв п Then Begin { ЄвЁўЁ§ жЁп ¦¤г饣® § ЇЁбЁ}
ЋзҐаҐ¤м_Ј®в®ўле.Insert(’ҐЄгйЁ© Їа®жҐбб);
RList^.Remove(ЏҐаўл© Їа®жҐбб);
ЏҐаҐ¤ вм гЇа ў«Ґ­ЁҐ(’ҐЄгйЁ© Їа®жҐбб, ЏҐаўл© Їа®жҐбб);
End {If};
ђ §аҐиҐ­ЁҐ ЇаҐалў ­Ё©;
End {TBuffer.Read};

я2‚лў®¤л

1) ‚­Ґи­Ґ а Ў®в  б ЎгдҐа®¬ ­ Ї®¬Ё­ Ґв а Ў®вг б д ©«®¬:
‘®§¤ вм; ‡ ЇЁб вм; Џа®зЁв вм; ђ §агиЁвм;
ђ Ў®в  «оЎле б।бвў ®Ў¬Ґ­  ¤ ­­л¬Ё Ї®е®¦  ­  нвЁ ¤Ґ©бвўЁп.

2) „ўҐ ®зҐаҐ¤Ё Їа®жҐбб®ў ЁбЇ®«м§говбп ў Є зҐб⢥ б।бвў
бЁ­еа®­Ё§ жЁЁ § ЇЁбЁ Ё з⥭Ёп.
‚¬Ґбв® ЇаאַЈ® ЁбЇ®«м§®ў ­Ёп ®зҐаҐ¤Ґ© ¬®Јгв
ЁбЇ®«м§®ў вмбп ᥬ д®ал. ‚ н⮬ б«гз Ґ ­г¦­  Ї а  ᥬ д®а®ў,
Є®в®алҐ Ё¬Ґов б¬лб« "Ќ…_Џ“‘’" Ё "Ќ…_ЏЋ‹ЋЌ".
Љ®Ј¤  Їа®жҐбб ЇЁиҐв б®®ЎйҐ­ЁҐ ў ЎгдҐа,   ®­ ®Є §лў Ґвбп
Ї®«­л¬, Їа®жҐбб ўлЇ®«­пҐв ®ЇҐа жЁо Ќ…_ЏЋ‹ЋЌ.ђ.
…б«Ё ЎгдҐа ­Ґ Ї®«®­ Ё ®ЇҐа жЁп § ЇЁбЁ Їа®и«  гбЇҐи­®, в®
Їа®жҐбб ўлЇ®«­пҐв ®ЇҐа жЁо Ќ…_Џ“‘’.V,  ЄвЁўЁ§Ёагп зЁв ойЁ©
Їа®жҐбб, ¦¤гйЁ© § ЇЁбЁ.
Љ®Ј¤  Їа®жҐбб зЁв Ґв б®®ЎйҐ­ЁҐ Ё§ ЎгдҐа ,   ®­ ®Є §лў Ґвбп
Їгбвл¬, Їа®жҐбб ўлЇ®«­пҐв ®ЇҐа жЁо Ќ…_Џ“‘’.ђ.
…б«Ё ЎгдҐа ­Ґ Їгбв Ё ®ЇҐа жЁп з⥭Ёп Їа®и«  гбЇҐи­®, в®
Їа®жҐбб ўлЇ®«­пҐв ®ЇҐа жЁо Ќ…_ЏЋ‹ЋЌ_V,  ЄвЁўЁ§Ёагп ЇЁигйЁ©
Їа®жҐбб, ¦¤гйЁ© з⥭Ёп.

3) ЌҐ¤®бв вЄ ¬Ё ЎгдҐа  пў«повбп:
- дЁЄбЁа®ў ­­л© а §¬Ґа;
- ॠ«м­ п ЇҐаҐ§ ЇЁбм ¤ ­­ле ў ЎгдҐа Ё Ё§ ЎгдҐа .

‘«Ґ¤гойЁ© ¬Ґв®¤ ®Ў¬Ґ­  ¤ ­­л¬Ё гбва ­пҐв ­Ґ¤®бв вЄЁ ЎгдҐа .


я23.10.2. Џ®зв®ўл© пйЁЄ б ®зҐаҐ¤мо б®®ЎйҐ­Ё©

“бва ­Ґ­Ёп ­Ґ¤®бв вЄ  ЎгдҐа , § Є«оз о饣®бп ў дЁЄбЁа®ў ­­®¬
ҐЈ® а §¬ҐаҐ, гбва ­пҐвбп Їг⥬ ЁбЇ®«м§®ў ­Ёп ¤Ё­ ¬ЁзҐбЄ®Ј®
®ЎкҐЄв  - ®зҐаҐ¤Ё б®®ЎйҐ­Ё©.
“бва ­Ґ­ЁҐ ­Ґ¤®бв вЄ  ЎгдҐа , § Є«оз о饣®бп ў ॠ«м­®©
ЇҐаҐ§ ЇЁбЁ ¤ ­­ле, гбва ­пҐвбп Їг⥬ Ї®¬ҐйҐ­Ёп ў ®зҐаҐ¤м
гЄ § вҐ«Ґ© ­  б®®ЎйҐ­Ёп,   ­Ґ б ¬Ёе б®®ЎйҐ­Ё©.
‚ Є зҐб⢥ б।бвў бЁ­еа®­Ё§ жЁЁ § ЇЁбЁ Ё з⥭Ёп Ї®-ЇаҐ¦­Ґ¬г
Ўг¤Ґ¬ ЁбЇ®«м§®ў вм ®зҐаҐ¤Ё Їа®жҐбб®ў.

ЋЇЁиҐ¬ ®ЎкҐЄв, 㤮ў«Ґвў®апойЁ© ЇаЁўҐ¤Ґ­­®© ўлиҐ
бЇҐжЁдЁЄ жЁЁ, Ё ­ §®ўҐ¬ ҐЈ® я2Ї®зв®ўл¬ пйЁЄ®¬.

Type
PPostBox = ^TPostBox;
TPostBox = Object
TList : PList; {®зҐаҐ¤м Їа®жҐбб®ў, Ї®б« ўиЁе б®®ЎйҐ­ЁҐ}
RList : PList; {®зҐаҐ¤м Їа®жҐбб®ў, ¦¤гйЁе б®®ЎйҐ­Ёп}
MList : PList; {®зҐаҐ¤м гЄ § вҐ«Ґ© ­  б®®ЎйҐ­Ёп}
Constructor Init;
Destructor Done;
Procedure PutMsg(M : Pointer);
Procedure GetMsg(Var M : Pointer);
End {TPostBox};

я2‡ ¬Ґз ­Ёп

1) ‘奬  ЁбЇ®«м§®ў ­Ёп Ї®зв®ў®Ј® пйЁЄ  ў ЇаЁЄ« ¤­®©
Їа®Ја ¬¬Ґ  ­ «®ЈЁз­  б奬Ґ ЁбЇ®«м§®ў ­Ёп ЎгдҐа .
2) €§ ¤ўге ®зҐаҐ¤Ґ© - Їа®жҐбб®ў, Ї®б« ўиЁе б®®ЎйҐ­ЁҐ, Ё
Їа®жҐбб®ў, ¦¤гйЁе б®®ЎйҐ­ЁҐ, ў Їа®Ё§ў®«м­л© ¬®¬Ґ­в ўаҐ¬Ґ­Ё
бгйҐбвўгҐв в®«мЄ® ®¤­ .
3) Џа®жҐббл, ҐбвҐб⢥­­®, §­ ов вЁЇ б®®ЎйҐ­Ё© Є Є вЁЇ
¤ ­­ле.

‘onstructor TPostBox.Init;
Begin
RList := New(PList, Init);
TList := New(PList, Init);
MList := New(PList, Init);
End {TPOstBox.Init};

Destructor TPostBox.Done;
Begin
Dispose(RList, Done);
Dispose(TList, Done);
Dispose(MList, Done);
End {TPostBox.Done};

Procedure TPostBox.PutMsg(M : Pointer);
Begin
‡ ЇаҐв ЇаҐалў ­Ё©;
MList^.Insert(M);
TList^.Insert(’ҐЄгйЁ© Їа®жҐбб);
If RList ­Ґ Їгбв  Then
RList^.Remove(ЏҐаўл© Їа®жҐбб)
Else
ЋзҐаҐ¤м_Ј®в®ўле.Remove(ЏҐаўл© Їа®жҐбб);
ЏҐаҐ¤ вм гЇа ў«Ґ­ЁҐ(’ҐЄгйЁ© Їа®жҐбб, ЏҐаўл© Їа®жҐбб);
ђ §аҐиҐ­ЁҐ ЇаҐалў ­Ё©;
End {TPostBox.PutMsg};

Procedure TPostBox.GetMsg(Var M : Pointer);
Begin
‡ ЇаҐйҐ­ЁҐ ЇаҐалў ­Ё©;
If MList Їгбв  Then Begin
RList^.Insert(’ҐЄгйЁ© Їа®жҐбб); {¦¤Ґ¬ § ЇЁбЁ}
Џ…ђ…ЌЂ‡ЌЂ—€’њ ЏђЋ–…‘‘Ћђ;
End {If};
MList^.Remove(ЏҐаў®Ґ б®®ЎйҐ­ЁҐ);
M := ЏҐаў®Ґ б®®ЎйҐ­ЁҐ;
Tlist^.Remove(ЏҐаўл© Їа®жҐбб);
ЋзҐаҐ¤м_Ј®в®ўле.Insert(’ҐЄгйЁ© Їа®жҐбб);
ЏҐаҐ¤ вм гЇа ў«Ґ­ЁҐ(’ҐЄгйЁ© Їа®жҐбб, ЏҐаўл© Їа®жҐбб);
ђ §аҐиҐ­ЁҐ ЇаҐалў ­Ё©;
End {TPostBox.GetMsg};

ЏаЁўҐ¤Ґ­­лҐ ЇаЁ¬ЁвЁўл а Ў®в ов б«Ґ¤гойЁ¬ ®Ўа §®¬.

ЏаҐ¤Ї®«®¦Ё¬, зв® ЇҐаўл¬ Є ЇаЁ¬ЁвЁўг Ї®зв®ў®Ј® пйЁЄ  Ї®¤®©¤Ґв
Їа®жҐбб, § ЇЁблў ойЁ© б®®ЎйҐ­ЁҐ.
Ћ­ Ї®¬Ґй Ґв ҐЈ® ў ®зҐаҐ¤м б®®ЎйҐ­Ё©,   б ¬ ўбв Ґв ў ®зҐаҐ¤м
Їа®жҐбб®ў, Ї®б« ўиЁе б®®ЎйҐ­ЁҐ.
Џа®жҐбб, Ї®¤®иҐ¤иЁ© ўв®ал¬ Є ЇаЁ¬ЁвЁўг з⥭Ёп б®®ЎйҐ­Ёп,
бзЁвлў Ґв ҐЈ® Ё§ ®зҐаҐ¤Ё б®®ЎйҐ­Ё© Ё  ЄвЁўЁ§ЁагҐв Їа®жҐбб,
Ї®б« ўиЁ© ҐЈ®.

’ҐЇҐам ЇаҐ¤Ї®«®¦Ё¬, зв® ЇҐаўл¬ Є ЇаЁ¬ЁвЁўг Ї®зв®ў®Ј® пйЁЄ 
Ї®¤®©¤Ґв Їа®жҐбб, зЁв ойЁ© б®®ЎйҐ­ЁҐ.
Ћ­ Їа®ўҐапҐв ­ «ЁзЁҐ б®®ЎйҐ­Ё© ў ®зҐаҐ¤Ё б®®ЎйҐ­Ё© Ё ЇаЁ Ёе
®вбгвбвўЁЁ Ў«®ЄЁагҐвбп ў ®зҐаҐ¤Ё ¦¤гйЁе б®®ЎйҐ­ЁҐ.
Џа®жҐбб, Ї®¤®иҐ¤иЁ© ўв®ал¬ Є ЇаЁ¬ЁвЁўг § ЇЁбЁ б®®ЎйҐ­Ёп,
Ї®¬Ґй Ґв б®®ЎйҐ­ЁҐ ў ®зҐаҐ¤м, б ¬ ўбв Ґв ў ®зҐаҐ¤м Їа®жҐбб®ў,
Ї®б« ўиЁе б®®ЎйҐ­ЁҐ, Ё  ЄвЁўЁ§ЁагҐв Їа®жҐбб Ё§ ®зҐаҐ¤Ё Їа®жҐбб®ў,
¦¤гйЁе б®®ЎйҐ­ЁҐ. ЂЄвЁўЁ§Ёа®ў ­­л© Їа®жҐбб бзЁвлў Ґв б®®ЎйҐ­ЁҐ Ё
 ЄвЁўЁ§ЁагҐв Їа®жҐбб, Ї®б« ўиЁ© ҐЈ®.

’ Є®© бЇ®б®Ў ®Ў¬Ґ­  б®®ЎйҐ­Ёп¬Ё, Є®Ј¤  ЇҐаҐ¤ ойЁ© Їа®жҐбб
Ў«®ЄЁагҐвбп, Ї®Є  ҐЈ® б®®ЎйҐ­ЁҐ ­Ґ Ўг¤Ґв ЇаЁ­пв® ЇаЁ­Ё¬ ойЁ¬
Їа®жҐбᮬ, ­ §лў Ґвбп ђЂЌ„…‚“. ќв®в ¬Ґе ­Ё§¬ ॠ«Ё§®ў ­ ў п§лЄҐ
Ђ„Ђ.

Соседние файлы в папке Конспект лекций для групп АСОИУ