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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π―Π·Ρ‹ΠΊ программирования PASCALΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 10

Автор АлСксандр Π¦Π²Π΅Ρ‚ΠΊΠΎΠ²

begin

assign (f,name); // связываниС Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ„Π°ΠΉΠ»Π° Π½Π° дискС

reset (f); // ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π° Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅

repeat

readln(f,a,b); // Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· Ρ†Π΅Π»ΠΎΠΉ строки

writeln(a:5,b:5); // Π²Ρ‹Π²ΠΎΠ΄ Π² ΠΎΠΊΠ½ΠΎ CRT

until Eof (f); // Ѐункция eof Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ true ΠΏΡ€ΠΈ достиТСнии ΠΊΠΎΠ½Ρ†Π° Ρ„Π°ΠΉΠ»Π°

close (f); // Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°

end.

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π°Π΄ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅: 1. reset (f) – ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π° Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, Ссли Ρ„Π°ΠΉΠ»Π° Π½Π΅Ρ‚, Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ ошибка выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹;

2. readln (f,…) – ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ чтСния ΠΈΠ· Ρ„Π°ΠΉΠ»Π°, ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ дСйствиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² read (f,…) ΠΈ readln (f,…) Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎ, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ посрСдинС строки, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ чтСния ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ со срСдины строки. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ readln послС чтСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ пропустит всС ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° строки символы, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ чтСния Π½Π°Ρ‡Π½Π΅Ρ‚ Π²Π²ΠΎΠ΄ с Π½Π°Ρ‡Π°Π»Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строки;

3. Ѐункция eof (f) Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ всСгда Π»ΠΎΠΆΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΡ€ΠΎΠΌΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ СдинствСнного случая: достигнут ΠΊΠΎΠ½Π΅Ρ† строки. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ всякиС Ρ‚ΠΎΠ½ΠΊΠΈΠ΅ случаи, ΠΊΠΎΠ³Π΄Π° Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ„Π°ΠΉΠ»Π° Π΅ΡΡ‚ΡŒ нСсколько символов Β«ΠΊΠΎΠ½Π΅Ρ† строки» ΠΈΠ»ΠΈ лишниС ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΈ символы табуляции, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽΡ‚ΡΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ SeekEof (f) – Π΅Π΅ дСйствиС Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ eof, Π½ΠΎ ΠΎΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ true, Ссли Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° Ρ„Π°ΠΉΠ»Π° Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ «пустыС» символы: ΠΊΠΎΠ½Π΅Ρ† строки, табуляция ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹[14].


Π—Π°Π΄Π°Π½ΠΈΠ΅ 14

1. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ умноТСния Π² Ρ„Π°ΠΉΠ»Π΅ mult .txt. Для Π΅Π΅ создания ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹ for (стр. 20). ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠΈΠΉΡΡ Ρ„Π°ΠΉΠ» Π² тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ (3Π±Π°Π»Π»Π°)

2. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ чтСния Ρ„Π°ΠΉΠ»Π°, созданного Π² ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΈ 14.1 (2 Π±Π°Π»Π»Π°)

- 40 -

Π’Π΅ΠΌΠ° β„–15 Π Π°Π±ΠΎΡ‚Π° со строками символов

Π’ языкС Pascal ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Π²Π° Ρ‚ΠΈΠΏΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с символьной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΠ° char ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· 256 символов стандартной Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ. ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ Ρ‚ΠΈΠΏΠ° char Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа Π² апострофах. Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ readln, Π½ΠΎ ΠΏΡ€ΠΈ этом придСтся Π΅Ρ‰Π΅ Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ Enter для подтвСрТдСния Π²Π²ΠΎΠ΄Π°. Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ CRT Π΅ΡΡ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ удобная функция ReadKey, которая Π²Π²ΠΎΠ΄ΠΈΡ‚ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π±Π΅Π· подтвСрТдСния Π²Π²ΠΎΠ΄Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ :

var c : char;

…

c:='a';

readln(c);

c:=ReadKey;

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Π² языкС Pascal Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: ord ΠΈ chr. ΠŸΠ΅Ρ€Π²Π°Ρ функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠ΄ (порядковый Π½ΠΎΠΌΠ΅Ρ€ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ) символа, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ord('A') Π²Π΅Ρ€Π½Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 65. Вторая функция ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ смысл, ΠΏΠΎ ΠΊΠΎΠ΄Ρƒ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ символ, Ρ‚.Π΅. chr(65) Π±ΡƒΠ΄Π΅Ρ‚ символ 'A'. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ всС символы ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, начиная с ΠΊΠΎΠ΄Π° 32[15] ΠΈ заканчивая ΠΊΠΎΠ΄ΠΎΠΌ 255. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ if Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку послС Π²Ρ‹Π²ΠΎΠ΄Π° Π»ΠΈΠ½Π΅ΠΉΠΊΠΈ ΠΈΠ· 32 символов. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½ΠΈΠΆΠ΅.

Program ANSI;

Uses CRT;

var c : char;

i : integer;

begin

for i:=32 to 255 do

begin

write(Chr (i));

if (i+1) mod 32 = 0 then writeln;

end;

end.

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

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Π² Pascal ABC ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΈΠΏ string ΠΈ состоят ΠΈΠ· Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 255 символов. ΠŸΡ€ΠΈ описании var s: string; ΠΏΠΎΠ΄ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ s отводится 256 Π±Π°ΠΉΡ‚, ΠΏΡ€ΠΈ этом Π² Π½ΡƒΠ»Π΅Π²ΠΎΠΌ Π±Π°ΠΉΡ‚Π΅ хранится Π΄Π»ΠΈΠ½Π° строки.

Для экономии памяти прСдусмотрСно описаниС Π²ΠΈΠ΄Π° var s1: string [40]; Π’ этом случаС ΠΏΠΎΠ΄ строку отводится 41 Π±Π°ΠΉΡ‚ (Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Π±Π°ΠΉΡ‚ – ΠΏΠΎΠ΄ Π΄Π»ΠΈΠ½Ρƒ строки). Π’ случаС присваивания ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ s1 строки ΠΈΠ· Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 40 символов лишниС символы ΠΎΡ‚ΡΠ΅ΠΊΠ°ΡŽΡ‚ΡΡ, ΠΈ Π΄Π»ΠΈΠ½Π° строки s1 полагаСтся Ρ€Π°Π²Π½ΠΎΠΉ 40.

ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ («склСивания») Π²ΠΈΠ΄Π° s1+s1 Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ считаСтся строкой Ρ‚ΠΈΠΏΠ° string, Ρ‚.Π΅. Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 256 Π±Π°ΠΉΡ‚. Однако Ссли ΠΏΡ€ΠΈ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ 255 символов, Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ с ошибкой. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ, подразумСваСтся ΠΈΡ… ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎ Π°Π»Ρ„Π°Π²ΠΈΡ‚Ρƒ.

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

- 41 -

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки слСдуСт Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ встроСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Length (s).

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки, слСдуСт Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΎΠΉ SetLength (s,n).

Если индСкс i Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ памяти, ΠΎΡ‚Π²ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΏΠΎΠ΄ строку, Ρ‚ΠΎ выдаСтся сообщСниС ΠΎΠ± ошибкС. Однако Ссли индСкс i Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ лишь Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Π΄Π»ΠΈΠ½Ρ‹ строки, Ρ‚ΠΎ сообщСниС ΠΎΠ± ошибкС Π½Π΅ выдаСтся.

Π’ΠΈΠΏ char ΠΈ Ρ‚ΠΈΠΏ string ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ функциями. Для ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками ΠΈ символами напишСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‰ΡƒΡŽ Π² строки Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ символ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΡƒΡŽ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.


Program Strings; // Π·Π°ΠΌΠ΅Π½Π° символов a Π½Π° b Π² строкС s

function replace(s : string; a,b : char):string;

var i : integer;

begin

for i:=1 to Length (s) do // Ρ†ΠΈΠΊΠ» для всСх символов строки

if s[i]=a then s[i]:=b; // замСна символов

replace:=s; // ΠΈΠΌΠ΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ присваиваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

end;

begin

writeln (replace('ΠΌΠ°ΠΌΠ° ΠΌΡ‹Π»Π° Ρ€Π°ΠΌΡƒ','ΠΌ','Π½')); // ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

end.


Π’ΠΈΠΏ char ΠΈΠ»ΠΈ string ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для чтСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· тСкстового Ρ„Π°ΠΉΠ»Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:


Program ReadText;

Uses CRT;

var name : string; // Имя Ρ„Π°ΠΉΠ»Π°

s : string; // Π‘ΡƒΡ„Π΅Ρ€ для чтСния строки

f : text; // Ѐайловая пСрСмСнная

n : integer; // Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ строк

begin

write('Π’Π²Π΅Π΄ΠΈΡ‚Π΅ имя Ρ„Π°ΠΉΠ»Π°: '); readln (name); // Π’Π²ΠΎΠ΄ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°

assign (f,name); reset (f); // ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°

n:=0; // ΠžΠ±Π½ΡƒΠ»Π΅Π½ΠΈΠ΅ счСтчика

while not eof (f) do // Π§Ρ‚Π΅Π½ΠΈΠ΅ Β«ΠΏΠΎΠΊΠ° Π½Π΅ ΠΊΠΎΠ½Π΅Ρ† Ρ„Π°ΠΉΠ»Π°Β»

begin

readln (f,s); // Π§Ρ‚Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ строки ΠΈΠ· Ρ„Π°ΠΉΠ»Π° f

writeln (n:4,': ',s); // Π’Ρ‹Π²ΠΎΠ΄ Π½ΠΎΠΌΠ΅Ρ€Π° ΠΈ строки Π½Π° экран

inc(n); // inc(n) – опСрация увСличСния Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ

if n mod 25 = 0 then readln; // ΠŸΠ°ΡƒΠ·Π° послС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ 25-ΠΉ строки

end;

close (f);

end.


Π—Π°Π΄Π°Π½ΠΈΠ΅ 15

1. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ReadKey ΠΈ Ord Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая Π²Ρ‹Π²ΠΎΠ΄ΠΈΠ»Π° Π±Ρ‹ сразу символ ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠ΄ ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ ΠΎΠ΄Π½ΠΎΠΉ клавиши. (2 Π±Π°Π»Π»Π°)

2. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ†Π΅Π»ΠΎΡ‡ΠΈΡΠ»Π΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ с двумя ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ, ΠΏΠΎΠ΄ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ сколько Ρ€Π°Π· символ, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ, встрСчаСтся Π² строкС, Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ, ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π΅Ρ‘ Ρ€Π°Π±ΠΎΡ‚Ρƒ. (2 Π±Π°Π»Π»Π°)

3. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‰ΡƒΡŽ ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΈ ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‰ΡƒΡŽ ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ, Π·Π°ΠΎΠ΄Π½ΠΎ вычисляя число строк (ΠΈΠ»ΠΈ символов) Π² Ρ„Π°ΠΉΠ»Π΅ (3 Π±Π°Π»Π»Π°)

- 42 -


Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с тСкстовыми строками Π² языкС Pascal сущСствуСт Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ABC Pascal. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ справочник ΠΏΠΎ этим функциям.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками

Имя ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

Π’ΠΈΠΏΡ‹ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

Π’ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния

ДСйствиС

Length(s)

s - string

integer

Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄Π»ΠΈΠ½Ρƒ строки s

Copy(s,index,count)

s - string, index ΠΈ count - integer

string

Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ подстроку строки s Π΄Π»ΠΈΠ½Ρ‹ count, начиная с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ index

Delete(s,index,count)

s - string,


удаляСт Π² строкС s count символов index ΠΈ начиная с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ index count - integer

Insert(subs,s,index)

s, subs - string, index - integer


вставляСт подстроку subs Π² строку s с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ index

Pos(subs,s)

s, subs- string

integer

Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΏΠ΅Ρ€Π²ΠΎΠΉ подстроки subs Π² строкС s (ΠΈΠ»ΠΈ 0 Ссли подстрока Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°)

SetLength(s,n)

s - string, n - integer


устанавливаСт Π΄Π»ΠΈΠ½Ρƒ строки s Ρ€Π°Π²Π½ΠΎΠΉ n

Str(x,s)

Str(x:n,s)

Str(x:n:m,s)

s - string, x - integer, real ΠΈ n, m - integer


ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ x ΠΊ строковому ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡŽ (Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌ случаях согласно Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ Π²Ρ‹Π²ΠΎΠ΄Π°, устанавливаСмому n ΠΈ m) ΠΈ записываСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² строку s

Val(s,v,code)

s - string, v - integer, real, ΠΈ code - integer

ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ строку s ΠΊ числовому ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡŽ ΠΈ записываСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ v. Если ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‚ΠΎ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ code возвращаСтся 0, Ссли Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‚ΠΎ Π² code возвращаСтся Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

Concat(s1,...,sn)

s1,..., sn - string

string

Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ строку, ΡΠ²Π»ΡΡŽΡ‰ΡƒΡŽΡΡ string Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ слияния строк s1,..., sn.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ Ρƒ выраТСния s1+s2+...+sn