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

Поиск ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠ΅Π³ΠΎ ΠΏΡƒΡ‚ΠΈ Π² Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π΅

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

ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ примСнялся принятый Π² ΡΡ€Π΅Π΄Π΅ Delphi ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ интСрфСйса. ΠŸΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… использовался структурный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. Π’ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΎΠΊΠ½Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ всС пространство. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ выполняСтся посрСдством мСню прилоТСния, располоТСнноС Π² Π³Π»Π°Π²Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅. УсловиС Ρ€Π΅ΡˆΠ°Π΅ΠΌΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ дословно ΠΏΠΎ Π·Π°Π΄Π°Π½ΠΈΡŽ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Поиск ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠ΅Π³ΠΎ ΠΏΡƒΡ‚ΠΈ Π² Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π΅ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠœΠΈΠ½ΠΈΡΡ‚Π΅Ρ€ΡΡ‚Π²ΠΎ образования ΠΈ Π½Π°ΡƒΠΊΠΈ Российской Π€Π΅Π΄Π΅Ρ€Π°Ρ†ΠΈΠΈ

АгСнтство ΠΏΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ ВихоокСанский государствСнный экономичСский унивСрситСт ЭкономичСский институт ΠšΡƒΡ€ΡΠΎΠ²Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π°

Поиск ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠ΅Π³ΠΎ ΠΏΡƒΡ‚ΠΈ Π² Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π΅

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»: Иванов Π‘.Н.

Владивосток 2009

1. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

2. Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ постановка Π·Π°Π΄Π°Ρ‡ΠΈ

3. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ

4. ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ организация прилоТСния

4.1 ΠžΠ±Ρ‰Π°Ρ схСма взаимодСйствия ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ

4.2 ОписаниС ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ

5. ВСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

6. Руководство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

7. ВСстовый ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ³Ρ€Ρ‹ Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Бписок Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

1. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

УсловиС Ρ€Π΅ΡˆΠ°Π΅ΠΌΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ дословно ΠΏΠΎ Π·Π°Π΄Π°Π½ΠΈΡŽ Π·Π²ΡƒΡ‡ΠΈΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: «Π—Π°Π΄Π°Π½ Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚, составлСнный ΠΈΠ· ΠΊΠΎΠΌΠ½Π°Ρ‚, Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ имССтся Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ‚Ρ€Π΅Ρ… Π΄Π²Π΅Ρ€Π΅ΠΉ, ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰ΠΈΡ… ΠΌΠ΅ΠΆΠ΄Ρƒ собой Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ½Π°Ρ‚Ρ‹. Одна ΠΈΠ· Π΄Π²Π΅Ρ€Π΅ΠΉ называСтся Π²Ρ…ΠΎΠ΄ΠΎΠΌ Π² Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚, другая — Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ. Найти ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠΈΠΉ ΠΏΡƒΡ‚ΡŒ ΠΎΡ‚ Π²Ρ…ΠΎΠ΄Π° Π² Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚ ΠΊ Π΅Π³ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Ρƒ».

ЦСлью прСдставлСнной Ρ€Π°Π±ΠΎΡ‚Ρ‹ являСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° прилоТСния «ΠŸΠΎΠΈΡΠΊ ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠ΅Π³ΠΎ ΠΏΡƒΡ‚ΠΈ», ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ создаСт Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚ ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠΈΠΉ ΠΏΡƒΡ‚ΡŒ Π΅Π³ΠΎ прохоТдСния ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π΅Π³ΠΎ.

Π›Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚ задаСтся Π²ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅, Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ Ρ„Π°ΠΉΠ»Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π²Ρ…ΠΎΠ΄Π° ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π°, ΠΈ Π΄Π»Ρ Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π΄Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠ΅Π³ΠΎ ΠΏΡƒΡ‚ΠΈ, Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚ ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ этот ΠΏΡƒΡ‚ΡŒ.

Если ΠΆΠ΅ ΠΏΡƒΡ‚ΡŒ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π΄Π°Π΅Ρ‚ сообщСниС, ΠΎ Ρ‚ΠΎΠΌ Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΠ΅Ρ‚.

2. Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ постановка Π·Π°Π΄Π°Ρ‡ΠΈ

Для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ структуры Π΄Π°Π½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Π›Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚ ΠΌΡ‹ Π·Π°Π΄Π°Π΅ΠΌ Π²ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ, состоящих ΠΈΠ· 8, 0 ΠΈ 1. КаТдая запись массива опрСдСляСт ΠΊΠΎΠΌΠ½Π°Ρ‚Ρƒ Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π° — Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΊΠ° Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΠ΅Ρ‚ саму ΠΊΠΎΠΌΠ½Π°Ρ‚Ρƒ ΠΈ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π²ΠΎΠΊΡ€ΡƒΠ³ Π½Π΅Π΅ (0- стСна ΠΈΠ»ΠΈ 1- ΠΏΡ€ΠΎΡ…ΠΎΠ΄) Π΅ΡΡ‚ΡŒ ΠΈΠ»ΠΈ Π½Π΅Ρ‚ ΠΏΡ€ΠΎΡ…ΠΎΠ΄. Π’Π°ΠΊ ΠΆΠ΅ Π²ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π²Ρ…ΠΎΠ΄Π°, Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ массива. ИмСнно с ΡΡ‚ΠΈΠΌ массивом Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€ΠΈ Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ ΠΏΡƒΡ‚ΠΈ.

3. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ

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

Π­Ρ‚ΠΎΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ опрСдСляСт расстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Ρ€ΡˆΠΈΠ½Π°ΠΌΠΈ Π² ΠΏΡ€ΠΎΡΡ‚ΠΎΠΌ ΠΎΡ€Π³Ρ€Π°Ρ„Π΅ с Π½Π΅ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ вСсами. Если Π³Ρ€Π°Ρ„ Π½Π΅ Π²Π·Π²Π΅ΡˆΠ΅Π½, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ всС Ρ€Π΅Π±Ρ€Π° ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ вСс.

Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ простой Π³Ρ€Π°Ρ„ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ€Π΅Π±Ρ€Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ вСс, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΄Π»ΠΈΠ½Π° любого Ρ€Π΅Π±Ρ€Π° большС 0. НайдСм ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠΈΠΉ ΠΏΡƒΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Ρ€ΡˆΠΈΠ½Π°ΠΌΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π½Π°Ρ‡Π°Π»Π° ΠΈ ΠΊΠΎΠ½Π΅Ρ†. ΠΠ΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π΅Π±Ρ€Π° Π±ΡƒΠ΄Π΅ΠΌ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ€Π΅Π±Ρ€Π°ΠΌΠΈ с Π±Π΅ΡΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌΠΈ вСсами. Π‘ΡƒΠΌΠΌΡƒ вСсов Ρ€Π΅Π±Π΅Ρ€ Π² ΠΏΡƒΡ‚ΠΈ Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ вСсом ΠΈΠ»ΠΈ Π΄Π»ΠΈΠ½ΠΎΠΉ ΠΏΡƒΡ‚ΠΈ. Алгоритм поиска ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠ΅Π³ΠΎ ΠΏΡƒΡ‚ΠΈ, Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ ΠΈΠ· Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π½Π°Ρ‡Π°Π»ΠΎ, просматриваСт Π³Ρ€Π°Ρ„ Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ помСчая ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½Π½Ρ‹Π΅ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ значСниями-ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ ΠΈΡ… Ρ€Π°ΡΡΡ‚ояния ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π°. ΠœΠ΅Ρ‚ΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅. ΠžΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ мСткаэто минимально расстояниС Π½Π° Π³Ρ€Π°Ρ„Π΅ ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° Π΄ΠΎ ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½Π½ΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΊΠΈ, Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Π°Ρ ΠΈΡ… Ρ‡Π°ΡΡ‚ΡŒ — Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Алгоритм заканчиваСтся, ΠΊΠΎΠ³Π΄Π° конСчная Π²Π΅Ρ€ΡˆΠΈΠ½Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ΅Ρ‚ΠΊΡƒ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ расстояния ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π°.

Π’Π½Π°Ρ‡Π°Π»Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½Π΅ присваиваСтся ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΌΠ΅Ρ‚ΠΊΠ° 0 (Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ расстояниС Π΄ΠΎ ΡΠ°ΠΌΠΎΠΉ сСбя) Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Π²Π΅Ρ€ΡˆΠΈΠ½ присваиваСтся врСмСнная ΠΌΠ΅Ρ‚ΠΊΠ° Π±Π΅ΡΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΡΡ‚ΡŒ. На ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

1. КаТдой Π²Π΅Ρ€ΡˆΠΈΠ½Π΅, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΉ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΊΠΈ, присваиваСтся новая врСмСнная ΠΌΠ΅Ρ‚ΠΊΠ° — наимСньшая ΠΈΠ· Π΅Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ Ρ‡ΠΈΡΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ присвоСна ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΌΠ΅Ρ‚ΠΊΠ° Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ шагС.

2. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ΡΡ наимСньшая ΠΈΠ· Π²ΡΠ΅Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠΊ, которая ΠΈ ΡΡ‚ановится ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ своСй Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹. Π’ ΡΠ»ΡƒΡ‡Π°Π΅ равСнства выбираСтся любая ΠΈΠ· Π½ΠΈΡ….

ЦикличСский процСсс ΠΏ. 1 ΠΈ ΠΏ. 2 продолТаСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° конСчная Π²Π΅Ρ€ΡˆΠΈΠ½Π° Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΊΠΈ. Π›Π΅Π³ΠΊΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΌΠ΅Ρ‚ΠΊΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ — это ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠ΅Π΅ расстояния ΠΌΠ΅ΠΆΠ΄Ρƒ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½Π°ΠΌΠΈ.

4. ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ организация прилоТСния

РСализация ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ‚Ρ€Π΅Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… выполняСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ для Π½Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ Π² ΡΠΎΠΎΡ‚вСтствии с Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ выполняСтся Π½Π° Π΄Π²Π΅ составныС части: ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ расчСтов ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

4.1 ΠžΠ±Ρ‰Π°Ρ схСма взаимодСйствия ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ

4.2 ОписаниС ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ свой класс. ОписаниС ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΏΡ€ΠΈΠ·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡŽ классов (ΠΈΡ… Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡ) ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² классов (Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ класса).

1). UnWay — ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ класса TWay провСдСния всСх вычислСния нахоТдСния ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠ΅Π³ΠΎ ΠΏΡƒΡ‚ΠΈ.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса TWay.

Procedure TWay. Input — ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π²Π²ΠΎΠ΄Π° ΠΏΠ΅Ρ€Π΅Π³ΠΎΡ€ΠΎΠ΄ΠΎΠΊ ΠΊΠΎΠΌΠ½Π°Ρ‚Ρ‹

Procedure TWay. CreateAdj — ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ смСТности ΠΊΠΎΠΌΠ½Π°Ρ‚

Procedure TWay. ShortRoom — ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° поиска минимального ΠΏΡƒΡ‚ΠΈ

2). UnDraw — ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ класса TOcno

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса TOcno.

Procedure TOcno. Organize — ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ ΡΠ΅Ρ‚ΡŒ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ²

Procedure TOcno. DrawWay — ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° рисуСт Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠΈΠΉ ΠΏΡƒΡ‚ΡŒ

Procedure TOcno. DrawRect — ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° рисуСт ΠΏΠ΅Ρ€Π΅Π³ΠΎΡ€ΠΎΠ΄ΠΊΠΈ Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π°

5. ВСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

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

Класса TWay вычислСния ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π° коня ΠΏΠΎ ΡˆΠ°Ρ…ΠΌΠ°Ρ‚Π½ΠΎΠΌΡƒ полю.

TWay = class

Public

nmDataFile:String;

fout:TextFile; {Π€Π°ΠΉΠ» ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…}

nX:Integer; { ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π²Π΅Ρ€ΡˆΠΈΠ½ Π² Π³Ρ€Π°Ρ„Π΅ }

Mark:TypeMark; { ΠŸΡ€ΠΈΠ·Π½Π°ΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ ΠΏΠΎΡΡ‚оянных ΠΌΠ΅Ρ‚ΠΎΠΊ }

Dist:TypeDist; { ЗначСния Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠΊ Π²Π΅Ρ€ΡˆΠΈΠ½ (расстояния) }

Prev:TypePrev; { Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π±Π»ΠΈΠΆΠ°ΠΉΡˆΡƒΡŽ Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ }

x0:Integer; { Π’Π΅Ρ€ΡˆΠΈΠ½Π° Π½Π°Ρ‡Π°Π»Π° ΠΏΡƒΡ‚ΠΈ }

z:Integer; { Π’Π΅Ρ€ΡˆΠΈΠ½Π° ΠΊΠΎΠ½Ρ†Π° ΠΏΡƒΡ‚ΠΈ }

y:Integer; { ПослСдняя Π²Π΅Ρ€ΡˆΠΈΠ½Π° с ΠΏΠΎΡΡ‚оянной ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ }

nr, mr: Integer; {Π Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠΌΠ½Π°Ρ‚ Π±Π°Ρ€ΡŒΠ΅Ρ€ΠΎΠ²}

Adj:TypeAdj; {Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° смСТности}

nA:Integer; {Число ΠΊΠΎΠΌΠ½Π°Ρ‚ ΠΈ Π²Π΅Ρ€ΡˆΠΈΠ½}

Wr:TypeWe; {ΠŸΠ΅Ρ€Π΅Π³ΠΎΡ€ΠΎΠ΄ΠΊΠΈ ΠΊΠΎΠΌΠ½Π°Ρ‚}

zEnd:Integer; { Π’Π΅Ρ€ΡˆΠΈΠ½Π° ΠΊΠΎΠ½Ρ†Π° ΠΏΡƒΡ‚ΠΈ-найдСнная }

Public

Constructor Init;

Destructor Done;

Procedure Input;

Procedure CreateAdj;

Procedure ShortRoom;

function YesRib (xr, yr: Integer):Boolean;

end;

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса TMaze

// ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π²Π²ΠΎΠ΄Π° ΠΏΠ΅Ρ€Π΅Π³ΠΎΡ€ΠΎΠ΄ΠΎΠΊ ΠΊΠΎΠΌΠ½Π°Ρ‚Ρ‹

Procedure TWay. Input;

var f: TextFile; {Π€Π°ΠΉΠ» Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ…}

i, j, w:Integer;

i0,j0:Integer;

iz, jz: Integer;

begin

AssignFile (f, nmDataFile);

Reset (f);{Π€Π°ΠΉΠ» ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ для чтСния}

ReadLn (f, i0, j0); {Начало ΠΏΡƒΡ‚ΠΈ}

ReadLn (f, iz, jz); {ΠšΠΎΠ½Π΅Ρ† ΠΏΡƒΡ‚ΠΈ}

ReadLn (f, nr, mr); {Π Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠΌΠ½Π°Ρ‚Ρ‹ Π±Π°Ρ€ΡŒΠ΅Ρ€ΠΎΠ²}

//——————————————————————;

x0:=(i0−1)*mr+(j0−1); //ΠšΠΎΠΌΠ½Π°Ρ‚Π°-Начало

z:=(iz-1)*mr+(jz-1); //ΠšΠΎΠΌΠ½Π°Ρ‚Π°-ΠšΠΎΠ½Π΅Ρ†

zEnd:=z;

//——————————————————————;

//ΠžΠ±Π½ΡƒΠ»ΠΈΡ‚ΡŒ

for i:=1 to nr do begin

for j:=1 to mr do begin

Wr[i, j]. L:=0;

Wr[i, j].U:=0;

Wr[i, j].R:=0;

Wr[i, j].D:=0;

end;

end;

for i:=1 to nr do begin

//———————————————————-;

if i=1 then

for j:=1 to mr do Read (f, Wr[i, j]. U)

else

for j:=1 to mr do Wr[i, j]. U:=Wr[i-1,j].D;

//———————————————————-;

for j:=1 to mr do begin

if j=1 then Read (f, Wr[i, 1]. L);

Read (f, w, Wr[i, j].R);

if j

end;

for j:=1 to mr do Read (f, Wr[i, j]. D);

end;

// ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ смСТности ΠΊΠΎΠΌΠ½Π°Ρ‚

Procedure TWay. CreateAdj;

var i, j, k, v: Integer;

begin

na:=nr*mr; {Число ΠΊΠΎΠΌΠ½Π°Ρ‚-Π²Π΅Ρ€ΡˆΠΈΠ½}

k:=0;

for i:=1 to nr do begin

for j:=1 to mr do begin

for v:=1 to 4 do Adj[k, v]: =-1; //НСт ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π°

if wr[i, j]. L=1 then Adj[k, 1]: =k-1;

if wr[i, j]. R=1 then Adj[k, 2]: =k+1;

if wr[i, j]. U=1 then Adj[k, 3]: =k-mr;

if wr[i, j]. D=1 then Adj[k, 4]: =k+mr;

k:=k+1; //Число ΠΊΠΎΠΌΠ½Π°Ρ‚

end;

end;

//—————————————————-;

for k:=0 to na-1 do begin

for v:=1 to 4 do begin

Write (fout, Adj[k, v]: 3);

end;

WriteLn (fout);

end;

end;

//ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° поиска минимального ΠΏΡƒΡ‚ΠΈ

Procedure TWay. ShortRoom;

Var

i, j, x, k: Integer;

weight:LongInt;

yes:Boolean;

begin

nX:=na-1; (* X={0,1,2,…, nX} - мноТСство Π²Π΅Ρ€ΡˆΠΈΠ½ *)

//ВычислСния

for x:=0 to nX do begin

Mark[x]: =FALSE;

Dist[x]:=$ 7fffffff;

end;

y:=x0; {ПослСдняя Π²Π΅Ρ€ΡˆΠΈΠ½Π° с ΠΏΠΎΡΡ‚оянной ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ}

Mark[y]: =TRUE;

Dist[y]:=0;

zEnd:=z;

while not Mark[z] do begin

{ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΊΠΈ}

for x:=0 to nX do

if (not Mark[x]) and YesRib (x, y) and (Dist[x]>Dist[y]+1) then begin

Dist[x]: =Dist[y]+1;

Prev[x]:=y;

end;

{Поиск Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ}

yes:=False;

weight:=$ 7fffffff;

for x:=0 to nX do if not Mark[x] then if weight>Dist[x] then begin

weight:=Dist[x];

y:=x;

yes:=True;

end;

if not yes then begin

Write (fout,'НСт Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π°!');

showmessage ('Π½Π΅Ρ‚ Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π°');

zEnd:=y; //ПослСдняя пройдСнная

break;

end;

Mark[y]: =TRUE;

end;

Класса TOcno рисованиС Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π°

TOcno = class (TObject)

public

mI:TRect;//Π–Π΅Π»Π΅Π·Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ

mC:TCanvas;//ГрафичСский контСкст

m, n: Integer;//Π Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ (m, n)

R: array of array of TRect;//Π‘Π΅Ρ‚ΡŒ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ²

C0,C1: TColor;

public

procedure Init ();

procedure Done ();

procedure Draw (wCvas:TCanvas; wIron: TRect; md: TWay);

procedure DrawRect (i, j: Integer; md: Tway);

procedure Organize (zR: TRect);

function MouseRect (mX, mY: Integer; md: Tway):Boolean;

procedure DrawWay (md:Tway);

end;

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса TOcno.

// ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ ΡΠ΅Ρ‚ΡŒ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ²

procedure TOcno. Organize(zR: TRect);

var i, j, d, k: Integer;

x, y, z:array of Integer;

pr:String;

begin

//Π Π°Π·Ρ€ΡƒΡˆΠΈΡ‚ΡŒ

//if R<>nil then for i:=0 to m do R[i]: =nil;

R:=nil;

SetLength (R, m+1); //ΠŸΠ°ΠΌΡΡ‚ΡŒ

for i:=0 to m do SetLength (R[i], n+1);

//Π€ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ

SetLength (y, m+1);

SetLength (x, n+1);

SetLength (z, m+n+1);

//По высотС

d:=(zR.Bottom-zR.Top) div m;

k:=(zR.Bottom-zR.Top) mod m;

for i:=0 to m-1 do z[i]: =d;

for i:=0 to k-1 do inc (z[i]);

y[0]: =zR.Top;

for i:=0 to m-1 do y[i+1]: =y[i]+z[i];

//По ΡˆΠΈΡ€ΠΈΠ½Π΅

d:=(zR.Right-zR.Left) div n;

k:=(zR.Right-zR.Left) mod n;

for j:=0 to n-1 do z[j]: =d;

for j:=0 to k-1 do inc (z[j]);

x[0]: =zR.Left;

for j:=0 to n-1 do x[j+1]: =x[j]+z[j];

//ΠŸΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ

for i:=0 to m-1 do begin

for j:=0 to n-1 do begin

R[i+1,j+1]: =Rect (x[j], y[i], x[j+1], y[i+1]);

end;

end;

x:=nil;

y:=nil;

z:=nil;

end;

// ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° рисуСт Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠΈΠΉ ΠΏΡƒΡ‚ΡŒ

procedure TOcno. DrawWay(md:Tway);

var k, x, ir, jr: Integer;

wr, wrG: TRect;

h, w: Integer;

cx, cy: Integer;

begin

k:=md.z;

x:=k+1;

ir:=(x-1) div md. mr +1;

jr:=(x-1) mod md. mr +1;

wr:=R[ir, jr];

cx:=(wr.Left+wr.Right) div 2;

cy:=(wr.Top+wr.Bottom) div 2;

w:=(wr.Right-wr.Left) div 12;

h:=(wr.Bottom-wr.Top) div 7;

wr.Left:=cx-w;

wr.Right:=cx+w;

wr.Top:=cy-h;

wr.Bottom:=cy+h;

mC.Brush.Color:=RGB (0,255,255);

mC.Pen.Width:=3;

mC.Pen.Color:=RGB (0,0,0);

mC.Arc (wR.Left, wR. Top, wR. Right, wR. Bottom, wR. Left, wR. Top, wR. Left, wR. Top);

k:=md.zEnd;

x:=k+1;

ir:=(x-1) div md. mr +1;

jr:=(x-1) mod md. mr +1;

wr:=R[ir, jr];

cx:=(wr.Left+wr.Right) div 2;

cy:=(wr.Top+wr.Bottom) div 2;

w:=(wr.Right-wr.Left) div 12;

h:=(wr.Bottom-wr.Top) div 7;

wr.Left:=cx-w;

wr.Right:=cx+w;

wr.Top:=cy-h;

wr.Bottom:=cy+h;

mC.MoveTo (cx, cy);

mC.Brush.Color:=RGB (0,255,0);

mC.Pen.Width:=3;

mC.Pen.Color:=RGB (255,255,255);

mC.Arc (wR.Left, wR. Top, wR. Right, wR. Bottom, wR. Left, wR. Top, wR. Left, wR. Top);

while k<>md.x0 do begin

k:=md.Prev[k];

x:=k+1;

ir:=(x-1) div md. mr +1;

jr:=(x-1) mod md. mr +1;

wr:=R[ir, jr];

cx:=(wr.Left+wr.Right) div 2;

cy:=(wr.Top+wr.Bottom) div 2;

w:=(wr.Right-wr.Left) div 12;

h:=(wr.Bottom-wr.Top) div 7;

wr.Left:=cx-w;

wr.Right:=cx+w;

wr.Top:=cy-h;

wr.Bottom:=cy+h;

mC.Pen.Width:=7;

mC.Pen.Color:=RGB (255,0,0);

mC.LineTo (cx, cy);

mC.Brush.Color:=RGB (0,255,0);

mC.Pen.Width:=3;

mC.Pen.Color:=RGB (255,255,255);

mC.Chord (wR.Left, wR. Top, wR. Right, wR. Bottom, wR. Left, wR. Top, wR. Left, wR. Top);

end;

end;

// ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° рисуСт ΠΏΠ΅Ρ€Π΅Π³ΠΎΡ€ΠΎΠ΄ΠΊΠΈ Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π°

procedure TOcno. DrawRect(i, j: Integer; md: Tway);

var d: Integer;

wr, wrG: TRect;

CR:TColor;

wd:Integer;

begin

wd:=14; //ΠŸΠ΅Ρ€Π΅Π³ΠΎΡ€ΠΎΠ΄ΠΊΠΈ

wr:=R[i, j];

wrG:=wr;

d:=3;

Inc (wr.Left, d);

Inc (wr.Top, d);

Dec (wr.Right, d);

Dec (wr.Bottom, d);

mC.Brush.Color:=C1;

mC.Pen.Width:=0;

mC.Pen.Color:=RGB (0,255,255);

mC.FillRect (wr);

CR:=RGB (255,128,255);

if md. Wr[i, j]. L<>1 then

begin

mC.pen.Color:=CR; mC.Pen.Width:=wd;

mc.MoveTo (wr.Left, wr. Top+3);

mc.LineTo (wr.Left, wr. Bottom-3);

end;

if md. Wr[i, j]. R<>1 then

begin

mC.pen.Color:=CR; mC.Pen.Width:=wd;

mc.MoveTo (wr.Right, wr. Top+3);

mc.LineTo (wr.Right, wr. Bottom-3);

end;

if md. Wr[i, j]. U<>1 then

begin

mC.pen.Color:=CR; mC.Pen.Width:=wd;

mc.MoveTo (wr.Left+2,wr.Top);

mc.LineTo (wr.Right-2,wr.Top);

end;

if md. Wr[i, j]. D<>1 then

begin

mC.pen.Color:=CR; mC.Pen.Width:=wd;

mc.MoveTo (wr.Left+2,wr.Bottom);

mc.LineTo (wr.Right-2,wr.Bottom);

end;

end;

6. Руководство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ примСнялся принятый Π² ΡΡ€Π΅Π΄Π΅ Delphi ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ интСрфСйса. ΠŸΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… использовался структурный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. Π’ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΎΠΊΠ½Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ всС пространство. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ выполняСтся посрСдством мСню прилоТСния, располоТСнноС Π² Π³Π»Π°Π²Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅.

НазначСниС ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню.

Β· «ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹» — ΠΏΡƒΠ½ΠΊΡ‚ мСню содСрТит Π² ΡΠ΅Π±Π΅ Π΄Π²Π΅ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ ь «Πž ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅» — Π²Ρ‹Π±ΠΎΡ€ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню сопровоТдаСтся Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³Π° сообщСния ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ прилоТСния.

ь «Π’Ρ‹Ρ…ΠΎΠ΄» — ΠΏΡƒΠ½ΠΊΡ‚ мСню Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.

Β· «Π€Π°ΠΉΠ» Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π°» — ΠΏΡƒΠ½ΠΊΡ‚ мСню позволяСт Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Ρ‹.

Β· «Π’Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ» — ΠΏΡƒΠ½ΠΊΡ‚ мСню Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠΈΠΉ ΠΏΡƒΡ‚ΡŒ ΠΈ Ρ€ΠΈΡΡƒΠ΅Ρ‚ Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚ ΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ.

Если ΠΏΡƒΡ‚ΡŒ Π½Π°ΠΉΠ΄Π΅Π½, ΠΎΠ½ Π²Ρ‹Π΄Π°Π΅Ρ‚ сообщСниС ΠΈ Ρ€ΠΈΡΡƒΠ΅Ρ‚ Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚ ΠΈ Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ. Если ΠΏΡƒΡ‚ΡŒ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ Π½Π° ΡΠΊΡ€Π°Π½ выводится сообщСния «ΠŸΡƒΡ‚ΡŒ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½», рисуСт Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚ ΠΈ ΠΏΡƒΡ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ Π΄ΠΎΡΡ‚ΠΈΠ³Π°Π΅Ρ‚ Π½ΡƒΠΆΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠ»Π΅Ρ‚ΠΎΡ‡Π½ΠΎΠΉ области Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π° опрСдСляСтся Π² Ρ‚Скстовом Ρ„Π°ΠΉΠ»Π΅. Π’Π°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ — это исходныС Π΄Π°Π½Π½Ρ‹ΠΌΠΈ прилоТСния. Π’Ρ‹Π±ΠΎΡ€ Ρ„Π°ΠΉΠ»Π° Π΄Π°Π½Π½Ρ‹Ρ… Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π° осущСствляСтся Π² Π΄ΠΈΠ°Π»ΠΎΠ³Π΅, Π²Ρ‹Π·ΠΎΠ² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ выполняСтся ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠΌ мСню «Π€Π°ΠΉΠ» Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π°».

ОписаниС структуры Π΄Π°Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π° Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π°.

ΠŸΡ€ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… условно Π²Π²Π΅Π»ΠΈ обозначСния Ρ†ΠΈΡ„Ρ€ΠΎΠΉ 8 для ΠΊΠΎΠΌΠ½Π°Ρ‚ Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π°.

Π”Π°Π½Π° Ρ†ΠΈΡ„Ρ€Π° Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ся. Однако ΠΎΠ½Π° примСняСтся для установки ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π³ΠΎΡ€ΠΎΠ΄ΠΎΠΊ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠ½Π°Ρ‚Π°ΠΌΠΈ.

НапримСр, ΠΊΠΎΠΌΠ½Π°Ρ‚Π° 8 ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π³ΠΎΡ€ΠΎΠ΄ΠΊΠΈ свСрху ΠΈ ΡΠ½ΠΈΠ·Ρƒ, Π° ΡΠΏΡ€Π°Π²Π° ΠΈ ΡΠ»Π΅Π²Π° ΠΎΠ½ΠΈ отсутствуСт.

Π”Π°Π½Π½Ρ‹Π΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π°

1 1 — ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π½Π°Ρ‡Π°Π»Π° ΠΏΡƒΡ‚ΠΈ

6 4 — ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΊΠΎΠ½Ρ†Π° ΠΏΡƒΡ‚ΠΈ

7 6 — Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

0 0 0 0 0 0 — Π²Π΅Ρ€Ρ…Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π³ΠΎΡ€ΠΎΠ΄ΠΊΠΈ

0 8 1 8 1 8 0 8 0 8 0 8 0 — ΠΊΠΎΠΌΠ½Π°Ρ‚Ρ‹ ΠΈ Π±ΠΎΠΊΠΎΠ²Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π³ΠΎΡ€ΠΎΠ΄ΠΊΠΈ

1 1 1 1 0 1 — Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π³ΠΎΡ€ΠΎΠ΄ΠΊΠΈ ΠΊΠΎΠΌΠ½Π°Ρ‚

0 8 0 8 0 8 1 8 0 8 1 8 0

0 0 0 1 0 1

0 8 1 8 1 8 1 8 1 8 1 8 0

1 0 0 0 0 1

0 8 0 8 1 8 1 8 1 8 1 8 0

1 1 0 1 0 1

0 8 0 8 0 8 1 8 0 8 0 8 0

0 0 1 0 1 1

0 8 1 8 1 8 0 8 0 8 0 8 0

1 0 0 1 1 1

0 8 1 8 1 8 1 8 0 8 1 8 0

0 0 0 0 0 0

По ΡΡ‚ΠΈΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ тСстовыС расчСты, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π½ΠΈΠΆΠ΅ Π² Ρ‚Сстовом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ (рис.1).

7. ВСстовый ΠΏΡ€ΠΈΠΌΠ΅Ρ€

ВСстовый ΠΏΡ€ΠΈΠΌΠ΅Ρ€ являСтся расчСтом ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠ΅Π³ΠΎ ΠΏΡƒΡ‚ΠΈ Π² Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π΅.

Рис. 1. Π Π°Π±ΠΎΡ‡Π΅Π΅ ΠΎΠΊΠ½ΠΎ прилоТСния — нахоТдСния ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠ΅Π³ΠΎ ΠΏΡƒΡ‚ΠΈ

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

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

1. Иванов Π‘. Н. ДискрСтная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Алгоритмы ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: Π£Ρ‡Π΅Π±. ПособиС. — Π’ладивосток: Изд-Π²ΠΎ Π”Π’Π“Π’, 2000. — 288с.

2. ΠœΠΎΠ»Ρ‡Π°Π½ΠΎΠ²Π° Π›. А., ΠŸΡ€ΡƒΠ΄Π½ΠΈΠΊΠΎΠ²Π° Π›. И. Delphi Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΈ Π·Π°Π΄Π°Ρ‡Π°Ρ…: Π£Ρ‡Π΅Π±. пособиС. Владивосток: Изд-Π²ΠΎ Π’Π“Π­Π£, 2006. — 92с.

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