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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ: конспСкт Π»Π΅ΠΊΡ†ΠΈΠΉΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 5

Автор А. Π¦Π²Π΅Ρ‚ΠΊΠΎΠ²Π°

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ допускаСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² любом контСкстС, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° особСнно ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ Π² Ρ‚ΠΎΠΌ случаС, ΠΊΠΎΠ³Π΄Π° Π½Π°Π΄ мноТСством ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ΠΎΠ±Ρ‰ΠΈΠ΅ дСйствия.

Если ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΈΠ»ΠΈ функция Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡ‚ΡŒ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ совмСстимости Ρ‚ΠΈΠΏΠ°, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΡ€ΠΈ присваивании. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΎΠΉ far, ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ встроСнными функциями, Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ с Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ inline ΠΈΠ»ΠΈ interrupt.

Π›Π•ΠšΠ¦Π˜Π― β„– 5. Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…

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

ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ называСтся строкой. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ строкового Ρ‚ΠΈΠΏΠ° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΏΡƒΡ‚Π΅ΠΌ указания ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ слова string, ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ указания максимального Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Ρ‚. Π΅. Π΄Π»ΠΈΠ½Ρ‹ строки, Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках. Если Π½Π΅ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ строки, Ρ‚ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π΅Π½ 255, Ρ‚. Π΅. строка Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· 255 символов.

К ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту строки ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΏΠΎ Π΅Π³ΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ. Однако Π²Π²ΠΎΠ΄ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ строк ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ΡΡ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ, Π° Π½Π΅ поэлСмСнтно, ΠΊΠ°ΠΊ это происходит Π² массивах. Число Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… символов Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π² максимальном Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ строки, Ρ‚Π°ΠΊ Ссли Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ мСсто, Ρ‚ΠΎ «лишниС» символы Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹.

2. ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… строкового Ρ‚ΠΈΠΏΠ°

1. Function Copy(S: String; Index, Count: Integer): String;

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ подстроку строки. S – Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° String.

Index ΠΈ Count – выраТСния Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Ѐункция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ строку, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ Count символов, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…ΡΡ с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Index. Если Index большС, Ρ‡Π΅ΠΌ Π΄Π»ΠΈΠ½Π° S, функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΡƒΡΡ‚ΡƒΡŽ строку.

2. Procedure Delete(var S: String; Index, Count: Integer);

УдаляСт подстроку символов Π΄Π»ΠΈΠ½ΠΎΠΉ Count ΠΈΠ· строки S, начиная с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Index. S – пСрСмСнная Ρ‚ΠΈΠΏΠ° String. Index ΠΈ Count – выраТСния Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Если Index большС, Ρ‡Π΅ΠΌ Π΄Π»ΠΈΠ½Π° S, символы Π½Π΅ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ.

3. Procedure Insert(Source: String; var S: String; Index: Integer);

ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ подстроку Π² строку, начиная с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ. Source – Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° String. S – пСрСмСнная Ρ‚ΠΈΠΏΠ° String любой Π΄Π»ΠΈΠ½Ρ‹. Index – Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ цСлочислСнного Ρ‚ΠΈΠΏΠ°. Insert вставляСт Source Π² S, начиная с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ S[Index].

4. Function Length(S: String): Integer;

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ число символов, фактичСски ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ Π² строкС S. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΏΡ€ΠΈ использовании строк с Π½ΡƒΠ»ΡŒ-ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠ΅ΠΌ, число символов Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π²Π½ΠΎ числу Π±Π°ΠΉΡ‚ΠΎΠ².

5. Function Pos(Substr: String; S: String): Integer;

Π˜Ρ‰Π΅Ρ‚ подстроку Π² строкС. Pos ΠΈΡ‰Π΅Ρ‚ Substr Π²Π½ΡƒΡ‚Ρ€ΠΈ S ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ цСлочислСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ являСтся индСксом ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ символа Substr Π²Π½ΡƒΡ‚Ρ€ΠΈ S. Если Substr Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½, Pos Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΡƒΠ»ΡŒ.

3. Π—аписи

Π—Π°ΠΏΠΈΡΡŒ прСдставляСт собой ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ числа логичСски связанных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… ΠΊ Ρ€Π°Π·Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠ°ΠΌ. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ записи Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ полями, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… опрСдСляСтся ΠΈΠΌΠ΅Π½Π΅ΠΌ. ПолС записи содСрТит имя поля, вслСд Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Ρ‡Π΅Ρ€Π΅Π· Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ указываСтся Ρ‚ΠΈΠΏ этого поля. Поля записи ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚ΡŒΡΡ ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ, допустимому Π² языкС Pascal, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.

ОписаниС записи Π² языкС Pascal осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ слуТСбного слова RECORD, вслСд Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ записи. Π—Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ описаниС записи слуТСбным словом END.

НапримСр, записная ΠΊΠ½ΠΈΠΆΠΊΠ° содСрТит Ρ„Π°ΠΌΠΈΠ»ΠΈΠΈ, ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»Ρ‹ ΠΈ Π½ΠΎΠΌΠ΅Ρ€Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°, поэтому ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ строку Π² записной ΠΊΠ½ΠΈΠΆΠΊΠ΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ записи:

type Row = Record

FIO: String[20];

TEL: String[7];

end;

var str: Row;

ОписаниС записСй Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π±Π΅Π· использования ΠΈΠΌΠ΅Π½ΠΈ Ρ‚ΠΈΠΏΠ°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

var str : Record

FIO : String[20];

TEL : String[7];

end;

ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ записи Π² Ρ†Π΅Π»ΠΎΠΌ допускаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ… присваивания, Π³Π΄Π΅ слСва ΠΈ справа ΠΎΡ‚ Π·Π½Π°ΠΊΠ° присваивания ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½Π° записСй ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Π’ΠΎ всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… случаях ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ полями записСй. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ записи, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ имя записи ΠΈ Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ‡ΠΊΡƒ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ поля. Π’Π°ΠΊΠΎΠ΅ имя называСтся составным. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΉ записи ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ запись, Π² Ρ‚Π°ΠΊΠΎΠΌ случаС составноС имя Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π½Π΅ Π΄Π²Π°, Π° большСС количСство ΠΈΠΌΠ΅Π½.

ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ записСй ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ, Ссли Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ присоСдинСния with. Он позволяСт Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ составныС ΠΈΠΌΠ΅Π½Π°, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΠΎΠ»Π΅, просто Π½Π° ΠΈΠΌΠ΅Π½Π° ΠΏΠΎΠ»Π΅ΠΉ, Π° имя записи ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ присоСдинСния.

Иногда содСрТимоС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ записи зависит ΠΎΡ‚ значСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π΅Π΅ ΠΏΠΎΠ»Π΅ΠΉ. Π’ языкС Pascal допускаСтся описаниС записи, состоящСй ΠΈΠ· ΠΎΠ±Ρ‰Π΅ΠΉ ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΠΉ частСй. Вариантная Ρ‡Π°ΡΡ‚ΡŒ задаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ конструкции case Π  of, Π³Π΄Π΅ Π  – имя поля ΠΈΠ· ΠΎΠ±Ρ‰Π΅ΠΉ части записи. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ значСния, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌΡ‹Π΅ этим ΠΏΠΎΠ»Π΅ΠΌ, ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°. Однако вмСсто указания выполняСмого дСйствия, ΠΊΠ°ΠΊ это дСлаСтся Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ поля Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки. ОписаниС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΠΉ части Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ слуТСбным словом end. Π’ΠΈΠΏ поля Π  ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΠΉ части. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ записСй осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… констант.

4. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π°

ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ мноТСства Π² языкС Pascal основываСтся Π½Π° матСматичСском прСдставлСнии ΠΎ мноТСствах: это ограничСнная ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… элСмСнтов. Для построСния ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ мноТСствСнного Ρ‚ΠΈΠΏΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ пСрСчисляСмый ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ΠΈΠΏ элСмСнтов, ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… мноТСство, называСтся Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ.

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ описываСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ слуТСбных слов Set of, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

type M = Set of Π’;

Π—Π΄Π΅ΡΡŒ М – мноТСствСнный Ρ‚ΠΈΠΏ, Π’ – Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ.


ΠŸΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΊ мноТСствСнному Ρ‚ΠΈΠΏΡƒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° прямо Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ описания ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ мноТСствСнного Ρ‚ΠΈΠΏΠ° Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΉ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ элСмСнтов ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ² Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… запятыми. ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π° Π²ΠΈΠ΄Π° [] ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ пустоС подмноТСство.

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π½Π°Π±ΠΎΡ€ элСмСнтов Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, всС подмноТСства Π΄Π°Π½Π½ΠΎΠ³ΠΎ мноТСства, Π° Ρ‚Π°ΠΊΠΆΠ΅ пустоС подмноТСство. Если Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ строится мноТСство, ΠΈΠΌΠ΅Π΅Ρ‚ К элСмСнтов, Ρ‚ΠΎ число подмноТСств, входящих Π² это мноТСство, Ρ€Π°Π²Π½ΠΎ 2 Π² стСпСни К. ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ пСрСчислСния элСмСнтов Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π² константах Π±Π΅Π·Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ мноТСствСнного Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Π½ΠΎ конструкциСй Π²ΠΈΠ΄Π° [Π’], Π³Π΄Π΅ Π’ – пСрСмСнная Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.

К ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΈ константам мноТСствСнного Ρ‚ΠΈΠΏΠ° ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ присваивания (:=), объСдинСния (+), пСрСсСчСния (*) ΠΈ вычитания (β€”). Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния этих ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π΅ΡΡ‚ΡŒ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° мноТСствСнного Ρ‚ΠΈΠΏΠ°:

1) ['A','B'] + ['A','D'] даст ['A','B','D'];

2) ['A'] * ['A','B','C'] даст ['A'];

3) ['A','B','C'] – ['A','B'] даст ['C'].


К мноТСствСнным Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π°ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ: Ρ‚ΠΎΠΆΠ΄Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ (=), Π½Π΅Ρ‚ΠΎΠΆΠ΄Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ (<>), содСрТится Π² (<=), содСрТит (>=). Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния этих ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ логичСский Ρ‚ΠΈΠΏ:

1) ['A','B'] = ['A','C'] даст FALSE ;

2) ['A','B'] <> ['A','C'] даст TRUE;

3) ['B'] <= ['B','C'] даст TRUE;

4) ['C','D'] >= ['A'] даст FALSE.


ΠšΡ€ΠΎΠΌΠ΅ этих ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π°ΠΌΠΈ мноТСствСнного Ρ‚ΠΈΠΏΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ опСрация in, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‰Π°Ρ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ элСмСнта Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, стоящСго слСва ΠΎΡ‚ Π·Π½Π°ΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, мноТСству, стоящСму справа ΠΎΡ‚ Π·Π½Π°ΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния этой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ – булСвский. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ принадлСТности элСмСнта мноТСству часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ вмСсто ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ.

ΠŸΡ€ΠΈ использовании Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… мноТСствСнного Ρ‚ΠΈΠΏΠ° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ происходит Π½Π°Π΄ Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ строками Π΄Π°Π½Π½Ρ‹Ρ…. ΠšΠ°ΠΆΠ΄ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ мноТСствСнного Ρ‚ΠΈΠΏΠ° Π² памяти Π­Π’Πœ соотвСтствуСт ΠΎΠ΄ΠΈΠ½ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ разряд.

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

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½ мноТСствСнного Ρ‚ΠΈΠΏΠ° производится с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… констант.

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с мноТСствами.

1. Procedure Exclude(var S: Set of T; I:T);

УдаляСт элСмСнт I ΠΈΠ· мноТСства S. S – пСрСмСнная Ρ‚ΠΈΠΏΠ° «мноТСство», ΠΈ I – Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ°, совмСстимого с исходным Ρ‚ΠΈΠΏΠΎΠΌ S. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ Exclude(S, I) соотвСтствуСт S: = S – [I], Π½ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ эффСктивный ΠΊΠΎΠ΄.

2. Procedure Include(var S: Set of T; I:T);

ДобавляСт элСмСнт I ΠΊ мноТСству S. S – пСрСмСнная Ρ‚ΠΈΠΏΠ° «мноТСство», ΠΈ I – Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ°, совмСстимого с Ρ‚ΠΈΠΏΠΎΠΌ S. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ Include(S, I) соотвСтствуСт S: = S + [I], Π½ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ эффСктивный ΠΊΠΎΠ΄.

Π›Π•ΠšΠ¦Π˜Π― β„– 6. Π€Π°ΠΉΠ»Ρ‹

1. Π€Π°ΠΉΠ»Ρ‹. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π² язык Pascal Π²Ρ‹Π·Π²Π°Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹ΠΌΠΈ (внСшними) устройствами Π­Π’Πœ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΌΠΈ для Π²Π²ΠΎΠ΄Π°, Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ хранСния Π΄Π°Π½Π½Ρ‹Ρ….