ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΠΈ срСдства ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π’ΠΈΠΏ String допускаСт ΠΈ ΠΏΡƒΡΡ‚ΡƒΡŽ строку — строку, Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ символов: EmptyStr := '' {подряд ΠΈΠ΄ΡƒΡ‰ΠΈΠ΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ}. Она ΠΈΠ³Ρ€Π°Π΅Ρ‚ Ρ€ΠΎΠ»ΡŒ нуля (Π½Π΅ΠΉΡ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ элСмСнта) ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ: EmptyStr + X = X + EmptyStr = X. Над строками ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° опСрация ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ «+», Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ — строка, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹ соСдинСны Π² ΠΏΠΎΡ€ΡΠ΄ΠΊΠ΅ ΠΈΡ… ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ. НапримСр: Delete (var X: String; Index… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΠΈ срСдства ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ строкового Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΡΠ²Π»ΡΡŽΡ‚ΡΡ строки. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ языка прСдусматриваСт использованиС строк Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°ΠΊ констант, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ… Π²Ρ‹Π²ΠΎΠ΄Π° Write, Writeln. Π’ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΈ языка Turbo-Pascal строковый Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΏΠΎΠ»Π½Π΅Π΅.

Рис. 3. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ строкового Ρ‚ΠΈΠΏΠ°

Π—Π΄Π΅ΡΡŒ Ρ†Π΅Π»ΠΎΠ΅ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρƒ 1.255 ΠΈ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ максимальноС количСство символов Π² ΡΡ‚Ρ€ΠΎΠΊΠ΅ этого Ρ‚ΠΈΠΏΠ°. Если описаниС Ρ‚ΠΈΠΏΠ° String ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±Π΅Π· указания максимального количСства символов, это (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ) ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ этот Ρ‚ΠΈΠΏ рСзСрвируСтся 255 символов.

НапримСр:

Type Name = String[20]; { строки ΠΈΠ· 20-Ρ‚ΠΈ символов }.

Post = String; { строки ΠΈΠ· 255-Ρ‚ΠΈ символов }.

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° String.

Над строками ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° опСрация ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ «+», Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ — строка, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹ соСдинСны Π² ΠΏΠΎΡ€ΡΠ΄ΠΊΠ΅ ΠΈΡ… ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ. НапримСр:

'Turbo' + 'Pascal' = 'TurboPascal'; 'Turbo_' + 'Pascal ' + 'System' = 'Turbo_Pascal System';

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ выполнСния сСрии ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π½Π° ΡΠΊΡ€Π°Π½ строки ΠŸΡ€ΠΈΠΌΠ΅Ρ€ слоТСния строк.

X := 'ΠŸΡ€ΠΈΠΌΠ΅Ρ€'; Π£ := 'слоТСния'; Z := 'строк';

Writeln (X + Y + Z); Writeln (Y + ' ' + Z + ' ' + X).

Π’ΠΈΠΏ String допускаСт ΠΈ ΠΏΡƒΡΡ‚ΡƒΡŽ строку — строку, Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ символов: EmptyStr := '' {подряд ΠΈΠ΄ΡƒΡ‰ΠΈΠ΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ}. Она ΠΈΠ³Ρ€Π°Π΅Ρ‚ Ρ€ΠΎΠ»ΡŒ нуля (Π½Π΅ΠΉΡ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ элСмСнта) ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ: EmptyStr + X = X + EmptyStr = X.

Над строками ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ (ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ логичСского Ρ‚ΠΈΠΏΠ°).

" = «, ««, ««, «= «.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΡΡ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² упорядочСн, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ лСксикографичСски. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ.

  • Π°) порядок Π½Π° ΡΡ‚Ρ€ΠΎΠΊΠ°Ρ… согласован с ΠΏΠΎΡ€ΡΠ΄ΠΊΠΎΠΌ, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½ΠΎΠΌ Ρ‚ΠΈΠΏΠ΅ (Char);
  • Π±) сравнСниС Π΄Π²ΡƒΡ… строк осущСствляСтся посимвольно, начиная с ΠΏΠ΅Ρ€Π²Ρ‹Ρ… символов;
  • Π²) Ссли строка A Π΅ΡΡ‚ΡŒ Π½Π°Ρ‡Π°Π»ΠΎ строки B, Ρ‚ΠΎ A < Π’;
  • Π³) пустая строка — наимСньший элСмСнт Ρ‚ΠΈΠΏΠ°.

НапримСр:

  • Π°) 'с' < 'k', Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ord (`c') < Ord (`k');
  • Π±) 'abс' < 'abk', Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π° символа строк ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚, Π° ΡΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ… Π΄Π°Π΅Ρ‚ Ord (`c') < Ord (`k');
  • Π²) 'abс' < 'abkd', Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π° символа строк ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚, Π° ΡΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ… Π΄Π°Π΅Ρ‚ Ord (`c') < Ord (k);
  • Π³) 'ab' < 'abсd', Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ строка 'ab'- Π½Π°Ρ‡Π°Π»ΠΎ строки 'abсd'.

На ΡΡ‚Ρ€ΠΎΠΊΠΎΠ²ΠΎΠΌ Ρ‚ΠΈΠΏΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹:

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

a) Length (X: String): Byte; - Π΄Π»ΠΈΠ½Π° строки X; { Length (EmptyStr) = 0 }.

  • Π±) Pos (Y:String; X: String):Byte; - позиция ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ символа ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ слСва вхоТдСния подстроки Y Π² ΡΡ‚Ρ€ΠΎΠΊΡƒ X. Если X Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ Y, Pos (Y, X) = 0.
  • Π²) Copy (X:String; Index, Count: Integer):String — подстрока строки X, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π°ΡΡΡ с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Index ΠΈ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰Π°Ρ Count символов.
  • Π³) Concat (X1, X2, ., Xk: String): String; - конкатСнация строк Π₯1, X2, ., Xk. Другая Ρ„ΠΎΡ€ΠΌΠ° записи суммы X1+X2+. +Xk.

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹:

Π΄) Delete (var X: String; Index, Count: Integer); Из ΡΡ‚Ρ€ΠΎΠΊΠΈ X ΡƒΠ΄Π°Π»ΡΠ΅Ρ‚ся Π‘ount символов, начиная с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Index. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ помСщаСтся Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ X.

e) Insert (Y:string; var X: String; Index: Integer); Π’ ΡΡ‚Ρ€ΠΎΠΊΡƒ X Π²ΡΡ‚авляСтся строка Y, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ вставка осущСствляСтся начиная с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Index.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° Паскаля Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ для Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° строк. ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ, Ρ‡Ρ‚ΠΎ для Π²Π²ΠΎΠ΄Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… строковых Π΄Π°Π½Π½Ρ‹Ρ… слСдуСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ Readln. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Read Π² ΡΡ‚ΠΈΡ… случаях ΠΌΠΎΠΆΠ΅Ρ‚ вСсти сСбя нСпрСдсказуСмо.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2. Π”Π°Π½ массив A[1.n] of string[20]. Π‘ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π·Π°ΠΌΠ΅Π½Ρ‹ всСх ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ подстроки L Π² A[i] Π½Π° ΠΏΠΎΠ΄ΡΡ‚Ρ€ΠΎΠΊΡƒ R. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ L ΠΈ R Π²Π²ΠΎΠ΄ΡΡ‚ся с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ Π² Π²ΠΈΠ΄Π΅ равСнства L = R. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π·Π°ΠΌΠ΅Π½ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π² ΠΌΠ°ΡΡΠΈΠ², элСмСнты ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ — равСнства Π²ΠΈΠ΄Π° A[i]=Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π·Π°ΠΌΠ΅Π½Ρ‹ L Π½Π° R Π² A[i].

Program RewriteArray;

Const n = 100; Single = 20; Double = 41;

Type.

Sitem = string[Single]; Ditem = string[Double];

SWordArray = array[1.n] of Sitem; DWordArray = array[1.n] of Ditem;

Var.

A: SWordArray; B: DWordArray;

L, R: Sitem; X: Sitem;

i, Index: Integer;

Procedure InpWord (var U, V: Sitem);

Var X: Ditem;

j: Integer;

Begin.

Writeln ('________ Π’Π²ΠΎΠ΄ равСнства L = R __________');

Read (X); j := Pos ('=', X);

U := Copy (X, 1, j — 1);

V := Copy (X, j + 1, Length (X)).

End;

Procedure InpArray;

begin.

Writeln ('====== Π’Π²ΠΎΠ΄ массива слов ======');

For i:=1 to n do Readln (A[i]).

end;

Procedure OutArray;

begin.

Writeln ('====== Π’Ρ‹Π²ΠΎΠ΄ массива слов ====');

For i:=1 to n do Writeln (B[i]).

end;

Begin.

InpArray; {Π²Π²ΠΎΠ΄ массива слов с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹}.

InpWord (L, R); {Π²Π²ΠΎΠ΄ ΠΈ Π°Π½Π°Π»ΠΈΠ· равСнства L = R}.

For i := 1 to n do begin.

X := A[i]; Index := Pos (L, X);

If Index 0.

then begin.

Delete (X, Index, Length (L));

Insert (R, X, Index).

end;

B[i] := A[i] + '=' + X.

end;

OutArray; {Π²Ρ‹Π²ΠΎΠ΄ массива слов Π½Π° ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ }.

End.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ