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

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ поиска минимального ΠΏΡƒΡ‚ΠΈ Π² Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π΅

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

Π―Π—Π«Πš, 1) СстСствСнный язык, ваТнСйшСС срСдство чСловСчСского общСния. Π―. Π½Π΅Ρ€Π°Π·Ρ€Ρ‹Π²Π½ΠΎ связан с ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΠ΅ΠΌ; являСтся ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ срСдством хранСния ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΡ€Π΅Π΄ΡΡ‚Π² управлСния чСловСчСским ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ. Π―. Π²ΠΎΠ·Π½ΠΈΠΊ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ΠΌ общСства Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ совмСстной Ρ‚Ρ€ΡƒΠ΄ΠΎΠ²ΠΎΠΉ Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ±Ρ‹Ρ‚Π½Ρ‹Ρ… людСй. Π’ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ Ρ‡Π»Π΅Π½ΠΎΡ€Π°Π·Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ€Π΅Ρ‡ΠΈ явилось ΠΌΠΎΡ‰Π½Ρ‹ΠΌ срСдством… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ поиска минимального ΠΏΡƒΡ‚ΠΈ Π² Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π΅ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

РЕЀЕРАВ Записка ΠΏΠΎΡΡΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΊ ΠΊΡƒΡ€ΡΠΎΠ²ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅: 23c., 1 рис., 5 Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ², 1 ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, 4 источника.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ исслСдования — ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ поиска ΠΏΡƒΡ‚Π΅ΠΉ Π² Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π΅.

ЦСль Ρ€Π°Π±ΠΎΡ‚Ρ‹ — Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ которая Π±Ρ‹ наглядно продСмонстрировала 2 ΠΌΠ΅Ρ‚ΠΎΠ΄Π° поиска ΠΏΡƒΡ‚ΠΈ Π² Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π΅.

ΠœΠ΅Ρ‚ΠΎΠ΄ исслСдования — ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, составлСниС ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° нахоТдСния минимального ΠΏΡƒΡ‚ΠΈ Π² Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π΅ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ часто примСняСтся Π² ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ индустрии. Π’Π°ΠΊ ΠΆΠ΅ это Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ для нахоТдСния минимального ΠΏΡƒΡ‚ΠΈ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ Π²ΠΎΠ΅Π½Π½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ ΠΏΠΎ ΠΏΠ΅Ρ€Π΅ΡΠ΅Ρ‡Π΅Π½Π½ΠΎΠΉ мСстности с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌΠΈ Ρ‚ΠΎΠΏΠ»ΠΈΠ²Π° ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π³Π΄Π΅ ΠΌΠ΅ΡΡ‚Π½ΠΎΡΡ‚ΡŒ прСдставляСтся Π²Π²ΠΈΠ΄Π΅ массива ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΈ Π½Π΅ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ мСстности.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΠΎΠ΄Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ Π² Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π΅ (ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ извСстСн вСсь Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚), ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΏΡƒΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΎΠ±Ρ…ΠΎΠ΄Π΅ мСстности (Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ нСизвСстСн).

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° написана Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘++ ΠΈ Π² ΡΡ€Π΅Π΄Π΅ Visual C++. Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° нахоТдСния ΠΏΡƒΡ‚ΠΈ. Π‘Π˜Π‘Π’Π•ΠœΠ, ΠΠ›Π“ΠžΠ Π˜Π’Πœ, ЀУНКЦИЯ, ΠžΠŸΠ Π•Π”Π•Π›Π˜Π’Π•Π›Π¬, МАВРИЦА, Π—ΠΠ“ΠžΠ›ΠžΠ’ΠžΠ§ΠΠ«Π• ЀАЙЛЫ, ΠžΠŸΠ•Π ΠΠ’ΠžΠ Π«, ΠŸΠΠ ΠΠœΠ•Π’Π Π«, ПРОВОВИП, ΠžΠŸΠ Π•Π”Π•Π›Π•ΠΠ˜Π•, Π ΠΠ‘Π¨Π˜Π Π•ΠΠΠΠ― МАВРИЦА, ΠœΠ•Π’ΠžΠ”.

Π‘ΠžΠ”Π•Π Π–ΠΠΠ˜Π• ВступлСниС

1. ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ ΡΡ„Π΅Ρ€Π° Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ

2. ВСорСтичСская Ρ‡Π°ΡΡ‚ΡŒ

2.1 ΠœΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ»Π½Ρ‹

2.2 ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ²

3. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² ΡΡ€Π΅Π΄Π΅ Visual C++

4. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ рСализация

4.1 ОписаниС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΈ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

4.2 ОписаниС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… срСдств

4.3 ОписаниС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

5. Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π’Ρ‹Π²ΠΎΠ΄Ρ‹ Бписок Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ВСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ

Π’Π‘Π’Π£ΠŸΠ›Π•ΠΠ˜Π• Π’ ΠΎΠ΄Π½ΠΎΠΌ энциклопСдичСском словарС ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ язык, сказано ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

" Π―Π—Π«Πš, 1) СстСствСнный язык, ваТнСйшСС срСдство чСловСчСского общСния. Π―. Π½Π΅Ρ€Π°Π·Ρ€Ρ‹Π²Π½ΠΎ связан с ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΠ΅ΠΌ; являСтся ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ срСдством хранСния ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΡ€Π΅Π΄ΡΡ‚Π² управлСния чСловСчСским ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ. Π―. Π²ΠΎΠ·Π½ΠΈΠΊ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ΠΌ общСства Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ совмСстной Ρ‚Ρ€ΡƒΠ΄ΠΎΠ²ΠΎΠΉ Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ±Ρ‹Ρ‚Π½Ρ‹Ρ… людСй. Π’ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ Ρ‡Π»Π΅Π½ΠΎΡ€Π°Π·Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ€Π΅Ρ‡ΠΈ явилось ΠΌΠΎΡ‰Π½Ρ‹ΠΌ срСдством дальнСйшСго развития Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, общСства ΠΈ ΡΠΎΠ·Π½Π°Π½ΠΈΡ. РСализуСтся ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ Π² Ρ€Π΅Ρ‡ΠΈ. Π―. ΠΌΠΈΡ€Π° Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ строСниСм, словарным составом ΠΈ Π΄Ρ€., ΠΎΠ΄Π½Π°ΠΊΠΎ всСм Π―. присущи Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‰ΠΈΠ΅ закономСрности, систСмная организация Π΅Π΄ΠΈΠ½ΠΈΡ† языка (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, парадигматичСскиС ΠΈ ΡΠΈΠ½Ρ‚агматичСскиС ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ) ΠΈ Π΄Ρ€. Π―. измСняСтся Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (см. Диахрония), ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² ΡΡ„Π΅Ρ€Π΅ общСния (ΠΌΡ‘Ρ€Ρ‚Π²Ρ‹Π΅ Π―.). Разновидности Π―. (Π½Π°Ρ†. Π―., Π»ΠΈΡ‚. Π―., Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚Ρ‹, Π―. ΠΊΡƒΠ»ΡŒΡ‚Π° ΠΈ Π΄Ρ€.) ΠΈΠ³Ρ€Π°ΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² ΠΆΠΈΠ·Π½ΠΈ общСства. 2) Π›ΡŽΠ±Π°Ρ знаковая систСма, Π½Π°ΠΏΡ€. Π―. ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ, ΠΊΠΈΠ½ΠΎ, Π―. ТСстов. Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅ Π˜ΡΠΊΡƒΡΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ языки, Π―Π·Ρ‹ΠΊ программирования. 3)…"

C++ Ρ‚Π°ΠΊΠΆΠ΅ являСтся языком. Π•Π³ΠΎ Ρ‚Π°ΠΊ ΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ «ΡΠ·Ρ‹ΠΊ программирования C++». Π­Ρ‚ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ язык. Он ΡΠ»ΡƒΠΆΠΈΡ‚ для описания Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Π­Π’Πœ.

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

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

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

Однако грамотная Ρ€Π΅Ρ‡ΡŒ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Π±Π΅Π· знания языка, Π° ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π³Π»ΡƒΠ±ΠΎΠΊΠΈΡ… Π·Π½Π°Π½ΠΈΠΉ Π² ΠΎΠ±Π»Π°ΡΡ‚ΠΈ языков программирования.

1. ΠŸΠžΠ‘Π’ΠΠΠžΠ’ΠšΠ Π—ΠΠ”ΠΠ§Π˜ И Π‘ЀЕРА Π•Π• Π˜Π‘ΠŸΠžΠ›Π¬Π—ΠžΠ’ΠΠΠ˜Π― ЦСль Ρ€Π°Π±ΠΎΡ‚Ρ‹ — Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ которая Π±Ρ‹ наглядно продСмонстрировала 2 ΠΌΠ΅Ρ‚ΠΎΠ΄Π° поиска ΠΏΡƒΡ‚ΠΈ Π² Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π΅.

ΠœΠ΅Ρ‚ΠΎΠ΄ исслСдования — ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, составлСниС ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° нахоТдСния минимального ΠΏΡƒΡ‚ΠΈ Π² Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π΅ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ часто примСняСтся Π² ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ индустрии. Π’Π°ΠΊ ΠΆΠ΅ это Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ для нахоТдСния минимального ΠΏΡƒΡ‚ΠΈ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ Π²ΠΎΠ΅Π½Π½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ ΠΏΠΎ ΠΏΠ΅Ρ€Π΅ΡΠ΅Ρ‡Π΅Π½Π½ΠΎΠΉ мСстности с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌΠΈ Ρ‚ΠΎΠΏΠ»ΠΈΠ²Π° ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π³Π΄Π΅ ΠΌΠ΅ΡΡ‚Π½ΠΎΡΡ‚ΡŒ прСдставляСтся Π² Π²ΠΈΠ΄Π΅ массива ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΈ Π½Π΅ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ мСстности.

2. Π’Π•ΠžΠ Π•Π’Π˜Π§Π•Π‘ΠšΠΠ― ЧАБВЬ Π’ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ислСдуСтся 2 способа поиска ΠΏΡƒΡ‚ΠΈ Π² Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π΅.

1) «ΠœΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ»Π½Ρ‹» — Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ минимально ΠΏΡƒΡ‚ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ Π² Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π΅, прСдпологаСтся Ρ‡Ρ‚ΠΎ Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚ извСстСн.

2) «ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ²» — Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡƒΡ‚ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ. Π”Π°Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π½Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠ΅Π³ΠΎ ΠΏΡƒΡ‚ΠΈ, Π·Π°Ρ‚ΠΎ ΠΎΠ½ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ Ссли Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚ нСизвСстСн.

2.1 ΠœΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ»Π½Ρ‹ РСшСниС этой Π·aΠ΄aΡ‡ΠΈ ΠΏΡ€ΠΈΡˆΠ»ΠΎ ΠΊ Π½aΠΌ ΠΈΠ· Ρ‚aΠΊΠΎΠΉ Π΄aΠ»Π΅ΠΊΠΎΠΉ, ΠΊaΠ·aлось Π±Ρ‹, ΠΎΡ‚ ΠΈΠ³Ρ€ ΠΎΠ±Π»aсти ΠΊaΠΊ элСктроникa. A ΠΈΠΌΠ΅Π½Π½ΠΎ — Ρ€aΠ·Π²ΠΎΠ΄ΠΊa ΠΏΠ΅Ρ‡aΡ‚Π½Ρ‹Ρ… ΠΏΠ»aΡ‚.

БущСствуСт большоС количСство Ρ‚Ρ€aссировщиков (ΠΏΡ€ΠΎΠ³Ρ€aΠΌΠΌ для Ρ€aΠ·Π²ΠΎΠ΄ΠΊΠΈ ΠΏΠ»aΡ‚Ρ‹), основaΠ½Π½Ρ‹Ρ… Π½a Π½Π΅ ΠΌΠ΅Π½ΡŒΡˆΠ΅ΠΌ количСствС Ρ€aΠ·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Π·aΠ½ΠΈΠΌaΡŽΡ‰ΠΈΡ…ΡΡ соСдинСниСм Π΄Π²ΡƒΡ… ΠΊΠΎΠ½Ρ‚aΠΊΡ‚ΠΎΠ² Π΅Π΄ΠΈΠ½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠΎΠΌ. HΠΎ ΠΌΡ‹ Ρ€aссмотрим Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ…, сaΠΌΡ‹ΠΉ простой (a Π·Π½aΡ‡ΠΈΡ‚, сaΠΌΡ‹ΠΉ Π½aΠ΄Π΅ΠΆΠ½Ρ‹ΠΉ ΠΈ ΡaΠΌΡ‹ΠΉ популярный) — Π²ΠΎΠ»Π½ΠΎΠ²ΠΎΠΉ Ρ‚Ρ€aссировщик.

ΠŸΠΎΡΡ‚aΠ²ΠΈΠΌ ΠΏΠ΅Ρ€Π΅Π΄ Π²ΠΎΠ»Π½ΠΎΠ²Ρ‹ΠΌ Ρ‚Ρ€aссировщиком Π·aΠ΄aΡ‡Ρƒ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½aΡ… Ρ€Π΅ΡˆΠ°Π΅ΠΌΠΎΠΉ Π½Π°ΠΌΠΈ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ: Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π  (MxN), Π³Π΄Π΅ M ΠΈ N, соотвСтствСнно, Ρ€aΠ·ΠΌΠ΅Ρ€ поля ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊaΠ»ΠΈ ΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚aΠ»ΠΈ. ΠŸΠΎΠΏΡ€ΠΎΡΡ‚Ρƒ, это ΠΌaссив Ρ€aΠ·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽ MxN. КaΠΆΠ΄aя ΠΊΠ»Π΅Ρ‚ΠΊa поля (элСмСнт ΠΌaссивa) ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Π»aΠ΄aΡ‚ΡŒ большим количСством свойств, Π½ΠΎ Π΄Π»Ρ Π½aс Π²aΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ — Π΅Ρ‚ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ (ΠΈΠ»ΠΈ Π½Π΅ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ). Π”aльшС: имССтся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€aя стaΡ€Ρ‚ΠΎΠ²aя Ρ‚ΠΎΡ‡ΠΊa ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½aя Ρ‚ΠΎΡ‡ΠΊa. Условимся ΠΏΠΎΠΊa-Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΌ Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ΠΌ Π½aΠΏΡ€aвлСниям (Ρ‡Π΅Π³ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚ Π½aс ΠΊΠ»aссичСский Π²ΠΎΠ»Π½ΠΎΠ²ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄) — Π²ΠΏΡ€aΠ²ΠΎ, Π²Π»Π΅Π²ΠΎ, Π²ΠΏΠ΅Ρ€Π΅Π΄, Π½aΠ·aΠ΄. HΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ гСроя ΠΎΡ‚ ΠΌΠ΅ΡΡ‚a стaΡ€Ρ‚a ΠΊ Ρ„ΠΈΠ½ΠΈΡˆΡƒ Π·a Π½aимСньшСС количСство Ρ…ΠΎΠ΄ΠΎΠ², Ссли Ρ‚aΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

2.2 ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ² Годится ΠΎΠ½ Π΄Π»Ρ всСх ΠΊΠ°Ρ€Ρ‚, Π½ΠΎ Π±Π΅Π· ΡƒΡ‡Π΅Ρ‚Π° Ρ‚ΠΈΠΏΠ° мСстности (Π²ΠΎΠ΄Π°, лСс, Π±ΠΎΠ»ΠΎΡ‚ΠΎ), Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π΄Π°ΠΆΠ΅ с Π½Π΅ΠΈΠ·Π²Π΅ΡΡ‚Π½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚ΠΎΠΉ ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π·Π°Ρ†ΠΈΠΊΠ»ΠΈΠ²Π°Π΅Ρ‚ся, ΠΊΡ€ΠΎΠΌΠ΅ случая, ΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ‚ Π²Ρ‹Ρ…ΠΎΠ΄Π°.

ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π²Ρ‹Ρ…ΠΎΠ΄Π° Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ, Π³Π»Π°Π²Π½ΠΎΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ ясно, Ρ‡Ρ‚ΠΎ являСтся Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ. Π‘Π°ΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ прост, сначала смотрим Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠ»Π΅Ρ‚ΠΊΠ΅ ΠΌΡ‹ Π±Ρ‹Π»ΠΈ мСньшС всСго Ρ€Π°Π· ΠΈ ΠΈΠ΄Π΅ΠΌ Ρ‚ΡƒΠ΄Π°, прибавляя ΠΊ Ρ‚ΠΎΠΉ, Π³Π΄Π΅ стояли 1. Π’Π°ΠΊ повторяСм ΠΏΠΎΠΊΠ° Π½Π΅ Π½Π°ΠΉΠ΄Π΅ΠΌ Π²Ρ‹Ρ…ΠΎΠ΄.

Π­Ρ‚ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΎΠ±Ρ…ΠΎΠ΄Π° мСстности. Поиск Π½Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π΅Π½. ЀактичСски поиск вСдСтся ΠΏΠΎ Ρ„Ρ€ΠΎΠ½Ρ‚Ρƒ Π²ΠΎΠ»Π½Ρ‹. ΠŸΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ эвристики (ΡƒΡ‡Π΅Ρ‚ направлСния Π΄ΠΎ Ρ†Π΅Π»ΠΈ), Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π“Π»Π°Π²Π½ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ Π½Π° ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹!

3. ΠžΠ‘ΠžΠ‘Π•ΠΠΠžΠ‘Π’Π˜ Π ΠΠ‘ΠžΠ’Π« Π’ Π‘Π Π•Π”Π• VISUAL C++

Π’Π°ΠΆΠ½ΠΎΠΉ Π²Π΅Ρ…ΠΎΠΉ Π² Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠΈ программирования явилось созданиС ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ распространСниС языка Π‘++. Π­Ρ‚ΠΎΡ‚ язык, сохранив срСдства ΡΡ‚Π°Π²ΡˆΠ΅Π³ΠΎ ΠΎΠ±Ρ‰Π΅ΠΏΡ€ΠΈΠ·Π½Π°Π½Π½Ρ‹ΠΌ стандартом для написания систСмных ΠΈ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ языка Π‘ (ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык), Π²Π²Π΅Π» Π² ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒ программирования возмоТности Π½ΠΎΠ²ΠΎΠ³ΠΎ тСхнологичСского ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠ΅Π³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ «ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅». Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ Π² ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒ программирования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡ‹ Π΄Π°Π΅Ρ‚ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… областСй ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠΈ, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ уровня тСхнологичности создаваСмых ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… срСдств, сокращСниС Π·Π°Ρ‚Ρ€Π°Ρ‚ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΈΡ… ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС, Π²ΠΎΠ²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй Π­Π’Πœ. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ модСлирования ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½Ρ‹Ρ… областСй всС Π±ΠΎΠ»Π΅Π΅ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ примСняСтся Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ основы для структуризации ΠΈΡ… ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ, Π² Ρ‡Π°ΡΡ‚ности, Π±Π°Π· Π·Π½Π°Π½ΠΈΠΉ.

Π‘++ - это язык программирования ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния, Ρ…ΠΎΡ€ΠΎΡˆΠΎ извСстный своСй ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ, ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ, ΠΈ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒΡŽ. Π£ΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ прСимущСства Π‘++ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ качСство Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ любого Π²ΠΈΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°. ИспользованиС Π‘++ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ языка позволяСт ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ быстрыС ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, написанныС Π½Π° Π‘++, сравнимы ΠΏΠΎ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΠΈ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ, написанными Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ ассСмблСра.

ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сущСствСнныС особСнности языка Π‘++:

-Π‘++ обСспСчиваСт ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² структурного программирования;

-Π‘++ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ большой Π½Π°Π±ΠΎΡ€ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. МногиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π‘++ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ ΠΈ ΠΏΠΎΡΡ‚ΠΎΠΌΡƒ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ΠΏΡ€ΡΠΌΡƒΡŽ Ρ‚Ρ€Π°Π½ΡΠ»ΡΡ†ΠΈΡŽ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. Π Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ позволяСт Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈΡ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π½Π°Π±ΠΎΡ€Ρ‹ для ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°;

-Π‘++ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ соотвСтствуСт ΠΌΠ°ΡˆΠΈΠ½Π½ΠΎΠΌΡƒ адрСсу этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ΠŸΠΎΡΡ€Π΅Π΄ΡΡ‚Π²ΠΎΠΌ Ρ€Π°Π·ΡƒΠΌΠ½ΠΎΠ³ΠΎ использования ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ эффСктивно выполняСмыС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚.ΠΊ. ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Ρ‚Π΅ΠΌ ΠΆΠ΅ самым ΠΏΡƒΡ‚Π΅ΠΌ, ΠΊΠ°ΠΊ это Π΄Π΅Π»Π°Π΅Ρ‚ Π­Π’Πœ. Π‘++ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΡƒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΈ Ρ‚Π΅ΠΌ самым позволяСт ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ нСпосрСдствСнный доступ ΠΈ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΡΡ†ΠΈΠΈ с Π°Π΄Ρ€Π΅ΡΠ°ΠΌΠΈ памяти.

4. ΠŸΠ ΠžΠ“Π ΠΠœΠΠΠ― Π Π•ΠΠ›Π˜Π—ΠΠ¦Π˜Π―

4.1 ОписаниС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΈ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ 2 ΠΌΠ΅Ρ‚ΠΎΠ΄Π° поиска ΠΏΡƒΡ‚ΠΈ Π² Π»ΠΈΠ±ΠΈΡ€ΠΈΠ½Ρ‚Π΅, «ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ»Π½Ρ‹» ΠΈ «ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ²» .

БоздаСтся массив для хранСния Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π° labirint ΠΈ ΠΌΠ°ΡΡΠΈΠ² для прорисовки Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π° labSet. ГСнСрация Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π° происходит автоматичСски. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Volna создаСтся массив lb ΠΈ Ρ€ΡΠ΄ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… для вычислСния минимального ΠΏΡƒΡ‚ΠΈ, «ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π²ΠΎΠ»Π½Ρ‹», ΠΌΠ΅ΠΆΠ΄Ρƒ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ Π² Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Смассив. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Prior рСализуСтся «ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ²», Ρ‚Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ создаСтся Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ функция lb. Π’ ΠΎΠ±Π΅ эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ пСрСдаСтся адрСс исходного Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π° ΠΈ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π²Ρ…ΠΎΠ΄ΠΎΠ²-Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠ².

ПослС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ выводится Π½Π° ΡΠΊΡ€Π°Π½ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ LabOut, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ пСрСдаСтся исходный Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚ ΠΈ ΠΌΠ°ΡΡΠΈΠ² для Π΅Π³ΠΎ прорисовки.

ΠžΠ±Ρ‰ΠΈΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π²ΠΎΠ»Π½Ρ‹:

Π’ Π½Π°ΡˆΠ΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ для удобства ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π±Ρ‹Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹.

1. Π‘Π½aΡ‡aΠ»a Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ создaΡ‚ΡŒ Ρ€aΠ±ΠΎΡ‡ΠΈΠΉ ΠΌaссив R (MxN), Ρ€aΠ²Π½Ρ‹ΠΉ ΠΏΠΎ Ρ€aΠ·ΠΌΠ΅Ρ€Ρƒ ΠΌaссиву Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π° P (MxN).

2.КaΠΆΠ΄ΠΎΠΌΡƒ элСмСнту Ρ€aΠ±ΠΎΡ‡Π΅Π³ΠΎ ΠΌaссивa R (i, j) присвaΠΈΠ²aСтся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π½aΡ‡Π΅Π½ΠΈΠ΅ Π² Π·aвисимости ΠΎΡ‚ ΡΠ²ΠΎΠΉΡΡ‚Π² элСмСнтa ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля P (i, j) ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ:

a) Если ΠΏΠΎΠ»Π΅ P (i, j) Π½Π΅ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‚ΠΎ R (i, j)=255;

Π±) Если ΠΏΠΎΠ»Π΅ P (i, j) ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‚ΠΎ R (i, j)=254;

Π²) Если ΠΏΠΎΠ»Π΅ P (i, j) являСтся Ρ†Π΅Π»Π΅Π²ΠΎΠΉ (Ρ„ΠΈΠ½ΠΈΡˆΠ½ΠΎΠΉ) ΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ, Ρ‚ΠΎ R (i, j)=0;

Π³) Если ΠΏΠΎΠ»Π΅ P (i, j) являСтся стaΡ€Ρ‚ΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ, Ρ‚ΠΎ R (i, j)=253.

3.Π­Ρ‚aΠΏ «Π aспрострaнСния Π²ΠΎΠ»Π½Ρ‹». Π’Π²ΠΎΠ΄ΠΈΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ni — счСтчик ΠΈΡ‚Π΅Ρ€aΡ†ΠΈΠΉ (ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΉ) ΠΈ ΠΏΡ€ΠΈΡΠ²aΠΈΠ²aΠ΅ΠΌ Π΅ΠΉ Π½aΡ‡aльноС Π·Π½aΡ‡Π΅Π½ΠΈΠ΅ 0.

4.Π’Π²ΠΎΠ΄ΠΈΠΌ констaΠ½Ρ‚Ρƒ NΠΊ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ устaΠ½aΠ²Π»ΠΈΠ²aΠ΅ΠΌ Ρ€aΠ²Π½ΠΎΠΉ ΠΌaксимaльно Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΌΡƒ числу ΠΈΡ‚Π΅Ρ€aΡ†ΠΈΠΉ.

5.ΠŸΠΎΡΡ‚Ρ€ΠΎΡ‡Π½ΠΎ просмaΡ‚Ρ€ΠΈΠ²aΠ΅ΠΌ Ρ€aΠ±ΠΎΡ‡ΠΈΠΉ ΠΌaссив R (Ρ‚.Π΅.ΠΎΡ€Π³aΠ½ΠΈΠ·ΡƒΠ΅ΠΌ Π΄Π²a Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»a: ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΡƒ ΠΌaссивa i ΠΎΡ‚ 1 Π΄ΠΎ М, ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΡƒ ΠΌaссивa j ΠΎΡ‚ 1 Π΄ΠΎ N).

6.Если R (i, j) Ρ€aΠ²Π΅Π½ Ni, Ρ‚ΠΎ ΠΏΡ€ΠΎΡΠΌaΡ‚Ρ€ΠΈΠ²aΡŽΡ‚ΡΡ сосСдниС элСмСнты R (i+1,j), R (i-1,j), R (i, j+1), R (i, j-1) ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΏΡ€aΠ²ΠΈΠ»Ρƒ (Π² ΠΊaчСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€a Ρ€aссмотрим R (i+1,j):

a) Eсли R (i+1,j)=253, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ ΠΏΡƒΠ½ΠΊΡ‚Ρƒ 10;

Π±) Eсли R (i+1,j)=254, выполняСтся присвaΠΈΠ²aΠ½ΠΈΠ΅ R (i+1,j)=Ni+1;

Π²) Π’ΠΎ Π²ΡΠ΅Ρ… остaΠ»ΡŒΠ½Ρ‹Ρ… случaях R (i+1,j) остaСтся Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

AΠ½aΠ»ΠΎΠ³ΠΈΡ‡Π½ΠΎ поступaΠ΅ΠΌ с ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚aΠΌΠΈ R (i-1,j), R (i, j+1), R (i, j-1).

7. По Π·aΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ построчного просмотрa всСго ΠΌaссивa ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²aΠ΅ΠΌ Ni Π½a 1.

8. Если Ni>NΠΊ, Ρ‚ΠΎ ΠΏΠΎΠΈΡΠΊ ΠΌaΡ€ΡˆΡ€ΡƒΡ‚a признаСтся Π½Π΅ΡƒΠ΄Π°Ρ‡Π½Ρ‹ΠΌ. Π’Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

9.ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ ΠΏΡƒΠ½ΠΊΡ‚Ρƒ 5.

10.Π­Ρ‚aΠΏ построСния ΠΌaΡ€ΡˆΡ€ΡƒΡ‚a пСрСмСщСния. ΠŸΡ€ΠΈΡΠ²aΠΈΠ²aΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ Π₯ ΠΈ Y Π·Π½aчСния ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½aΡ‚ стaΡ€Ρ‚ΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ.

11.Π’ окрСстности ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ R (Π₯, Y) ΠΈΡ‰Π΅ΠΌ элСмСнт с Π½aимСньшим Π·Π½aΡ‡Π΅Π½ΠΈΠ΅ΠΌ (Ρ‚.Π΅.для этого просмaΡ‚Ρ€ΠΈΠ²aΠ΅ΠΌ R (Π₯+1,Y), R (Π₯-1,Y), R (Π₯, Y+1), R (Π₯, Y-1). ΠšΠΎΠΎΡ€Π΄ΠΈΠ½aΡ‚Ρ‹ этого элСмСнтa Π·aносим Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ X1 ΠΈ Y1.

12.Π‘ΠΎΠ²Π΅Ρ€ΡˆaΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚a ΠΏΠΎ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌΡƒ полю ΠΈΠ· ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ [X, Y] Π² ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ [X1,Y1].

13.Если R (X1,Y1)=0,Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ ΠΏΡƒΠ½ΠΊΡ‚Ρƒ 15.

14.ВыполняСм присвaΠΈΠ²aΠ½ΠΈΠ΅ X=X1,Y=Y1. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ ΠΏΡƒΠ½ΠΊΡ‚Ρƒ 11.

15. ΠšΠΎΠ½Π΅Ρ†.

ΠžΠ±Ρ‰ΠΈΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ " ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ²" :

1. Π‘ΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π²ΠΎΠΊΡ€ΡƒΠ³, Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠ»Π΅Ρ‚ΠΊΠ΅ ΠΌΡ‹ Π±Ρ‹Π»ΠΈ мСньшС всСго Ρ€Π°Π· ΠΈ ΠΈΠ΄Π΅ΠΌ Ρ‚ΡƒΠ΄Π°, прибавляя ΠΊ Ρ‚ΠΎΠΉ, Π³Π΄Π΅ стояли 1.

2. ВозвращаСмся ΠΊ ΠΏΡƒΠ½ΠΊΡ‚Ρƒ 1 ΠΏΠΎΠΊΠ° Π½Π΅ Π½Π°ΠΉΠ΄Π΅ΠΌ Π²Ρ‹Ρ…ΠΎΠ΄.

a. ОписаниС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… срСдств Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π±Ρ‹Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹:

-#include-Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²;

-" stdlib. h", «iostream.h» — Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, содСрТащий стандартныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°;

— «time.h» — для возмоТности примСнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ time (), Ρ‡Ρ‚ΠΎΠ± сгСнСрированый Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚ всСгда отличался ΠΎΡ‚ ΠΏΡ€ΠΈΠ΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ;

— «stdio.h» — Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΈΠ», содСрТащий Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° Π² ΡΡ‚ΠΈΠ»Π΅ Π‘ (printf ΠΈ Ρ‚. Π΄.);

— cout<<-ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ для Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΡΠΊΡ€Π°Π½;

— cin>>-ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ для Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹);

— rand () — ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ случайного числа;

— srand () — ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ для зависСмости Π²Ρ‹Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ rand ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ;

— printf — ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ для Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΎΠ³ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ…;

— for — ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°;

— const — ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово для объявлСния константы;

— if — ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ условиС ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ…ΠΎΠ΄ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹;

— else — ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, слуТащий для развСтвлСния (услоТнСния) ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° условия if;

— return — ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ для возвращСния значСния ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ;

— Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅;

— Π° Ρ‚Π°ΠΊ ΠΆΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… (int, void, bool), ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ символы, матСматичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ, логичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

b. ОписаниС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

Volna — Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ адрСс Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π° ΠΈ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π²Ρ…ΠΎΠ΄ΠΎΠ²-Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠ². Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡŒΡΡ для расчСта минимального ΠΏΡƒΡ‚ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ Π² Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π΅ (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚ извСстСн);

Prior — Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ адрСс Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π° ΠΈ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π²Ρ…ΠΎΠ΄ΠΎΠ²-Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠ². Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡŒΡΡ для расчСта ΠΏΡƒΡ‚ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ Π² Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π΅ (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚ нСизвСстСн);

LabOut — Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π½ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ адрСс Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π° ΠΈ Π°Π΄Ρ€Π΅Ρ массива хранящСго Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ прСдставлСниС Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π°. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡŒΡΡ для Π²Ρ‹Π²ΠΎΠ΄Π° Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π° Π½Π° ΡΠΊΡ€Π°Π½;

5. ИНБВРУКЦИЯ ΠŸΠžΠ›Π¬Π—ΠžΠ’ΠΠ’Π•Π›Π― Для Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ Π½Π°Π΄ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π°ΠΈΠ» Find. exe послС Ρ‡Π΅Π³ΠΎ Π½Π° ΡΠΊΡ€Π°Π½Π΅ появятся свСдСния ΠΎ Ρ‚ΠΎΠΌ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° сама сгСнирируСт Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚ послС наТатия клавиши «ENTER». Π”Π°Π»Π΅Π΅ Π½Π° ΡΠΊΡ€Π°Π½Π΅ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ исходный Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚ ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ 2-Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² поиска ΠΏΡƒΡ‚ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π°, Ссли ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ этот ΠΏΡƒΡ‚ΡŒ сущСствуСт.

Π’Π«Π’ΠžΠ”Π« На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ Π²ΠΈΠ΄Π½ΠΎ Ρ‡Ρ‚ΠΎ данная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΠΎΡΡ‚Π°Π²Π»Π΅Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°ΠΌΠΈ Π·Π°Π΄Π°Ρ‡Ρƒ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ вычислСния ΠΏΡƒΡ‚ΠΈ двумя ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ прСдоставлСны Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅.

Рис. 1 -Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

БПИБОК Π›Π˜Π’Π•Π ΠΠ’Π£Π Π«

Павловская Π’. А. Π‘/C++.ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ высокого уровня-БПб:Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ «ΠŸΠΈΡ‚Π΅Ρ€», 2008.-464с.

ΠšΠ΅Ρ€Π½ΠΈΠ³Π°Π½ Π‘., Π ΠΈΡ‚Ρ‡ΠΈ Π”. Π―Π·Ρ‹ΠΊ программирования Π‘ΠΈ: ΠŸΠ΅Ρ€. Ρ Π°Π½Π³Π».-М.:

Ѐинансы ΠΈ ΡΡ‚атистика, 2008.-272 с.

Π“Π»ΡƒΡˆΠ°ΠΊΠΎΠ² Π‘.Π’., Коваль А. Π’., Π§Π΅Ρ€ΠΏΠ½ΠΈΠ½ Π‘. А. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Visual C++ 6.0: Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ «Π€ΠΎΠ»ΠΈΠΎ», 2007. -721с. -(Π£Ρ‡Π΅Π±Π½Ρ‹ΠΉ курс).

4. Π‘ΠΎΠ½Π΄Π°Ρ€Π΅Π½ΠΎ Π’. М., Π ΡƒΠ±Π»ΠΈΠ½Π΅Ρ†ΠΊΠΈΠΉ Π’. И., ΠšΠ°Ρ‡ΠΊΠΎ Π•. Π“. ΠžΡΠ½ΠΎΠ²Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈ: Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ «Π€ΠΎΠ»ΠΈΠΎ», 2007. -368с.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, А Π’Скст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

#include «stdafx.h»

#include «iostream.h»

#include «time.h»

#include «stdlib.h»

#include «stdio.h»

//Ρ€Π°Π·ΠΌΠ΅Ρ€ Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π°

const int sX=15;

const int sY=30;

bool Volna (int* lab, int kol); //Π€-ция Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° «Π²ΠΎΠ»Π½Ρ‹»

bool Prior (int* lab, int kol);//Ρ„-ция Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° «ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°» .

void LabOut (int* lab, char* bl);//Π²Ρ‹Π²ΠΎΠ΄ Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π°

int main (int argc, char* argv[])

{

srand ((unsigned)time (NULL));

int stop, rnd, labirint[sX][sY];

char labSet[7]=" %M." ;//масив для Π²ΠΈΠ·ΡƒΠ°ΡŒΠ½ΠΎΠ³ΠΎ отобраТСния Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π°

printf («Nazhmite ENTER dlya dlya generacii labirinta.»);

stop = getchar ();

//гСнСрация Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π°

for (int i=0;i

for (int j=0;j

{ rnd=rand ()%4;

labirint[i][j]=rnd; }

for (int t=0;t<2;t++)labirint[rand ()%sX][rand ()%sY]=4;

cout<<" Imeem takoi labirint: n" ;

LabOut (&labirint[0][0], labSet);

cout<<" Nahozhdenie puti Volnovim metodom! n" ;

if (Volna (&labirint[0][0], 2))LabOut (&labirint[0][0], labSet);

else cout<<" Nevozmogno soedenit' eti tochki! n" ;

cout<<" Metod prioritetov (vpravo, vlevo, vniz, vverh):n" ;

if (Prior (&labirint[0][0], 2))LabOut (&labirint[0][0], labSet);

else cout<<" Nevozmogno soedenit' eti tochki za 250 shagov! n" ;

cin>>stop;

return 0;

}

bool Volna (int* lab, int kol)

{

int lb[sX][sY]; //модифицированая копия Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π°

int Ni=0, x=0, y=0, copX, copY;//Ni — кольво ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ, x, y, copX, copY — для хранСния ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚

int min=300, copMin=300; //для поиска минимального ΠΏΡƒΡ‚ΠΈ

bool work=true; //для избСТания зацикливания

//заполнСния ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΎΠ³ΠΎ Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π° для Π²ΠΎΠ»Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°

for (int i=0;i

for (int j=0;j

{

if (*(lab+j+i*sY)/3==0)lb[i][j]=254;

if (*(lab+j+i*sY)==3)lb[i][j]=255;

if (*(lab+j+i*sY)==4)

{

if (kol==2)

lb[i][j]=253;

else

lb[i][j]=0;

kol—;

}

}

//Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΎΠ»Π½Ρ‹

while (work)

{

for (int k=0;k

for (int l=0;l

if (lb[k][l]==Ni)

{

if (l+1≠sY)

{

if (lb[k][l+1]==254)

lb[k][l+1]=Ni+1;

if (lb[k][l+1]==253){x=k;y=l+1;work=false;}

}

if (k+1≠sX)

{

if (lb[k+1][l]==254)

lb[k+1][l]=Ni+1;

if (lb[k+1][l]==253){x=k+1;y=l;work=false;}

}

if (l-1≠-1)

{

if (lb[k][l-1]==254)

lb[k][l-1]=Ni+1;

if (lb[k][l-1]==253){x=k;y=l-1;work=false;}

}

if (k-1≠-1)

{

if (lb[k-1][l]==254)

lb[k-1][l]=Ni+1;

if (lb[k-1][l]==253){x=k-1;y=l;work=false;}

}

}

Ni++;

if (Ni==250)work=false;

}

//поиск минимального ΠΏΡƒΡ‚ΠΈ

if (Ni≠250)

{

while (copMin≠0)

{

if (y+1≠sY)

if (min>lb[x][y+1])

{

min=lb[x][y+1];

copY=y+1;

copX=x;

}

if (y-1≠-1)

if (min>lb[x][y-1])

{

min=lb[x][y-1];

copY=y-1;

copX=x;

}

if (x+1≠sX)

if (min>lb[x+1][y])

{

min=lb[x+1][y];

copX=x+1;

copY=y;

}

if (x-1≠-1)

if (min>lb[x-1][y])

{

min=lb[x-1][y];

copX=x-1;

copY=y;

}

x=copX; y=copY; copMin=min; min=300; *(lab + y + x*sY)=5;

}

*(lab + y + x*sY)=4;

}

else return false;

return true;

}

void LabOut (int* lab, char* bl)

{

for (int i=0;i

{

for (int j=0;j

cout<

cout<

}

cout<<" ————————————————————————————————————————" ;

}

bool Prior (int* lab, int kol)

{

int x, y, startX, startY, copX, copY, stop=0; //Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚

int lb[sX][sY]; //модифицированая копия Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π°

int min=300;//для нахоТдСния минимального ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°

bool work=true;//для избСТания зацикливания

//создания ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΎΠ³ΠΎ Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π° ΠΏΠΎΠ΄ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ²

for (int i=0;i

for (int j=0;j

{

if ((*(lab+j+i*sY)/3==0) || (*(lab+j+i*sY)==5)){lb[i][j]=0;*(lab + j + i*sY)=0;}

if (*(lab+j+i*sY)==3)lb[i][j]=255;

if (*(lab+j+i*sY)==4)

{

if (kol==2)

{

lb[i][j]=0;

startX=i;startY=j;

}

else

lb[i][j]=254;

kol—;

}

}

x=startX; y=startY;//Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ Π²Ρ…ΠΎΠ΄Π°

//рСализация Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° поиска

while (work)

{

if (y+1≠sY)

{

if (lb[x][y+1]==254)

{work=false; min=0;copY=y+1;copX=x;}

if (min>lb[x][y+1])

{min=lb[x][y+1]; copY=y+1;copX=x;}

}

if (y-1≠-1)

{

if (lb[x][y-1]==254)

{work=false; min=0;copY=y-1; copX=x;}

if (min>lb[x][y-1])

{min=lb[x][y-1]; copY=y-1; copX=x;}

}

if (x+1≠sX)

{

if (lb[x+1][y]==254)

{work=false; min=0;copX=x+1; copY=y;}

if (min>lb[x+1][y])

{min=lb[x+1][y]; copX=x+1; copY=y;}

}

if (x-1≠-1)

{

if (lb[x-1][y]==254)

{work=false; min=0;copX=x-1; copY=y;}

if (min>lb[x-1][y])

{min=lb[x-1][y]; copX=x-1; copY=y;}

}

stop++; lb[x][y]++; x=copX; y=copY; min=300; *(lab + y + x*sY)=5;

if (stop==250)work=false;

}

*(lab + startY + startX*sY)=*(lab + y + x*sY)=4;

if (stop==250)work=true;

return !work;

}

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