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

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ поиска Π½Π° основС рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

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

Рис. 3 — Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π‘) Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄Π°Π²Π°Π»Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ находятся Π½ΠΎΠΌΠ΅Ρ€Π° Π›ΠΈΡ…Ρ‚Π΅Π½ΡˆΡ‚Π΅ΠΉΠ½Π° ΠΈ Π½ΠΎΠΌΠ΅Ρ€Π°, содСрТащиС ΠΎΠ΄Π½Ρƒ ΠΎΡˆΠΈΠ±ΠΊΡƒ. Π”Π°Π»Π΅Π΅ описываСтся ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ. Каким ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΎΠ½Π° запускаСтся, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Ρ‹ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° с ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΡΠΌΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ срСду… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ поиска Π½Π° основС рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

1. ΠŸΠžΠ‘Π’ΠΠΠžΠ’ΠšΠ Π—ΠΠ”ΠΠ§Π˜

Π‘ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ синтаксичСский Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ тСкста. Анализатор ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ написан Π½Π° Π»ΡŽΠ±ΠΎΠΌ языкС программирования. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·Π±ΠΎΡ€ тСкста ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² Π½Π΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ конструкции. Π’Π°ΠΊΠΆΠ΅ Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Π°Π½Π°Π»ΠΈΠ·Π°, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… конструкций, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ конструкции, ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΠ΅ΡΡ ΠΎΡ‚ Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ символом.

Π’ ΡΠΎΠΎΡ‚вСтствии с Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ задания, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΌ тСкстС ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ конструкции ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π²ΠΈΠ΄Π°:

АА 000 00А Π³Π΄Π΅ «Π» — ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ символ,

«0» — ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Π°Ρ Ρ†ΠΈΡ„Ρ€Π°,

«-» — Π·Π½Π°ΠΊ дСфиса,

«@" — ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ символ (ΠΊΡ€ΠΎΠΌΠ΅ Π±ΡƒΠΊΠ², Ρ†ΠΈΡ„Ρ€, ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² ΠΈ Π·Π½Π°ΠΊΠΎΠ² прСпинания).

Π’Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ конструкции, ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΠ΅ΡΡ ΠΎΡ‚ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ символом. НСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Ρ‚Π°ΠΊΠΈΡ… конструкций:

Π°) АА 0A0 00А, Π±) АА 000 A0А, Π²) А0 000 00А, Π³) 0А 000 00А, Π΄) АА A00 00А.

2. ΠšΠžΠΠ•Π§ΠΠ«Π™ ΠΠ’Π’ΠžΠœΠΠ’

Заданная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° рСализуСтся Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π°.

Π”Π°Π»Π΅Π΅ рассматриваСтся ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° ΠΈ Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ² для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Рис. 1

Π€ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ описаниС ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

КА=(Q = {A1…A10,B0…B9,C0…C8,…, J0… J1,K0}, V ={Π±ΡƒΠΊΠ²Π°, Π½Π΅ Π±ΡƒΠΊΠ²Π°, ΠΏΡ€ΠΎΠ±Π΅Π», Π½Π΅ ΠΏΡ€ΠΎΠ±Π΅Π», Ρ†ΠΈΡ„Ρ€Π°, Π½Π΅ Ρ†ΠΈΡ„Ρ€Π°,}A0, Π΄, Z1, Z2={ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ конструкция, Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ конструкция}

Ѐункция ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ² Π΄:

Π±ΡƒΠΊΠ²Π°

Π½Π΅ Π±ΡƒΠΊΠ²Π°

Ρ†ΠΈΡ„Ρ€Π°

Π½Π΅ Ρ†ΠΈΡ„Ρ€Π°

ΠΏΡ€ΠΎΠ±Π΅Π»

Π½Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»

ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ конструкция

Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ конструкция

A0

B0

A1

B0

C0

B1

C0

D0

C1

D0

E0

D1

E0

F0

E1

F0

G0

F1

G0

H0

G1

H0

I0

I0

J0

I1

J0

K0

J1

K0

Z1

A1

A2

A2

A3

A3

A4

A4

A5

A5

A6

A6

A7

A7

A8

A8

A9

A9

A10

A10

Z2

B1

B2

B2

B3

B3

B4

B4

B5

B6

B6

B7

B7

B8

B8

B9

B9

Z2

C1

C2

C2

C3

C3

C4

C4

C5

C5

C6

C6

C7

C7

C8

C8

Z2

D1

D2

D2

D3

D3

D4

D4

D5

D5

D6

D6

D7

D7

Z2

E1

E2

E2

E3

E3

E4

E4

E5

E5

E6

E6

Z2

F1

F2

F2

F3

F3

F4

F4

F5

F5

Z2

G1

G2

G2

G3

G3

G4

G4

Z2

H1

H2

H2

H3

H3

Z2

I1

I2

I2

Z2

J1

Z2

БостояниС

ДСйствиС

A0

Π˜ΡΡ…ΠΎΠ΄Π½ΠΎΠ΅ состояниС

B0

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ символа (Π±ΡƒΠΊΠ²Π°)

(C0, A2)

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ символа (Π±ΡƒΠΊΠ²Π°)

(D0, B2, A3)

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ символа (ΠΏΡ€ΠΎΠ±Π΅Π»)

(E0, C2, B3, A4)

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΠΎΠ³ΠΎ символа (Ρ†ΠΈΡ„Ρ€Π°)

(F0, D2, C3, B4, A5)

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ пятого символа (Ρ†ΠΈΡ„Ρ€Π°)

(G0, E2, D3, C4, B5, A6)

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡˆΠ΅ΡΡ‚ΠΎΠ³ΠΎ символа (Ρ†ΠΈΡ„Ρ€Π°)

(H0, F2, E3, D4, C5, B6, A7)

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ сСдьмого символа (ΠΏΡ€ΠΎΠ±Π΅Π»)

(I0, G2, F3, E4, D5, C6, B7, A8)

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ восьмого символа (Ρ†ΠΈΡ„Ρ€Π°)

(J0, H2, G3, F4, E5, D6, C7, B8, A9)

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ дСвятого символа (Ρ†ΠΈΡ„Ρ€Π°)

(K0, I2, H3, G4, F5, E6, D7, C8, B9, A10)

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ дСсятого символа (Π±ΡƒΠΊΠ²Π°)

(A1, B1, J1)

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠ΄ΠΈΠ½Π½Π°Π΄Ρ†Π°Ρ‚ΠΎΠ³ΠΎ символа (Π½Π΅ Π±ΡƒΠΊΠ²Π°)

(D1, E1, F1, H1, I1)

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄Π²Π΅Π½Π°Π΄Ρ†Π°Ρ‚ΠΎΠ³ΠΎ символа (Π½Π΅ Ρ†ΠΈΡ„Ρ€Π°)

(C1, G1)

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚Ρ€ΠΈΠ½Π°Π΄Ρ†Π°Ρ‚ΠΎΠ³ΠΎ символа (Π½Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»)

(Z1, Z2)

Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π°

3. ΠΠ›Π“ΠžΠ Π˜Π’Πœ Π ΠΠ—Π ΠΠ‘ΠžΠ’ΠΠΠΠžΠ™ ΠŸΠ ΠžΠ“Π ΠΠœΠœΠ«

Π’ ΡΡ‚ΠΎΠΉ Π³Π»Π°Π²Π΅ описываСтся Π±Π»ΠΎΠΊ-схСма Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ со Π²ΡΠ΅ΠΌΠΈ условиями, Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°ΠΌΠΈ.

Рис. 2

Рассмотрим словСсный Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

Π¨Π°Π³ 1: Начало ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π¨Π°Π³ 2: Π§Ρ‚Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°.

Π¨Π°Π³ 3: Π—Π°ΠΏΠΈΡΡŒ тСкста Π² ΡΡ‚Ρ€ΠΎΠΊΡƒ.

Π¨Π°Π³ 4: Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ строки Π½Π° ΠΌΠ°ΡΡΠΈΠ² слов.

Π¨Π°Π³ 5: ΠŸΠ΅Ρ€Π΅Π±ΠΎΡ€ ΠΈ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ слов с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ индСксом.

Π¨Π°Π³ 6: ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° слов ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΡŽ маскС.

Π¨Π°Π³ 7: Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ слов Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ элСмСнты.

Π¨Π°Π³ 8: ΠŸΠ΅Ρ€Π΅Π±ΠΎΡ€ элСмСнтов слова.

Π¨Π°Π³ 9: Π’Ρ‹Π±ΠΎΡ€ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΏΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌΡƒ элСмСнту.

Π¨Π°Π³ 10: ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ символа.

Π¨Π°Π³ 11−19: ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… символов Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ.

Π¨Π°Π³ 20: Π’ ΡΠ»ΡƒΡ‡Π°Π΅ выполнСния ΠΏΡ€Π°Π²ΠΈΠ», Π²Ρ‹Π²ΠΎΠ΄ конструкций Π½Π° ΡΠΊΡ€Π°Π½.

Π¨Π°Π³ 21: ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ слов Π½Π° ΠΎΡˆΠΈΠ±ΠΊΠΈ.

Π¨Π°Π³ 22: Π’Ρ‹Π²ΠΎΠ΄ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹Ρ… конструкций Π½Π° ΡΠΊΡ€Π°Π½.

Π¨Π°Π³ 23: ΠšΠΎΠ½Π΅Ρ† ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

4. ΠšΠžΠ” ΠŸΠ ΠžΠ“Π ΠΠœΠœΠ«

НиТС приводится ΠΊΠΎΠ΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с ΠΏΠΎΡΡ‚Ρ€ΠΎΡ‡Π½Ρ‹ΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅ΠΌ.

public partial class Form1: Form

{

string filename;

public Form1()

{

InitializeComponent ();

}

private void button1_Click (object sender, EventArgs e)

{

Regex rege = new Regex (@" ^[a-zA-Z][a-zA-Z]()[0−9][0−9][0−9]()[0−9][0−9][a-zA-Z]$"); // маска

if (filename == null)

{

MessageBox.Show («Π€Π°ΠΉΠ» Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π½! n Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»!»);

}

else

{

Regex reg;

int def = 0;

string TempWord;

string[] TempWord1;

string text1 = «» ;

String line;

StringBuilder str = new StringBuilder (); // измСняСмая стока

StringBuilder str1 = new StringBuilder ();

using (StreamReader sr = new StreamReader (filename))

{

line = sr. ReadToEnd ();

TempWord = line;

TempWord1 = TempWord. Split (new char[] { '.', ',', 'r', 'n' });

}

for (int i = 0; i < TempWord1. Length; i++) // ΠΈΠ΄Π΅ΠΌ ΠΏΠΎ ΠΌΠ°ΡΡΠΈΠ²Ρƒ

{

text1 = TempWord1[i];

foreach (Match match in rege. Matches (text1))

{

str1.AppendLine (match.Value);

textBox1.Text = str1. ToString ();

}

char[] b = text1. ToCharArray ();

for (int j = 0; j < b. Length; j++)

{

char Temp;

Temp = b[j];

int a = 0;

switch (j)

{

case 0:

reg = new Regex (@" ^[a-zA-Z]$");

foreach (Match match in reg. Matches (Convert.ToString (b[j])))

{

a++;

}

if (a == 0)

{

def++;

}

break;

case 1:

reg = new Regex (@" ^[a-zA-Z]$");

foreach (Match match in reg. Matches (Convert.ToString (b[j])))

{

a++;

}

if (a == 0)

{

def++;

}

break;

case 2:

reg = new Regex (@" ^()$");

foreach (Match match in reg. Matches (Convert.ToString (b[j])))

{

a++;

}

if (a == 0)

{

def++;

}

break;

case 3:

reg = new Regex (@" ^[0−9]$");

foreach (Match match in reg. Matches (Convert.ToString (b[j])))

{

a++;

}

if (a == 0)

{

def++;

}

break;

case 4:

reg = new Regex (@" ^[0−9]$");

foreach (Match match in reg. Matches (Convert.ToString (b[j])))

{

a++;

}

if (a == 0)

{

def++;

}

break;

case 5:

reg = new Regex (@" ^[0−9]$");

foreach (Match match in reg. Matches (Convert.ToString (b[j])))

{

a++;

}

if (a == 0)

{

def++;

}

break;

case 6:

reg = new Regex (@" ^()$");

foreach (Match match in reg. Matches (Convert.ToString (b[j])))

{

a++;

}

if (a == 0)

{

def++;

}

break;

case 7:

reg = new Regex (@" ^[0−9]$");

foreach (Match match in reg. Matches (Convert.ToString (b[j])))

{

a++;

}

if (a == 0)

{

def++;

}

break;

case 8:

reg = new Regex (@" ^[0−9]$");

foreach (Match match in reg. Matches (Convert.ToString (b[j])))

{

a++;

}

if (a == 0)

{

def++;

}

break;

case 9:

reg = new Regex (@" ^[a-zA-Z]$");

foreach (Match match in reg. Matches (Convert.ToString (b[j])))

{

a++;

}

if (a == 0)

{

def++;

}

break;

default: MessageBox. Show («ΠΠ΅Ρ‚ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ»);

break;

}

}

if (def > 1)

{

str.AppendLine (text1);

textBox3.Text = str. ToString ();

}

else if (def == 1)

{

str.AppendLine (text1);

textBox2.Text = str. ToString ();

}

str = new StringBuilder ();

def = 0;

}

}

}

private void button2_Click (object sender, EventArgs e)

{

OpenFileDialog openFileDialog1 = new OpenFileDialog () Filter = «Π’СкстовыС Ρ„Π°ΠΉΠ»Ρ‹ (*.doc);

if (openFileDialog1.ShowDialog () == DialogResult. OK)

filename = openFileDialog1. FileName;

}

ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ ΠΊΠΎΠ΄ интСрфСйс

5. ΠŸΠ Π˜ΠœΠ•Π  Π ΠΠ‘ΠžΠ’Π« Π ΠΠ—Π ΠΠ‘ΠžΠ’ΠΠΠΠžΠ™ ΠŸΠ ΠžΠ“Π ΠΠœΠœΠ«

Π”Π°Π»Π΅Π΅ описываСтся ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ. Каким ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΎΠ½Π° запускаСтся, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Ρ‹ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° с ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΡΠΌΠΈ.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Ρƒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² тСстирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для Ρ€Π°Π·Π½Ρ‹Ρ… Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

А) Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Visual Studio ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ПослС Ρ‡Π΅Π³ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ (комбинация клавиш (ctrl + F5)).

Рис. 3 — Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π‘) Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄Π°Π²Π°Π»Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ находятся Π½ΠΎΠΌΠ΅Ρ€Π° Π›ΠΈΡ…Ρ‚Π΅Π½ΡˆΡ‚Π΅ΠΉΠ½Π° ΠΈ Π½ΠΎΠΌΠ΅Ρ€Π°, содСрТащиС ΠΎΠ΄Π½Ρƒ ΠΎΡˆΠΈΠ±ΠΊΡƒ.

Рис. 4 — ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

1. ВСнишСв Π”. Π¨. ЛингвистичСскоС ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… систСм [ВСкст] / Π”. Π¨. ВСнишСв. — Π‘Пб.: ЦОП «ΠŸΡ€ΠΎΡ„Сссия», 2010. — 48 с.

2. Π—Π°Π±ΠΎΠ»Π΅Π΅Π²Π°-Π—ΠΎΡ‚ΠΎΠ²Π° А.Π’., КамаСв Π’. А. ЛингвистичСскоС обСспСчСниС Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… систСм [ВСкст] / А.Π’. Π—Π°Π±ΠΎΠ»Π΅Π΅Π²Π°-Π—ΠΎΡ‚ΠΎΠ²Π°, Π’. А. КамаСв. — Πœ.: Π’Ρ‹ΡΡˆ. шк., 2008. — 244 с.

3. Мозговой М. Π’. Классика программирования: языки, Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Ρ‹, компиляторы. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ [ВСкст] / М. Π’. Мозговой. — Π‘Пб.: «ΠΠ°ΡƒΠΊΠ° ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ°», 2006. — 320 с.

4. Ахо А., Π‘Π΅Ρ‚ΠΈ Π ., Ульман Π”. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Ρ‹: ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹, Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΈΠ³ΠΈΠΈ, инструмСнты [ВСкст]: ΠΏΠ΅Ρ€. Ρ Π°Π½Π³Π». / А. Ахо, Π . Π‘Π΅Ρ‚ΠΈ, Π”. Ульман. — Πœ.: Изд. Π΄ΠΎΠΌ «Π’ΠΈΠ»ΡŒΡΠΌΡ», 2003. — 768 с.

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