Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «ОписаниС языка PascalABC.NETΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 16

Автор W Cat

ΠΈΠ»ΠΈ

with список ΠΈΠΌΠ΅Π½ do ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€

Π’ΡΡŽΠ΄Ρƒ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ имя записи ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ полю ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ записи ΠΈΠ»ΠΈ имя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ полю, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ ΠΈΠ»ΠΈ свойству ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. НапримСр, ΠΏΡƒΡΡ‚ΡŒ описана пСрСмСнная

var

DateOfBirthday = record

Day: Integer;

Month: Integer;

Year: Integer;

end;

Π’ΠΎΠ³Π΄Π° присваиваниС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π΅Π΅ полям Π±Π΅Π· использования ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° with ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄:

DateOfBirthday.Day := 23;

DateOfBirthday.Month := 2;

DateOfBirthday.Year := 1965;

ИспользованиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° with позволяСт ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ запись:

with DateOfBirthday do

begin

Day := 23;

Month := 2;

Year := 1965;

end;

Если внСшняя пСрСмСнная ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎ ΠΆΠ΅ имя, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΠΎΠ»Π΅ (ΠΌΠ΅Ρ‚ΠΎΠ΄, свойство), Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ отдаСтся полю (ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ, свойству). ΠŸΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² with Π²Π½Π°Ρ‡Π°Π»Π΅ прСдпринимаСтся ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΊΠ°ΠΊ ΠΏΠΎΠ»Π΅ записи ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° самого Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° with, Π·Π°Ρ‚Π΅ΠΌ нСпосрСдствСнно ΠΎΠ±ΡŠΠ΅ΠΌΠ»ΡŽΡ‰Π΅Π³ΠΎ Π΅Π³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° with ΠΈ Ρ‚.Π΄. Если ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ with содСрТит список ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ‚ΠΎ ΠΎΠ½ΠΈ рассматриваСтся справа Π½Π°Π»Π΅Π²ΠΎ. НапримСр, Ссли ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ описания

var

x,y,z: integer;

a: record

x,y: integer;

end;

b: record

x: integer;

;


Ρ‚ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

with a,b do

begin

x := 1;

y := 2;

z := 3;

;

эквивалСнтСн Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρƒ

with a do

with b do

begin

x := 1;

y := 2;

z := 3;

;

Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρƒ

b.x:=1;

a.y:=2;

z:=3;

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ with устарСл ΠΈ сСйчас практичСски Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ бСзусловного ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° goto

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ бСзусловного ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° goto ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ:

goto ΠΌΠ΅Ρ‚ΠΊΠ°

Он пСрСносит Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ, ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½ΠΎΠΌΡƒ ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ ΠΌΠ΅Ρ‚ΠΊΠ°.

ΠœΠ΅Ρ‚ΠΊΠ° прСдставляСт собой ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈΠ»ΠΈ Ρ†Π΅Π»ΠΎΠ΅ Π±Π΅Π· Π·Π½Π°ΠΊΠ°. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΡƒ с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ΠΌ:

label1: ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€

ΠœΠ΅Ρ‚ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ описаны Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΠ΅Ρ‚ΠΎΠΊ с использованиСм слуТСбного слова label:

label 1,2,3;

НапримСр, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

label 1,2;

begin

var i := 5;

2: if i<0 then goto 1;

write(i);

Dec(i);

goto 2;

1:

end.

Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ 543210.

ΠœΠ΅Ρ‚ΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ Π±Π»ΠΎΠΊΠ΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ описана. ΠœΠ΅Ρ‚ΠΊΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ нСсколько ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ².

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° ΠΌΠ΅Ρ‚ΠΊΡƒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ Π»ΠΈΠ±ΠΎ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ Π±Π»ΠΎΠΊΠ΅, Π»ΠΈΠ±ΠΎ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π² ΠΎΠ±ΡŠΠ΅ΠΌΠ»ΡŽΡ‰Π΅ΠΉ конструкции. Π’Π°ΠΊ, запрСщаСтся ΠΈΠ·Π²Π½Π΅ Ρ†ΠΈΠΊΠ»Π° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° ΠΌΠ΅Ρ‚ΠΊΡƒ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π°.

ИспользованиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° бСзусловного ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ считаСтся ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠΌ ΠΏΠ»ΠΎΡ…ΠΎΠ³ΠΎ стиля программирования. Для основных Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² использования goto Π² язык Паскаль Π²Π²Π΅Π΄Π΅Π½Ρ‹ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹: break - ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π·Π° Ρ†ΠΈΠΊΠ»ΠΎΠΌ, exit - ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π·Π° послСдний ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, continue - ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π·Π° послСдний ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π² Ρ‚Π΅Π»Π΅ Ρ†ΠΈΠΊΠ»Π°.

Один ΠΈΠ· Π½Π΅ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² умСстного использования ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° goto Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ - Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. НапримСр, ΠΏΡ€ΠΈ поискС элСмСнта k Π² Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠΌ массивС:

var a: array [1..10,1..10] of integer;

...

var found := False;

for var i:=1 to 10 do

for var j:=1 to 10 do

if a[i,j]=k then

begin

found := True;

goto c1;

end;

c1: writeln(found);

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ break, continue ΠΈ exit

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ break ΠΈ continue ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ².

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ break ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для досрочного Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ†ΠΈΠΊΠ»Π°. ΠŸΡ€ΠΈ Π΅Π³ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ происходит Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π·Π° Ρ†ΠΈΠΊΠ»ΠΎΠΌ. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ continue Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ Ρ†ΠΈΠΊΠ»Π°, осущСствляя ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ ΠΊΠΎΠ½Ρ†Ρƒ Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π°. НапримСр:

flag := False;

for var i:=1 to 10 do

begin

read(x);

if x<0 then continue; // пропуск Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π°

if x=5 then

begin

flag := True;

break; // Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π°

end;

end;

ИспользованиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² break ΠΈ continue Π²Π½Π΅ Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π° ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎ.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ exit ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для досрочного Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. НапримСр

function Analyze(x: integer): boolean;

begin

if x<0 then

begin

Result := False;

exit

end;

...

end;

Π’Ρ‹Π·ΠΎΠ² exit Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² основной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π΅Π΅ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΌΡƒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ.

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² PascalABC.NET (Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Borland Pascal ΠΈ Borland Delphi) break, continue ΠΈ exit ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°ΠΌΠΈ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ try ... except

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ try ... except ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄:

try

ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹

except

Π±Π»ΠΎΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ

end;

Π‘Π»ΠΎΠΊ try называСтся Π·Π°Ρ‰ΠΈΡ‰Π°Π΅ΠΌΡ‹ΠΌ Π±Π»ΠΎΠΊΠΎΠΌ. Если ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Π½Π΅ΠΌ происходит ошибка, Ρ‚ΠΎ ΠΎΠ½ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ пСрСдаСтся Π±Π»ΠΎΠΊΡƒ except. Если ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ обрабатываСтся Π² Π±Π»ΠΎΠΊΠ΅ except, Ρ‚ΠΎ послС Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π·Π° try ... except ... end. Если ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ остаСтся Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΌ ΠΈ имССтся ΠΎΠ±ΡŠΠ΅ΠΌΠ»ΡŽΡ‰ΠΈΠΉ Π±Π»ΠΎΠΊ try, Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ пСрСдаСтся Π΅Π³ΠΎ Π±Π»ΠΎΠΊΡƒ except. Если ΠΎΠ±ΡŠΠ΅ΠΌΠ»ΡŽΡ‰Π΅Π³ΠΎ Π±Π»ΠΎΠΊΠ° try Π½Π΅Ρ‚, Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ с ошибкой. НаконСц, Ссли Π² Π±Π»ΠΎΠΊΠ΅ try ошибки Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ, Ρ‚ΠΎ Π±Π»ΠΎΠΊ except игнорируСтся ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ продолТаСтся дальшС.

Если Π² процСссС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ (Π² Π±Π»ΠΎΠΊΠ΅ except) ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Ρ‚ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Π±Π»ΠΎΠΊ except Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ, ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ считаСтся Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΌ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ пСрСдаСтся ΠΎΠ±ΡŠΠ΅ΠΌΠ»ΡŽΡ‰Π΅ΠΌΡƒ Π±Π»ΠΎΠΊΡƒ try. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ сущСствуСт максимум ΠΎΠ΄Π½ΠΎ Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

Π‘Π»ΠΎΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ прСдставляСт собой Π»ΠΈΠ±ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой, Π»ΠΈΠ±ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π²ΠΈΠ΄Π°

on имя: Ρ‚ΠΈΠΏ do ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ символом ';', послС послСднСго ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ символ ';'. Π—Π΄Π΅ΡΡŒ Ρ‚ΠΈΠΏ - Ρ‚ΠΈΠΏ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ (Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌ ΠΎΡ‚ стандартного Ρ‚ΠΈΠΏΠ° Exception), имя - имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ (имя с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡƒΡ‰Π΅Π½ΠΎ). Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ всС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈΠ· Π±Π»ΠΎΠΊΠ° except. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ случаС срСди ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² осущСствляСтся поиск Ρ‚ΠΈΠΏΠ° Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ (ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π΄ΠΎ послСднСго), ΠΈ Ссли ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π°ΠΉΠ΄Π΅Π½, Ρ‚ΠΎ выполняСтся ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ считаСтся Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΌ ΠΈ пСрСдаСтся ΠΎΠ±ΡŠΠ΅ΠΌΠ»ΡŽΡ‰Π΅ΠΌΡƒ Π±Π»ΠΎΠΊΡƒ try. Π’ послСднСм случаС послС всСх ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² on ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ΄Ρ‚ΠΈ Π²Π΅Ρ‚Π²ΡŒ else, которая ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Ссли Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π½Π΅ выполнился.

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ, Ρ‚.Π΅. ΠΎΠ½ΠΎ локально ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ.

Поиск Ρ‚ΠΈΠΏΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°Ρ… производится с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ наслСдования: ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ, Ссли ΠΎΠ½ΠΎ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΊ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ Ρ‚ΠΈΠΏΡƒ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΎΡ‚ Π½Π΅Π³ΠΎ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ принято Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π²Π½Π°Ρ‡Π°Π»Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… классов, Π° Π·Π°Ρ‚Π΅ΠΌ - ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… (Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ сработаСт). ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Exception ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ поэтому Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ записан послСдним.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€.

var a: array [1..10] of integer;

try

var i: integer;

readln(i);

writeln(a[i] div i);

...

except

on System.DivideByZeroException do

writeln('Π”Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° 0');

on e: System.IndexOutOfRangeException do

writeln(e.Message);

on System.FormatException do

writeln('НСвСрный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π²Π²ΠΎΠ΄Π°');

else writeln('КакоС-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅');

end;

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ try ... finally

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ try ... finally ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄: