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

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ прилоТСния для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ информационно–логичСских Π·Π°Π΄Π°Ρ‡

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

ΠžΡ†Π΅Π½ΠΊΠ° надСТности ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… источников ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ А. Π‘Π»ΠΎΠΊ-схСма Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π°Π½Π°Π»ΠΈΠ·Π° арифмСтичСского выраТСния ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π‘. Π‘Π»ΠΎΠΊ-схСма Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π°Π½Π°Π»ΠΈΠ·Π° тСкста простой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘ ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π’. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π°Π½Π°Π»ΠΈΠ·Π° арифмСтичСского выраТСния ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π“. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ простой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° простой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ прилоТСния для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ информационно–логичСских Π·Π°Π΄Π°Ρ‡ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

КП — НВИ Π‘Π΅Π²ΠšΠ°Π²Π“Π’Π£ — 230 201.65.ОН. 174- 11

Π Π°Π·Ρ€Π°Π±oΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ прилоТСния для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈΠ½Ρ„oΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎ — Π»oгичСских Π·Π°Π΄Π°Ρ‡ ΠšΡƒΠ±ΠΎΡ‚Π° АлСксандр Π‘Π΅Ρ€Π³Π΅Π΅Π²ΠΈΡ‡ ИБ-091

Π‘oΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

1. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° тСхничСского задания Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

1.1 ΠžΠ±Ρ‰Π°Ρ постановка Π·Π°Π΄Π°Ρ‡ΠΈ

1.2 ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅

1.3 ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ

1.4 ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ ΡΠΈΡΡ‚Π΅ΠΌΠ΅

1.4.1 Π’Ρ€Π΅Π±oвания ΠΊ ΡΠΈΡΡ‚Π΅ΠΌΠ΅ Π² Ρ†Π΅Π»ΠΎΠΌ

1.4.2 ВрСбования ΠΊ Ρ‚СхничСскому ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌΡƒ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ

1.4.3 Π’Ρ€Π΅Π±oвания ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌΡƒ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ

2. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ прилоТСния

2.1 Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ

2.2 Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° структуры ΠΈ Ρ„ΠΎΡ€ΠΌΡ‹ прСдставлСния Π΄Π°Π½Π½Ρ‹Ρ…

2.3 Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ

2.4 Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ

2.4.1 Π’Ρ‹Π±ΠΎΡ€ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… срСдств

2.4.2 Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° структуры ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

2.4.3 ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ

2.4.4 ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ интСрфСйса

2.5 ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ тСхничСских срСдств

2.6 ВСстированиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

2.6.1 ΠžΠ±Ρ‰ΠΈΠ΅ свСдСния

2.6.2 ΠŸΡ€ΠΎΡ†Π΅ΡΡ тСстирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

2.6.3 ΠžΡ†Π΅Π½ΠΊΠ° надСТности ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… источников ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ А. Π‘Π»ΠΎΠΊ-схСма Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π°Π½Π°Π»ΠΈΠ·Π° арифмСтичСского выраТСния ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π‘. Π‘Π»ΠΎΠΊ-схСма Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π°Π½Π°Π»ΠΈΠ·Π° тСкста простой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘ ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π’. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π°Π½Π°Π»ΠΈΠ·Π° арифмСтичСского выраТСния ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π“. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ простой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° простой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘

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

Одной ΠΈΠ· Π²Π°ΠΆΠ½Π΅ΠΉΡˆΠΈΡ… ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎ — логичСских Π·Π°Π΄Π°Ρ‡ являСтся синтаксичСский Π°Π½Π°Π»ΠΈΠ· тСкста.

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

ВыявлСниС ошибок синтаксиса — Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠΈΠΉ процСсс. ΠžΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡƒΡ‚Π΅ΠΌ создания ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ являСтся Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒΡŽ этого ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ врСмя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ.

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

1. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° тСхничСского задания Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ирования

1.1 ΠžΠ±Ρ‰Π°Ρ постановка Π·Π°Π΄Π°Ρ‡ΠΈ

Π—Π°Π΄Π°Ρ‡Π΅ΠΉ Π΄Π°Π½Π½ΠΎΠ³ΠΎ курсового ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° являСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ прилоТСния, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

1) синтаксичСский Π°Π½Π°Π»ΠΈΠ· простой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘;

2) Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘.

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘ ΡΠ²Π»ΡΠ΅Ρ‚ся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, состоящая Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main ΠΈ Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰Π°Ρ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π’ Π΅Π΅ ΡΠΎΡΡ‚Π°Π² Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹:

1) ОписаниС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ;

2) ОписаниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…;

3) АрифмСтичСскиС ΠΈ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ выраТСния;

4) ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹;

5) Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Π²ΠΎΠ΄Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π°;

6) ΠžΠ΄Π½ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½Ρ‹Π΅ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ.

1.2 ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ выполнСния ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:

— ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ синтаксиса написания простой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘;

— ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°, являСтся Π»ΠΈ ввСдСнная логичСская функция ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎΠΉ ΠΊΠΎΠ½ΡŠΡŽΠ½ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ (БКНЀ).

Π’Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΠΈ:

— ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ввСдСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΡ€ΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ ошибки.

ВрСбования ΠΊ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ совмСстимости:

— Π΄Π»Ρ запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ срСду Microsoft Visual Studio 2008.

1.3 ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ

БинтаксичСский Π°Π½Π°Π»ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ просмотра Π΅Π΅ Ρ‚Скста построчно ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки посимвольно. ΠŸΡ€ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΈ синтаксичСской ошибки Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ сообщСниС ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ΅, содСрТащСС Π½ΠΎΠΌΠ΅Ρ€ строки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Ρ‚Скст сообщСния.

Π’ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒΡΡ:

— Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² символом «;»;

— ΠΏΠ°Ρ€Π½ΠΎΡΡ‚ΡŒ скобок «(…)», «[…]», «{…}»;

— ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ оформлСния ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² «/*…*/»;

— ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа латинского Π°Π»Ρ„Π°Π²ΠΈΡ‚Π° «a, b… z»;

— ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ присвоСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ «:=».

ΠŸΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ всС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… строках с ΡΠΎΠ±Π»ΡŽΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π° отступа, ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π·Π½Π°ΠΊΠΈ табуляции ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ всС конструкции языка ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ.

ВСкст провСряСмой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ записан Π² Ρ„Π°ΠΉΠ»Π΅ .txt.

Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ написания БКНЀ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ:

— ΠΏΠ°Ρ€Π½ΠΎΡΡ‚ΡŒ скобок «(…)»;

— ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ написания ΠΊΠΎΠ½ΡŠΡŽΠ½ΠΊΡ†ΠΈΠΉ «…)&(…»;

— ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ написания Π΄ΠΈΠ·ΡŠΡŽΠ½ΠΊΡ†ΠΈΠΉ «(…|…)»;

— ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ написания отрицания элСмСнтов «!a… a».

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

Π’ Π½Π°ΡΡ‚оящСС врСмя ΠΏΡ€ΠΈ описании синтаксиса языка Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π΄Π²Π° Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ синтаксичСскиС Ρ„ΠΎΡ€ΠΌΡ‹ Бэкуса — Наура ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой мСталингвистичСскиС Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹. КаТдоС понятиС языка опрСдСляСтся Ρ‡Π΅Ρ€Π΅Π· мноТСство допустимых конструкций языка с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ СдинствСнной Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹. Π’ Ρ„ΠΎΡ€ΠΌΠ°Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ мСтасимволы:

:= - ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ понятия;

?? — ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ²;

< > - ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΠΈ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ²;

| - конструкция «ΠΈΠ»ΠΈ»;

[ ] - ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅ 0 ΠΈΠ»ΠΈ 1 Ρ€Π°Π·;

{ } - ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅ 0 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π·;

() — Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ°;

? — ΠΏΡƒΡΡ‚ая синтаксичСская Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°;

. — Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹.

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠΎΠΉ записи Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ синтаксичСскиС Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹. КаТдая Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° являСтся ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π³Ρ€Π°Ρ„ΠΎΠΌ. КаТдая Π²Π΅Ρ€ΡˆΠΈΠ½Π°, Π½Π΅ ΡΠ²Π»ΡΡŽΡ‰Π°ΡΡΡ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ, являСтся ΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ синтаксичСского Ρ€Π°Π·Π±ΠΎΡ€Π° Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°. КаТдой Π΄ΡƒΠ³Π΅ ставится Π² ΡΠΎΠΎΡ‚вСтствии Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΈΠ»ΠΈ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»:

Рисунок 1 — ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΡ элСмСнтов синтаксичСских Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ РБНЀ ΠΈ ΡΠΈΠ½Ρ‚аксичСскиС Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ опрСдСлСния Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° «Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡ языка Π‘»:

<οΏ½Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ языка C> :=

<οΏ½Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅> «) <οΏ½Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅>.

Рисунок 2 — РБНЀ для Π°Π½Π°Π»ΠΈΠ·Π° БКНЀ

<�БКНЀ> :=

<οΏ½Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅> «(«.

Рисунок 3 — РБНЀ для Π°Π½Π°Π»ΠΈΠ·Π° арифмСтичСского выраТСния

БинтаксичСский Ρ€Π°Π·Π±ΠΎΡ€ выраТСния Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ посимвольно.

1.4 ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ ΡΠΈΡΡ‚Π΅ΠΌΠ΅

1.4.1 ВрСбования ΠΊ ΡΠΈΡΡ‚Π΅ΠΌΠ΅ Π² Ρ†Π΅Π»ΠΎΠΌ

К ΠΎΠ±Ρ‰ΠΈΠΌ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π² ΡΠΊΡΠΏΠ»ΡƒΠ°Ρ‚Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ прилоТСния ΠΌΠΎΠΆΠ½ΠΎ отнСсти:

— ΠΊΠ²Π°Π»ΠΈΡ„икация пСрсонала ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠŸΠš;

— Π·Π½Π°Π½ΠΈΠ΅ назначСния Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния;

— Π·Π½Π°Π½ΠΈΠ΅ основ синтаксиса языка Π‘.

ΠŸΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠΉ ситуации всС Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ сохранСны, Ρ‚. ΠΊ. Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ доступны для чтСния.

Условия эксплуатации:

— Π·Π½Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹;

— ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²Π²ΠΎΠ΄Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ БКНЀ, с ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ΠΌ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов (| - Π΄ΠΈΠ·ΡŠΡŽΠ½ΠΊΡ†ΠΈΡ, & - ΠΊΠΎΠ½ΡŠΡŽΠ½ΠΊΡ†ΠΈΡ, ! — ΠΎΡ‚Ρ€ΠΈΡ†Π°Π½ΠΈΠ΅);

— ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ рСгистра.

1.4.2 ВрСбования ΠΊ Ρ‚СхничСскому ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ

ВСхничСскиС трСбования:

— ΡƒΡΡ‚ройства Π²Π²ΠΎΠ΄Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€;

— ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ класса Pentium 3 ΠΈ Π²Ρ‹ΡˆΠ΅;

— ΠΎΠ±ΡŠΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 128 Мб;

— ΠΎΡ‚ 500 Мб ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ мСста Π½Π° ΠΆΠ΅ΡΡ‚ΠΊΠΎΠΌ дискС, для обСспСчСния запуска ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹;

— Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½Ρ‹ΠΉ графичСский Ρ‡ΠΈΠΏ ΠΈΠ»ΠΈ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ»Π°Ρ‚Π°.

1.4.3 ВрСбования ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌΡƒ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ

БистСма Π΄ΠΎΠ»ΠΆΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° IBM совмСстимых ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ….

НаличиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Windows вСрсии 5.1 ΠΈ Π²Ρ‹ΡˆΠ΅ с ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΌ Net Framework вСрсии 3.5 ΠΈ Π²Ρ‹ΡˆΠ΅. НаличиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния для Π²Π²ΠΎΠ΄Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ….

2. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ прилоТСния

2.1 Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ

Π’Π²ΠΎΠ΄ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ БКНЀ для Π΅Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ осущСствляСтся Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ осущСствляСтся ΠΈΠ· Ρ„Π°ΠΉΠ»Π°. ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΎΠΉ являСтся:

— ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° с Ρ‚Скстом простой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹;

— Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Π½Π° Π½ΠΎΡΠΈΡ‚Π΅Π»Π΅;

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½Π° ΡΠΊΡ€Π°Π½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° тСхнологичСского процСсса:

— ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ с ΡΠΊΡ€Π°Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π²Π²Π΅Π΄Π΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ БКНЀ;

— ΠΏΠΎΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½ΠΎ провСсти синтаксичСский Π°Π½Π°Π»ΠΈΠ· Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ;

— ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» .txt с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ;

— ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° всС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½Ρ‹Π΅ ΠΈ ΠΎΠ΄Π½ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½Ρ‹Π΅;

— ΠΏΡ€ΠΎΠ²Π΅ΡΡ‚ΠΈ синтаксичСский ΠΈ Π°Ρ€ΠΈΡ„мСтичСский Π°Π½Π°Π»ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки.

НСобходимо использованиС соглашСний:

— ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° int Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°Ρ‚ΡŒΡΡ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ числовой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ, Ρ‚Π°ΠΊ ΠΈ ΡΡ€Π°Π·Ρƒ нСсколько ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… вмСстС;

— Π²ΡΠ΅ конструкции языка раздСляСт ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΠ±Π΅Π», ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ставится «;» Π² ΠΊΠΎΠ½Ρ†Π΅ строки Ρ‚Π°ΠΌ, Π³Π΄Π΅ это прСдусмотрСно синтаксисом языка Π‘;

— Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ всСх ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΉ Π±ΡƒΠΊΠ²ΠΎΠΉ латинского Π°Π»Ρ„Π°Π²ΠΈΡ‚Π° [a…z];

— Π² ΠΎΠ΄Π½ΠΎΠΉ строкС ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€;

Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠ΄ΡƒΠ»ΡŒ

— Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ слоТныС арифмСтичСскиС выраТСния.

2.2 Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° структуры ΠΈ Ρ„ΠΎΡ€ΠΌΡ‹ прСдставлСния Π΄Π°Π½Π½Ρ‹Ρ…

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ осущСствляСтся ΠΈΠ· Ρ„Π°ΠΉΠ»Π°. ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΎΠΉ являСтся:

— ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° с Ρ‚Скстом простой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹;

— Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Π½Π° Π½ΠΎΡΠΈΡ‚Π΅Π»Π΅;

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½Π° ΡΠΊΡ€Π°Π½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

— ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» .с с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ;

— ΠΏΠΎΡΡ‚Ρ€ΠΎΡ‡Π½ΠΎ провСсти синтаксичСский Π°Π½Π°Π»ΠΈΠ· Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ;

ΠŸΡ€ΠΈ соблюдСнии всСх Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ синтаксичСски Π²Π΅Ρ€Π½ΠΎΠΉ.

ΠžΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ исходныС Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½Ρ‹ Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с Ρ‚Сстом ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ сообщСния, Π² ΡΠ»ΡƒΡ‡Π°Π΅ обнаруТСния ошибки с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ ошибки.

2.3 Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ

Алгоритм Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΎ частСй пСрвая Ρ‡Π°ΡΡ‚ΡŒ выполняСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ арифмСтичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ А. Вторая функция Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π·Π°Π΄Π°Ρ‡ΠΈ синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π‘.

2.4 Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ

2.4.1 Π’Ρ‹Π±ΠΎΡ€ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… срСдств

На Π²Ρ‹Π±ΠΎΡ€ языка Π‘ ΠΏΠΎΠ²Π»ΠΈΡΠ»ΠΎ Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ простыС срСдства для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ тСкстовых Π΄Π°Π½Π½Ρ‹Ρ…, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ прост Π² ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ. Π‘Ρ‹Π»ΠΈ Π²Ρ‹Π±Ρ€Π°Π½Ρ‹ рСгулярныС выраТСния для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². ΠžΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±Ρ‹Π»ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒ посимвольно.

2.4.2 Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° структуры ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌΠΈ функциями ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ являСтся синтаксичСский ΠΈ Π°Ρ€ΠΈΡ„мСтичСский Π°Π½Π°Π»ΠΈΠ· тСкста. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° состоит ΠΈΠ· Ρ‡Π°ΡΡ‚Π΅ΠΉ:

— Π²Ρ‹Π²ΠΎΠ΄ Π½Π° ΡΠΊΡ€Π°Π½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ мСню, для Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ БКНЀ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ синтаксиса ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹;

— ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню «ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° БКНЀ» ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ вводится функция для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ производится ΠΏΠΎΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·Π±ΠΎΡ€ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, послС Ρ‡Π΅Π³ΠΎ выводится сообщСниС с ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠΌ, являСтся ΠΈΠ»ΠΈ Π½Π΅Ρ‚ ввСдСнная функция БКНЀ, ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ подмСню с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π² Π³Π»Π°Π²Π½ΠΎΠ΅ мСню;

— ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню «ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° синтаксиса ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹», ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ мСсто хранСния провСряСмого Ρ„Π°ΠΉΠ»Π° (d:programma.txt), послС Ρ‡Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ посимвольно, Π° Ρ‡Π°ΡΡ‚ΡŒ построчно, послС Ρ‡Π΅Π³ΠΎ Π½Π° ΡΠΊΡ€Π°Π½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ вывСдСтся сообщСниС ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ΅, Π»ΠΈΠ±ΠΎ Ссли Π² ΡΠ»ΡƒΡ‡Π°Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π°Π½ΠΎ сообщСниС ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ провСряСмой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π·Π°Ρ‚Π΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ подмСню с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π»ΠΈΠ±ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π² Π³Π»Π°Π²Π½ΠΎΠ΅ мСню.

2.4.3 ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ

ВсС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ тСкстовый ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΈ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ Ρ‡Π΅Ρ€Π΅Π· Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ тСкстовыС Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

— Π΄Π»Ρ ΠΏΠ΅Ρ€Π²ΠΎΠΉ части Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π²Π²Π΅Π΄Π΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ;

— Π΄Π»Ρ Π²Ρ‚ΠΎΡ€ΠΎΠΉ части Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ;

— Π΄Π»Ρ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊΠ°ΠΊ значимая Ρ‡Π°ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…, содСрТащихся Π² ΡΡ‚ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅.

2.4.4 ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ интСрфСйса

Π”ΠΈΠ°Π»ΠΎΠ³ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΈ ΠΎΡΡƒΡ‰Π΅ΡΡ‚вляСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

— Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, Π²Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°;

— Π·Π°ΠΏΡƒΡΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ Π²Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°;

— Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ всСгда Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

— «Π”анная функция являСтся БКНЀ»;

— «Π”анная функция Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся БКНЀ ΠΈΠ·-Π·Π° Π½Π΅Π²Π΅Ρ€Π½ΠΎΠ³ΠΎ количСства скобок»;

— «Π”анная функция Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся БКНЀ ΠΈΠ·-Π·Π° Π½Π΅Π²Π΅Ρ€Π½ΠΎ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠ½ΡŠΡŽΠ½ΠΊΡ†ΠΈΠΈ»;

— «Π”анная функция Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся БКНЀ ΠΈΠ·-Π·Π° Π½Π΅Π²Π΅Ρ€Π½ΠΎ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π΄ΠΈΠ·ΡŠΡŽΠ½ΠΊΡ†ΠΈΠΈ»;

— «Π”анная функция Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся БКНЀ ΠΈΠ·-Π·Π° нСсоотвСтствия элСмСнтов Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ»;

— «ΠžΡˆΠΈΠ±ΠΎΠΊ Π½Π΅Ρ‚!»;

— «ΠžΡˆΠΈΠ±ΠΊΠ°: ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ — /* */»;

— «ΠžΡˆΠΈΠ±ΠΊΠ°: Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки — { }»;

— «ΠžΡˆΠΈΠ±ΠΊΠ°: с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ — do while»;

— «ΠžΡˆΠΈΠ±ΠΊΠ°: Π² Π²ΡƒΠ½ΠΊΡ†ΠΈΡΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°…»;

— «ΠžΡˆΠΈΠ±ΠΊΠ°: Break»;

— «ΠžΡˆΠΈΠ±ΠΊΠ°: с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ Switch».

2.4.5 ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΠ΅ надСТности ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Данная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ Π½ΡƒΠΆΠ΄Π°Π΅Ρ‚ся Π² Π·Π°Ρ‰ΠΈΡ‚Π΅ ΠΎΡ‚ ΡΠ±ΠΎΠ΅Π², Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ информация Π½Π΅ Ρ…ранится.

2.5 ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ тСхничСских срСдств

— ΡƒΡΡ‚ройства Π²Π²ΠΎΠ΄Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€;

— ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ класса Pentium 3 ΠΈ Π²Ρ‹ΡˆΠ΅;

— ΠΎΠ±ΡŠΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 128 Мб;

— ΠΎΡ‚ 500 Мб ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ мСста Π½Π° ΠΆΠ΅ΡΡ‚ΠΊΠΎΠΌ дискС, для обСспСчСния запуска ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹;

— Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½Ρ‹ΠΉ графичСский Ρ‡ΠΈΠΏ ΠΈΠ»ΠΈ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ»Π°Ρ‚Π°.

2.6 ВСстированиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

2.6.1 ΠžΠ±Ρ‰ΠΈΠ΅ свСдСния

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ являСтся Ρ„Π°ΠΉΠ» с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ свойствами:

— ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° int;

— Π°Ρ€ΠΈΡ„мСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (a|b|c)&(!a|!b|c)&(a|!b|c);

— ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹: if. goto, do. while, switch;

— ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ;

2.6.2 ΠŸΡ€ΠΎΡ†Π΅ΡΡ тСстирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Для тСстирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ:

— ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π½Π° Π½ΠΎΡΠΈΡ‚Π΅Π»Π΅;

— Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ;

— Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΡƒΠΊΠ°Π·Π°Π² ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ;

— ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹;

— Π²Π²Π΅ΡΡ‚ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ БКНЀ;

— ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹;

— ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ с Ρ‚СорСтичСскими.

2.6.3 ΠžΡ†Π΅Π½ΠΊΠ° надСТности

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π°Π΄Π΅ΠΆΠ½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ. Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ся Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…, поэтому Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ Ρ‚рСбуСтся Π² ΡƒΡΠ»ΠΎΠ²ΠΈΡΡ… настоящСй Π·Π°Π΄Π°Ρ‡ΠΈ. ΠŸΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ хранятся Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти ΠΈ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ся сразу послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π—Π°Π΄Π°Ρ‡Π΅ΠΉ Π΄Π°Π½Π½ΠΎΠ³ΠΎ курсового ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° являлась Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ прилоТСния, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

— ΡΠΈΠ½Ρ‚аксичСский Π°Π½Π°Π»ΠΈΠ· простой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘;

— Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘.

Π’Π²ΠΎΠ΄ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ БКНЀ для Π΅Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ осущСствляСтся Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ осущСствляСтся ΠΈΠ· Ρ„Π°ΠΉΠ»Π°. ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΎΠΉ являСтся:

— ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° с Ρ‚Скстом простой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹;

— Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Π½Π° Π½ΠΎΡΠΈΡ‚Π΅Π»Π΅;

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½Π° ΡΠΊΡ€Π°Π½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π”ΠΈΠ°Π»ΠΎΠ³ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΈ ΠΎΡΡƒΡ‰Π΅ΡΡ‚вляСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

— Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, Π²Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°;

— Π·Π°ΠΏΡƒΡΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ Π²Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°;

— Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

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

1. Иванова, Π“. Π‘. ВСхнология программирования [ВСкст]: Π£Ρ‡Π΅Π±Π½ΠΈΠΊ для Π²ΡƒΠ·ΠΎΠ² / Иванова Π“. Π‘. — Πœ.: Изд-Π²ΠΎ ΠœΠ“Π’Π£ ΠΈΠΌ. Π. Π­. Π‘Π°ΡƒΠΌΠ°Π½Π°, 2002. — 320 с.: ΠΈΠ». — (Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ° Π² Ρ‚СхничСском унивСрситСтС). — ISBN 5−7038−2077;4.

2. ΠŸΠΎΠ»Π½Ρ‹ΠΉ справочник ΠΏΠΎ Π‘. Π§Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ [ВСкст]: ΠŸΠ΅Ρ€. Ρ Π°Π½Π³Π»./ Π¨ΠΈΠ»Π΄Ρ‚, Π“Π΅Ρ€Π±Π΅Ρ€Ρ‚. — Πœ.: Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π΄ΠΎΠΌ «Π’ΠΈΠ»ΡŒΡΠΌΡ», 2002. — 704 с.: ΠΈΠ». — ΠŸΠ°Ρ€Π°Π». Π’ΠΈΡ‚. Англ. — ISBN 5−8459−0226−6 (рус.).

3. ВСория ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡ языков программирования [Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹ΠΉ рСсурс] / Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-УнивСрситСт Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. — Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½. тСкст. Π΄Π°Π½. — Π Π΅ΠΆΠΈΠΌ доступа: http//www.INTUIT.ru, свободный.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ А

Π‘Π»ΠΎΠΊ-схСма Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ арифмСтичСского Π°Π½Π°Π»ΠΈΠ·Π°

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π‘

Π‘Π»ΠΎΠΊ-схСма Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π·Π°Π΄Π°Ρ‡ΠΈ синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π°

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π’

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ арифмСтичСского Π°Π½Π°Π»ΠΈΠ·Π°

#include

int main ()

{

char *dnf="a&b|b&c" ;

int form[255][255];

int j;

j=0;

int k;

k=0;

int dnfsize;

dnfsize=0;

do

{

dnfsize=dnfsize+1;

}

while (dnf[dnfsize]≠'');

int max;

max='a';

int neqzero;

neqzero=0;

int flag;

flag=0;

for (int i=0 ;i<=dnfsize; i=i+1)

{

if (dnf[i]=='|')

{

k=k+1;

j=0;

}

if (i≠0 && dnf[i]≠'|' && dnf[i]≠'&')

{

form[j][k]=dnf[i];

j=j+1;

if (dnf[i]≠'&')

if (max

max=dnf[i];

}

}

int z;

z=max-'a'+1;

int pow;

pow=1<

int table2[pow];

for (int i=0;i

table2[i]=0;

for (int i=0;i

{

int table[z];

for (int j=0;j

table[j]=2;

int nm;

nm=0;

for (int j=0;form[j][i]; j=j+1)

{

int hgy;

hgy=form[j-1][i];

if (j==0||hgy=='|')

{

if (form[j][i]=='!')

{

int nmb;

nmb=form[j+1][i]-'a';

if (table[nmb]==1)

nm=1;

if (table[nmb]==2)

table[nmb]=0;

if (form[j][i]≠'!')

{

int nmb;

nmb=form[j][i]-'a';

if (table[nmb]==0)

nm=1;

if (table[nmb]==2)

table[nmb]=1;

}

}

}

if (nm==0)

{

neqzero=1;

for (int j=0;j

{

int show;

show=1;

for (int k=0;k

{

if (table[k]≠2)

if (table[k]==1)

int r;

r=1<

int e;

e=j

if (table[k]==0)

{

// Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ числа 1 ΠΈ ΠΎΡ‚Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ 1 сдвинутой Π½Π° ΠΊ Π²Π»Π΅Π²ΠΎ

int jh;

jh=max-'a'+2;

int jj;

jj=1<

int jk;

jk=1<

int exp;

exp=j&jj-1-jk;

if (exp≠j)

show=0;

}

}

if (show==1)

if (table2[j]==0)

{

table2[j]=1;

switch (flag)

{

case 1:

printf («) & («);

break;

case 0:

printf («(«);

flag=1;

break;

}

for (int k=0;k

1<

if (hg≠j)

printf («!»);

printf («%c», k+'a');

}

}

}

}

switch (neqzero)

{

case 0:

printf («1»);

break;

case 1:

printf («) n»);

break;

}

system («pause»);

}

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π“

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° простой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘

using System;

using System.Collections.Generic;

using System. IO;

using System. Text;

class Program

{

static List vars = new List ();

static List uvars = new List ();

static List labels = new List ();

static List nlabels = new List ();

static void test (string expr, string line)

{

if (expr.EndsWith («++») || expr. EndsWith («—»))

{

if (!(vars.IndexOf (expr.Substring (0, expr. Length — 2)) > -1))

{

Console.Error.WriteLine («ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π°Ρ {0} Π½Π΅ ΠΎΠ±ΡŒΡΠ²Π»Π΅Π½Π° Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ {1}, строкС {2}», expr. Substring (0, expr. Length — 2), expr, line);

}

return;

}

string[] nvars = expr. Split (new String[] { «+», «-», «*», «<», «>», «==», «≠», «=» }, StringSplitOptions. None);

foreach (string var in nvars)

{

if (var ≠ «»)

{

try

{

Convert.ToDouble (var);

}

catch (FormatException)

{

if (vars.IndexOf (var) > -1)

uvars.Add (var);

else

Console.Error.WriteLine («ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π°Ρ {0} Π½Π΅ ΠΎΠ±ΡŒΡΠ²Π»Π΅Π½Π° Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ {1}, строкС {2}», var, expr, line);

}

}

else

Console.Error.WriteLine («Π’ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ {0} Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ², Π² ΡΡ‚Ρ€ΠΎΠΊΠ΅ {1}», expr, line);

}

}

static void Main (string[] args)

{

string path = args[1];

StreamReader read = new StreamReader (path);

string code = read. ReadToEnd ();

while (code.IndexOf («(») ≠ -1)

code = code. Replace («(», «(«);

string tmp_code = «», tmp = «» ;

bool in_for = false;

for (int i = 0; i < code. Length; i++)

{

if ((code[i] == '}') || (code[i] == '{'))

{

tmp += «n» ;

}

tmp += code[i];

if (in_for == true)

if (code[i] == ')')

{

tmp_code += «n» + tmp. Trim ();

tmp = «» ;

tmp_code = tmp_code.Trim ();

in_for = false;

}

if (in_for == false)

if (tmp.Trim () == «else»)

{

tmp_code += «n» + tmp. Trim () + «n» ;

tmp_code = tmp_code.Trim ();

tmp = «» ;

in_for = false;

}

else if (code[i] == ';')

{

if (tmp.Trim ().StartsWith («for (»))

{

in_for = true;

}

else

{

tmp_code += «n» + tmp. Trim ();

tmp_code = tmp_code.Trim ();

tmp = «» ;

}

}

if ((code[i] == '}') || (code[i] == '{'))

{

tmp_code += «n» + tmp. Trim ();

tmp_code = tmp_code.Trim ();

tmp = «» ;

}

}

code = tmp_code;

string[] cod = code. Split ('n');

bool in_main = false;

int incl = 0;

int if_c = 0;

int need_op = 0;

foreach (string ln in cod)

{

string line = ln. Trim ();

if (line ≠ «»)

{

if (line == «int main ()»)

in_main = true;

else

if (in_main == true)

{

if (line.Length > 2)

{

if (line.StartsWith («if (»))

{

string expr = line. Substring (3, line. Length — 4);

test (expr, line);

if_c++;

need_op = 1;

}

else if (line.StartsWith («else»))

{

if_c—;

need_op = 1;

}

else if (line.StartsWith («for (»))

{

string[] expr = line. Substring (4, line. Length — 5).Split (';');

foreach (string exp in expr)

test (exp, line);

need_op = 1;

}

else

if (line.StartsWith («while (»))

need_op = 1;

else if (line.StartsWith («goto»))

nlabels.Add (line.Substring (4, line. Length — 5));

else if (line.IndexOf («=») > -1)

{

need_op = 0;

string var = line. Substring (0, line. IndexOf ('='));

if (vars.IndexOf (var) > -1)

{

string expr = line. Substring (line.IndexOf ('=') + 1, line. Length — line. IndexOf ('=') — 2);

test (expr, line);

}

else

Console.Error.WriteLine («ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π°Ρ {0} Π½Π΅ ΠΎΠ±ΡŒΡΠ²Π»Π΅Π½Π½Π°», var);

}

else if (line.EndsWith («:»))

labels.Add (line.Substring (0, line. Length — 1));

else

Console.WriteLine («Error, line is wrong»);

}

else if (line == «{»)

{

incl++;

need_op = 0;

}

else if (line == «}»)

if (need_op == 0)

incl—;

else

Console.Error.WriteLine («ΠΠ΅Π»ΡŒΠ·Ρ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Π±Π»ΠΎΠΊ, трСбуСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€»);

else if (line == «;»)

need_op = 0;

else

Console.Error.WriteLine («Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π½Π΅ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π½Π°»);

if (incl < 0) Console.Error.WriteLine («ΠšΠΎΠ΄ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Π³Π»Π°Π²Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ»);

if (if_c < 0) Console.Error.WriteLine («Else Π±Π΅Π· ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ If»);

}

else

{

Console.Error.WriteLine («ΠšΠΎΠ΄ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Π³Π»Π°Π²Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ»);

}

}

}

foreach (string ln in cod)

{

string line = ln. Trim ();

if (line ≠ «»)

{

if (line == «{»)

{

incl++;

}

else if (line == «}»)

incl—;

if (line == «int main ()»)

in_main = true;

else

if (in_main == true)

{

if (line.StartsWith («float «))

{

if (need_op == 1)

Console.Error.WriteLine («ΠΠ΅Π»ΡŒΠ·Ρ ΠΎΠ±ΡŒΡΠ²Π»ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Ρ‹Π΅ здСсь»);

string[] varsl = line. Substring (6, line. Length — 7).Split (',');

foreach (string var in varsl)

if (uvars.IndexOf (var) > -1) Console. Write («{0}float {1};n», new String (' ', incl * 2), var);

}

else

if (line.IndexOf («=») > -1)

{

string var = line. Substring (0, line. IndexOf ('='));

if (vars.IndexOf (var) > -1)

{

if (uvars.IndexOf (var) > -1) Console. WriteLine («{0}{1}», new String (' ', incl * 2), line);

}

else Console. WriteLine («{0}{1}», new String (' ', incl * 2), line);

}

else

Console.WriteLine («{0}{1}», new String (' ', incl * 2), line);

}

}

}

foreach (string label in nlabels)

if (labels.IndexOf (label) ≠ -1) Console.Error.WriteLine («ΠŸΡ€Ρ‹ΠΆΠΎΠΊ ΠΊ Π½Π΅ΠΎΠ±ΡŒΡΠ²Π»Π΅Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΊΠ΅ {0}», label);

Console.ReadLine ();

}

}

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