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

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

Автор W Cat

25 3456 $FFFF

ВСщСствСнныС Ρ‚ΠΈΠΏΡ‹

НиТС приводится Ρ‚Π°Π±Π»ΠΈΡ†Π° вСщСствСнных Ρ‚ΠΈΠΏΠΎΠ², содСрТащая ΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ€, количСство Π·Π½Π°Ρ‡Π°Ρ‰ΠΈΡ… Ρ†ΠΈΡ„Ρ€ ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ допустимых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ:

Π’ΠΈΠΏ

Π Π°Π·ΠΌΠ΅Ρ€, Π±Π°ΠΉΡ‚

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ

Π·Π½Π°Ρ‡Π°Ρ‰ΠΈΡ… Ρ†ΠΈΡ„Ρ€

Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

real

8

15-16

-1.8βˆ™10308 .. 1.8βˆ™10308

double

8

15-16

-1.8βˆ™10308 .. 1.8βˆ™10308

single

4

7-8

-3.4βˆ™1038 .. 3.4βˆ™1038

single

4

7-8

-3.4βˆ™1038 .. 3.4βˆ™1038

decimal

16

30

-79228162514264337593543950335 .. 79228162514264337593543950335

Π’ΠΈΠΏΡ‹ real ΠΈ double ΡΠ²Π»ΡΡŽΡ‚ΡΡ синонимами. Π‘Π°ΠΌΠΎΠ΅ малСнькоС ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ число Ρ‚ΠΈΠΏΠ° real ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π²Π½ΠΎ 5.0βˆ™10-324, для Ρ‚ΠΈΠΏΠ° single ΠΎΠ½ΠΎ составляСт ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ 1.4βˆ™10-45.

ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ значСния для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ вСщСствСнного Ρ‚ΠΈΠΏΠ° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΠΊΠ°ΠΊ внСшниС стандартныС константы: MaxReal, MaxDouble ΠΈ MaxSingle.

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ вСщСствСнного Ρ‚ΠΈΠΏΠ° R ΠΊΡ€ΠΎΠΌΠ΅ decimal ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ константы ΠΊΠ°ΠΊ статичСскиС Ρ‡Π»Π΅Π½Ρ‹ класса:

R.MinValue - константа, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ минимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° R;

R.MaxValue - константа, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° R;

R.Epsilon - константа, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ самоС малСнькоС ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ число Ρ‚ΠΈΠΏΠ° R;

R.NaN - константа, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ Π½Π΅ число (Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΠΈ 0/0);

R.NegativeInfinity - константа, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π±Π΅ΡΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΡΡ‚ΡŒ (Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΠΈ -2/0);

R.PositiveInfinity - константа, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π±Π΅ΡΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΡΡ‚ΡŒ (Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΠΈ 2/0).

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ вСщСствСнного Ρ‚ΠΈΠΏΠ° R ΠΊΡ€ΠΎΠΌΠ΅ decimal ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ статичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

R.IsNaN(r) - Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ True, Ссли Π² r хранится Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ R.NaN, ΠΈ False Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС;

R.IsInfinity(r) - Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ True, Ссли Π² r хранится Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ R.PositiveInfinity ΠΈΠ»ΠΈ R.NegativeInfinity, ΠΈ False Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС;

R.IsPositiveInfinity(r) - Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ True, Ссли Π² r хранится Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ R.PositiveInfinity, ΠΈ False Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС;

R.IsNegativeInfinity(r) - Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ True, Ссли Π² r хранится Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ R.NegativeInfinity, ΠΈ False Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС;

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ вСщСствСнного Ρ‚ΠΈΠΏΠ° R ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ статичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

R.Parse(s) - функция, ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ строковоС прСдставлСниС числа Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° R. Если ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‚ΠΎ гСнСрируСтся ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅;

R.TryParse(s,res) функция, ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ строковоС прСдставлСниС числа Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° R ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π°Ρ Π΅Π³ΠΎ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ res. Если ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‚ΠΎ возвращаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ True, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС - False.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° экзСмплярная функция ToString, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π°Ρ строковоС прСдставлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° R.

ВСщСствСнныС константы ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π² Ρ„ΠΎΡ€ΠΌΠ΅ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ, Ρ‚Π°ΠΊ ΠΈ Π² ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅:

1.7 0.013 2.5e3 (2500) 1.4e-1 (0.14)

ЛогичСский Ρ‚ΠΈΠΏ

ЗначСния логичСского Ρ‚ΠΈΠΏΠ° boolean Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ 1 Π±Π°ΠΉΡ‚ ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π΄Π²ΡƒΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ константами True (истина) ΠΈ False (лоТь).

Для логичСского Ρ‚ΠΈΠΏΠ° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹:

boolean.Parse(s) - функция, ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ строковоС прСдставлСниС числа Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° boolean. Если ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‚ΠΎ гСнСрируСтся ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅;

boolean.TryParse(s,res) - функция, ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ строковоС прСдставлСниС числа Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° boolean ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π°Ρ Π΅Π³ΠΎ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ res. Если ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‚ΠΎ возвращаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ True, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС - False.

ΠšΡ€ΠΎΠΌΠ΅ этого, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° экзСмплярная функция ToString, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π°Ρ строковоС прСдставлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° boolean.

ЛогичСский Ρ‚ΠΈΠΏ являСтся порядковым. Π’ частности, False<True, Ord(False)=0, Ord(True)=1.

Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ

Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ char Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 2 Π±Π°ΠΉΡ‚Π° ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ Unicode-символ. Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΈΠΏΠΎΠΌ System.Char ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ .NET.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ + для символов ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡŽ (слияниС) строк. НапримСр: 'a'+'b' = 'ab'. Как ΠΈ для строк, Ссли ΠΊ символу ΠΏΡ€ΠΈΠ±Π°Π²ΠΈΡ‚ΡŒ число, Ρ‚ΠΎ число ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ прСобразуСтся ΠΊ строковому ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡŽ:

var s: string := ' '+15; // s = ' 15'

var s1: string := 15+' '; // s = '15 '

Над символами ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сравнСния < > <= >= = <>, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ ΠΊΠΎΠ΄Ρ‹ символов:

'a'<'b' // True

'2'<'3' // True

Для прСобразования ΠΌΠ΅ΠΆΠ΄Ρƒ символами ΠΈ ΠΈΡ… ΠΊΠΎΠ΄Π°ΠΌΠΈ Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ Windows (CP1251) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ стандартныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Chr ΠΈ Ord:

Chr(n) - функция, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π°Ρ символ с ΠΊΠΎΠ΄ΠΎΠΌ n Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ Windows;

Ord(с) - функция, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π°Ρ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° byte, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ собой ΠΊΠΎΠ΄ символа c Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ Windows.

Для прСобразования ΠΌΠ΅ΠΆΠ΄Ρƒ символами ΠΈ ΠΈΡ… ΠΊΠΎΠ΄Π°ΠΌΠΈ Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ Unicode ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ стандартныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ChrUnicode ΠΈ OrdUnicode:

ChrUnicode(w) - Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ символ с ΠΊΠΎΠ΄ΠΎΠΌ w Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ Unicode;

OrdUnicode(с) - Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° word, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ собой ΠΊΠΎΠ΄ символа c Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ Unicode.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ #число Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Unicode-символ с ΠΊΠΎΠ΄ΠΎΠΌ число (число Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ 0 Π΄ΠΎ 65535).

ΠΠ½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ ΠΈΠ³Ρ€Π°ΡŽΡ‚ явныС прСобразования Ρ‚ΠΈΠΏΠΎΠ²:

char(w) Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ символ с ΠΊΠΎΠ΄ΠΎΠΌ w Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ Unicode;

word(с) Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠ΄ символа c Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ Unicode.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с символами.

БтатичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ‚ΠΈΠΏΠ° char.

ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΠΌΡ‹ΠΉ ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏΡ‹

ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΠΌΡ‹ΠΉ Ρ‚ΠΈΠΏ опрСдСляСтся упорядочСнным Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ².

type typeName = (value1, value2, ..., valuen);

ЗначСния пСрСчислимого Ρ‚ΠΈΠΏΠ° Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ 4 Π±Π°ΠΉΡ‚Π°. КаТдоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ value прСдставляСт собой константу Ρ‚ΠΈΠΏΠ° typeName, ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‰ΡƒΡŽ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ пространство ΠΈΠΌΠ΅Π½.

НапримСр:

type

Season = (Winter,Spring,Summer,Autumn);

DayOfWeek = (Mon,Tue,Wed,Thi,Thr,Sat,Sun);

К константС пСрСчислимого Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ нСпосрСдствСнно ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ, Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ запись typeName.value, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ имя константы уточняСтся ΠΈΠΌΠ΅Π½Π΅ΠΌ пСрСчислимого Ρ‚ΠΈΠΏΠ°, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΎΠ½Π° ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚:

var a: DayOfWeek;

a := Mon;

a := DayOfWeek.Wed;

ЗначСния пСрСчислимого Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Π½Π° <:

DayOfWeek.Wed < DayOfWeek.Sat

Для Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ пСрСчислимого Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ord, Pred ΠΈ Succ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Inc ΠΈ Dec. Ѐункция Ord Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ порядковый Π½ΠΎΠΌΠ΅Ρ€ значСния Π² спискС констант ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ пСрСчислимого Ρ‚ΠΈΠΏΠ°, нумСрация ΠΏΡ€ΠΈ этом начинаСтся с нуля.

Для пСрСчислимого Ρ‚ΠΈΠΏΠ° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° экзСмплярная функция ToString, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π°Ρ строковоС прСдставлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ пСрСчислимого Ρ‚ΠΈΠΏΠ°. ΠŸΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ значСния пСрСчислимого Ρ‚ΠΈΠΏΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ write Ρ‚Π°ΠΊΠΆΠ΅ выводится строковоС прСдставлСниС значСния пСрСчислимого Ρ‚ΠΈΠΏΠ°.

НапримСр:

type Season = (Winter,Spring,Summer,Autumn);

var s: Season;

begin

s := Summer;

writeln(s.ToString); // Summer

writeln(s); // Summer

end.

Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ прСдставляСт собой подмноТСство Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ†Π΅Π»ΠΎΠ³ΠΎ, символьного ΠΈΠ»ΠΈ пСрСчислимого Ρ‚ΠΈΠΏΠ° ΠΈ описываСтся Π² Π²ΠΈΠ΄Π΅ a..b, Π³Π΄Π΅ a - ниТняя, b - вСрхняя Π³Ρ€Π°Π½ΠΈΡ†Π° ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, a<b:

var

intI: 0..10;

intC: 'a'..'z';

intE: Mon..Thr;

Π’ΠΈΠΏ, Π½Π° основС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ строится Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ, называСтся Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ для этого Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. ЗначСния Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ Π² памяти ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΆΠ΅, сколько ΠΈ значСния ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.

Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΈΠΏ string, состоят ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ располоТСнных символов char ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для прСдставлСния тСкста.

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ. К символам Π² строкС ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ индСкс: s[i] ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ i-Ρ‚Ρ‹ΠΉ символ Π² строкС, нумСрация начинаСтся с Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹. Если индСкс i Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Π΄Π»ΠΈΠ½Ρ‹ строки, Ρ‚ΠΎ гСнСрируСтся ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

Над строками ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сравнСния: < > <= >= = <>. Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ строк Π½Π° нСравСнство осущСствляСтся лСксикографичСски: s1 < s2 Ссли для ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π½Π΅ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ символа с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ i s1[i]<s2[i] ΠΈΠ»ΠΈ всС символы строк ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚, Π½ΠΎ s1 ΠΊΠΎΡ€ΠΎΡ‡Π΅ s2.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ + для строк ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡŽ (слияниС) строк. НапримСр: 'ΠŸΠ΅Ρ‚Ρ'+'Маша' = 'ΠŸΠ΅Ρ‚ΡΠœΠ°ΡˆΠ°'.

Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ присваивания += для строк добавляСт Π² ΠΊΠΎΠ½Π΅Ρ† строки - Π»Π΅Π²ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° строку - ΠΏΡ€Π°Π²Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄. НапримСр:

var s: string := 'ΠŸΠ΅Ρ‚Ρ';

s += 'Маша'; // s = 'ΠŸΠ΅Ρ‚ΡΠœΠ°ΡˆΠ°'

Π‘Ρ‚Ρ€ΠΎΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒΡΡ с числом, ΠΏΡ€ΠΈ этом число ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ прСобразуСтся ΠΊ строковому ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡŽ:

s := 'Π¨ΠΈΡ€ΠΈΠ½Π°: '+15; // s = 'Π¨ΠΈΡ€ΠΈΠ½Π°: 15'

s := 20.5+''; // s = '20.5'

s += 1; // s = '20.51'

Над строками ΠΈ Ρ†Π΅Π»Ρ‹ΠΌΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° опСрация *: s*n ΠΈ n*s ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ строку, ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΈΠ· строки s, ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½Π½ΠΎΠΉ n Ρ€Π°Π·:

s := '*'*10; // s = '**********'

s := 5*'ab' // s = 'ababababab'

s := 'd'; s *= 3; // s = 'ddd'

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΈΠΏΠΎΠΌ System.String ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ .NET ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ссылочный Ρ‚ΠΈΠΏ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ строками унаслСдованы ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° System.String. Однако, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ .NET - строк, строки Π² PascalABC.NET измСняСмы. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ s[i] (Π² .NET нСльзя). Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, строки string Π² PascalABC.NET Π²Π΅Π΄ΡƒΡ‚ сСбя ΠΊΠ°ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½Ρ‹Π΅: послС