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

РСализация логичСской ΠΈΠ³Ρ€Ρ‹ Β«Π‘Π°ΠΏΠ΅Ρ€Β»

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

C++ — ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ язык программирования, Π·Π°Π΄ΡƒΠΌΠ°Π½Π½Ρ‹ΠΉ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ приятным для ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΠ³ΠΎ программиста. Π—Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ второстСпСнных Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ C++ являСтся надмноТСством языка программирования C. Помимо возмоТностСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°Π΅Ρ‚ C, C++ прСдоставляСт Π³ΠΈΠ±ΠΊΠΈΠ΅ ΠΈ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ срСдства опрСдСлСния Π½ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ опрСдСлСния Π½ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΡ… концСпциям… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

РСализация логичСской ΠΈΠ³Ρ€Ρ‹ Β«Π‘Π°ΠΏΠ΅Ρ€Β» (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Данная Ρ€Π°Π±ΠΎΡ‚Π° являСтся Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ логичСской ΠΈΠ³Ρ€Ρ‹ Π‘Π°ΠΏΡ‘Ρ€. Π”Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ Π½Π°Π·Π²Π°Π½ΠΎ Mines (Π² ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ с Π°Π½Π³Π». — ΠΌΠΈΠ½Ρ‹). ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ языкС программирования C++ Π² ΡΡ€Π΅Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Microsoft Visual C++ 2008, являСтся высокоэффСктивной, ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΠΉ ΠΈ Π±Ρ‹ΡΡ‚Ρ€ΠΎΠΉ. Mines Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚Π΅Π»Π΅Π½ ΠΊ ΡΠΈΡΡ‚Π΅ΠΌΠ½Ρ‹ΠΌ рСсурсам ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎΠ΄ любой вСрсиСй Windows начиная с Windows 95.

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

Π’ ΡΡ€Ρƒ высоких Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈΠ³Ρ€Ρ‹ стали Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΅Ρ‰Ρ‘ интСнсивнСС. ПоявлСниС ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ³Ρ€ ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ рСалистичныС симуляторы. БСйчас ΡƒΠΆΠ΅ Π½ΠΈΠΊΠΎΠ³ΠΎ Π½Π΅ ΡƒΠ΄ΠΈΠ²ΠΈΡˆΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° вмСстС с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ людьми ΠΏΡ€ΠΎΠ΅Ρ…Π°Ρ‚ΡŒΡΡ Π½Π° Π€ΠΎΡ€ΠΌΡƒΠ»Π΅ 1, ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ участиС Π² Π±ΠΎΠ΅Π²Ρ‹Ρ… дСйствиях. Π•ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ³Ρ€Ρ‹, Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ логичСскоС ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΠ΅. ИмСнно Ρ‚Π°ΠΊΠΎΠΉ ΠΈΠ³Ρ€ΠΎΠΉ являСтся Π‘Π°ΠΏΡ‘Ρ€.

Π˜Π³Ρ€Π° Π‘Π°ΠΏΡ‘Ρ€ ΠΎΡ‡Π΅Π½ΡŒ популярна ΠΈ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ сущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ вСрсий этой ΠΈΠ³Ρ€Ρ‹, написанных Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках программирования начиная ΠΎΡ‚ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ€Π° ΠΈ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ Java. Π•ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ вСрсии для Ρ€Π°Π·Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, Π° Ρ‚Π°ΠΊΠΆΠ΅ для Internet ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ².

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

1. Π’Π•ΠžΠ Π•Π’Π˜Π§Π•Π‘ΠšΠΠ― ЧАБВЬ ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ стал вопрос ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. НСобходимо Π±Ρ‹Π»ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ, Π³ΠΈΠ±ΠΊΠΈΠΉ язык программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹ прСдоставлял Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ возмоТности для быстрого создания ΠΈΠ³Ρ€Ρ‹ Π‘Π°ΠΏΡ‘Ρ€, ΠΈ Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя достаточно эффСктивный, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΈΡΠ°Ρ‚ΡŒ быстрыС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’Π°ΠΊ ΠΊΠ°ΠΊ C++ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ удовлСтворяСт этим трСбованиям, ΠΈ Π±Ρ‹Π» мною ΠΈΠ·ΡƒΡ‡Π΅Π½ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎ, Ρ‡Π΅ΠΌ Pascal ΠΈ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ€, я Π²Ρ‹Π±Ρ€Π°Π» ΠΈΠΌΠ΅Π½Π½ΠΎ Π΅Π³ΠΎ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ рассмотрим Ρ‡Π΅ΠΌ ΠΆΠ΅ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»Π΅Π½ C++.

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

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ понятиСм C++ являСтся класс. Класс — это Ρ‚ΠΈΠΏ, опрСдСляСмый ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. ΠšΠ»Π°ΡΡΡ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ скрытиС Π΄Π°Π½Π½Ρ‹Ρ…, Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ…, нСявноС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² для Ρ‚ΠΈΠΏΠΎΠ², ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, динамичСскоС Π·Π°Π΄Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ°, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. C++ прСдоставляСт Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π»ΡƒΡ‡ΡˆΠΈΠ΅, Ρ‡Π΅ΠΌ Π² C, срСдства выраТСния ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ². Π’ ΡΠ·Ρ‹ΠΊΠ΅ Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΡ, Π½Π΅ ΡΠ²ΡΠ·Π°Π½Π½Ρ‹Π΅ нСпосрСдствСнно с ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠ΅ Π² ΡΠ΅Π±Ρ символичСскиС константы, inline-подстановку Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ управлСния свободной ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈ ΡΡΡ‹Π»ΠΎΡ‡Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ.

Π’ C++ сохранСны возмоТности языка C ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΎΡΠ½ΠΎΠ²Π½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ обСспСчСния (Π±ΠΈΡ‚Ρ‹, Π±Π°ΠΉΡ‚Ρ‹, слова, адрСса ΠΈ Ρ‚. ΠΏ.). Π­Ρ‚ΠΎ позволяСт вСсьма эффСктивно Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏΡ‹, опрСдСляСмыС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

C++ ΠΈ Π΅Π³ΠΎ стандартныС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ спроСктированы Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒ. Π˜ΠΌΠ΅ΡŽΡ‰Π°ΡΡΡ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ рСализация языка Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ΄Ρ‚ΠΈ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ систСм, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… C. Из C++ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ C Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΈ с C++ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… срСдств, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° C.

ПослС Π²Ρ‹Π±ΠΎΡ€Π° языка программирования Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±Ρ‹Π»ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ Π±Ρ‹Π» Π±Ρ‹ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎ ΠΈ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΡƒΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ срСдства для быстрого написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, эффСктивной компиляции ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ программирования ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ΄ Windows. Π’ Π½Π°ΠΈΠ±ΠΎΠ»ΡŒΡˆΠ΅ΠΉ стСпСни этим трСбованиям ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‚ Microsoft Visual C++ ΠΈ Borland C++ Builder. Рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ особСнности этих компиляторов.

C++ Builder — ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Borland, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ собой Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ срСдство RAD (срСдство быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ Π² ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ сроки ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для Windows Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ C++. Π’ ΠΎΡΠ½ΠΎΠ²Π΅ программирования Π½Π° C++ Builder Π»Π΅ΠΆΠΈΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° VCL (Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²), написанная Π½Π° Object Pascal. Она содСрТит большоС количСство классов Ρ€Π°Π·Π½ΠΎΠ³ΠΎ назначСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ интСрфСйса ΠΈ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Π±ΠΎΠ»Π΅Π΅ высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ абстракции.

Borland C++ Builder обСспСчиваСт быстроС созданиС интСрфСйса ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π»Π΅Π³ΠΊΠΎ Π²Π½ΠΎΡΠΈΡ‚ΡŒ Π² Π½Π΅Π³ΠΎ измСнСния Π΄Π°ΠΆΠ΅ Π½Π° Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… этапах проСктирования ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Всё это создаёт благоприятныС условия для создания Windows-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

РСализация языка C++ Π² Borland C++ Builder отличаСтся ΠΎΡ‚ ΠΏΡ€ΠΈΠ½ΡΡ‚Ρ‹Ρ… стандартов ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π­Ρ‚ΠΎ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ связано с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠΌ создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ («ΠΏΠ΅Ρ€Π΅Ρ‚аскиваниС» элСмСнтов управлСния прямо Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ).

Как Π²ΠΈΠ΄Π½ΠΎ, Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ основы, Π·Π°Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Π² Microsoft Visual C++ ΠΈ Borland C++ Builder, нСсколько ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ, Ρ‡Ρ‚ΠΎ Π΄Π°Ρ‘Ρ‚ ΠΏΠΎΠ²ΠΎΠ΄ для Ρ€Π°Π·ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΠΉ Π½Π°Π΄ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ Π΄Π°Π½Π½Ρ‹Ρ… компиляторов ΠΈ Ρ‚ΠΎΠ³ΠΎ, насколько ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΈΠ³Ρ€Ρ‹, ΠΊΠ°ΠΊ Π‘Π°ΠΏΡ‘Ρ€. ПослС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π·ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΠΉ ΠΈ ΠΎΠΏΡ‹Ρ‚ΠΎΠ² я ΠΏΡ€ΠΈΡˆΠ»Π° ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Visual C++ 2008 — Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ подходящая срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ для создания Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’ΠΎΡ‚ Ρ‚Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΠΌΠΎΠΉ Π²Ρ‹Π±ΠΎΡ€.

— Microsoft Visual C++ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ языка C++, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π²Π΅Π΄Π΅Π½Ρ‹ Π² C++ Builder ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ соотвСтствуСт стандартам, принятым для языка C++.

— ΠΠ»Π³ΠΎΡ€ΠΈΡ‚ΠΌ компиляции Π² Microsoft Visual C++ эффСктивнСС Ρ‡Π΅ΠΌ Π² Borland C++ Builder ΠΎ Ρ‡Ρ‘ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΡƒΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ (ΠΏΡ€ΠΈ соотвСтствии ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, настроСк компилятора ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… условий), Π²ΠΎ Π²ΡΡΠΊΠΎΠΌ случаС ΠΏΡ€ΠΈ создании Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для Windows.

— ΠΠ»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Ρ‚Π°ΠΊΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π΅Π½ Π² Microsoft Visual C++ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ происходит Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ быстрСС.

— Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… программистов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Visual C++ ΠΈ, бСзусловно, ΠΎΠΏΡ‹Ρ‚, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈ написании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² ΡΡ‚ΠΎΠΉ срСдС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, благоприятно скаТСтся Π½Π° ΠΌΠΎΡ‘ΠΌ дальнСйшСм ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ программирования.

Π― Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π΅ Π³ΠΎΠ²ΠΎΡ€ΡŽ ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΌ прСвосходствС Microsoft Visual C++ ΠΈΠ»ΠΈ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ всСгда стоит ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΅Π³ΠΎ. ΠŸΡ€ΠΎΡΡ‚ΠΎ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΠ½, ΠΏΠΎ ΠΌΠΎΠ΅ΠΌΡƒ мнСнию, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚.

2. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

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

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

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π­Ρ‚ΠΎΡ‚ ΠΏΡƒΠ½ΠΊΡ‚ содСрТит описаниС Π²ΠΈΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈ Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½Π° взаимодСйствуСт с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. Π’ΠΈΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 3.1.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π‘Π°ΠΏΠ΅Ρ€ ΠΈΠΌΠ΅Π΅Ρ‚ графичСский интСрфСйс, основанный Π½Π° ΠΎΠΊΠ½Π°Ρ…. Окно ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, систСмноС мСню, ΠΊΠ½ΠΎΠΏΠΊΠΈ для закрытия ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠΊΠ½Π°.

Рис. 3.1 Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π‘Π°ΠΏΠ΅Ρ€ На Ρ„ΠΎΡ€ΠΌΠ΅ располоТСны мСню ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅, Ρ€Π°Π·Π±ΠΈΡ‚ΠΎΠ΅ Π½Π° ΠΊΠ»Π΅Ρ‚ΠΊΠΈ, находится Π² Ρ†Π΅Π½Ρ‚Ρ€Π΅, свСрху Π² Ρ†Π΅Π½Ρ‚Ρ€Π΅ ΠΊΠ½ΠΎΠΏΠΊΠ°, для запуска Π½ΠΎΠ²ΠΎΠΉ ΠΈΠ³Ρ€Ρ‹. Π Π°Π·ΠΌΠ΅Ρ€ Ρ„ΠΎΡ€ΠΌΡ‹ измСняСтся Π² ΡΠΎΠΎΡ‚вСтствии с Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля.

МСню ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ состоит ΠΈΠ· ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² «Π˜Π³Ρ€Π°» ΠΈ «Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ» — Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅Π΅ мСню. ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΏΡƒΠ½ΠΊΡ‚Π° «Π˜Π³Ρ€Π°» появляСтся мСню, содСрТащСС ΠΏΡƒΠ½ΠΊΡ‚Ρ‹:

1. Новая ΠΈΠ³Ρ€Π°

2. Π’Ρ‹Ρ…ΠΎΠ΄ ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΏΡƒΠ½ΠΊΡ‚Π° «Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ» появляСтся мСню:

1.Новичок

2. Π›ΡŽΠ±ΠΈΡ‚Π΅Π»ΡŒ

3. ΠŸΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»

4. ΠžΡΠΎΠ±Ρ‹Π΅ Π’Ρ‹Π±ΠΎΡ€ ΠΏΡƒΠ½ΠΊΡ‚Π° «ΠΠΎΠ²Π°Ρ ΠΈΠ³Ρ€Π°» ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ созданиС Π½ΠΎΠ²ΠΎΠ³ΠΎ поля ΠΌΠΈΠ½. Π’Ρ‹Π±ΠΎΡ€ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню «Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ» ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π²Ρ‹Π±ΠΎΡ€ слоТности ΠΈΠ³Ρ€Ρ‹. «ΠΠΎΠ²ΠΈΡ‡ΠΎΠΊ» — ΠΏΠΎΠ»Π΅ 8×9, 5 ΠΌΠΈΠ½, «Π›ΡŽΠ±ΠΈΡ‚Π΅Π»ΡŒ» — 15×18×30, «ΠŸΡ€ΠΎΡ„Сссионал» — 20×25×50, «ΠžΡΠΎΠ±Ρ‹Π΅» позволяСт Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ³Ρ€Ρ‹. ΠŸΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚Ρ€ΠΈ textbox для Π²Π²ΠΎΠ΄Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (ΠΏΠΎΠ»Π΅ ΠΎΡ‚ 3×3 Π΄ΠΎ 20×25). Π’ΠΈΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΏΡƒΠ½ΠΊΡ‚Π° «ΠžΡΠΎΠ±Ρ‹Π΅» ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 3.2. ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ «Π’Ρ‹Ρ…ΠΎΠ΄» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

Рис. 3.1 Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π‘Π°ΠΏΠ΅Ρ€ ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ мСню «ΠžΡΠΎΠ±Ρ‹Π΅»

НаТатиС Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ «New Game» Ρ€Π°Π²Π½ΠΎΡΠΈΠ»ΡŒΠ½ΠΎ Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΡƒΠ½ΠΊΡ‚Π° мСню «ΠΠΎΠ²Π°Ρ ΠΈΠ³Ρ€Π°». Если Π½Π°Ρ‡Π°Ρ‚Π° новая ΠΈΠ³Ρ€Π°, Ρ‚ΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Π½Π° ΠΎΠ΄Π½Ρƒ ΠΈΠ· ΡΡ‡Π΅Π΅ΠΊ Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΡŽ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ.

Π₯ΠΎΠ΄ создания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Данная Ρ€Π°Π±ΠΎΡ‚Π° Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Π΅ Visual C++.

Для создания этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±Ρ‹Π» Π½Π°Ρ‡Π°Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ CLR, Π² Π½Π΅Π³ΠΎ Π±Ρ‹Π» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ„Π°ΠΉΠ» Form1. h, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… находятся объявлСниС ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡ класса ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, связанныС с ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ интСрфСйса. ПослС Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΡ€ΠΈΠΎΠ±Ρ€Ρ‘Π» Ρ‚ΠΎΡ‚ Π²ΠΈΠ΄, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ Π½Π°Ρ…одится сСйчас.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ ΠΈ ΠΊΠ»Π°ΡΡΡ‹ Π’ ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π‘Π°ΠΏΠ΅Ρ€ Π»Π΅ΠΆΠΈΡ‚ классы Form1. НиТС приводится ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС Π΅Π³ΠΎ свойств ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΊΡ€ΠΎΠΌΠ΅ самых ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Ρ….

void Create (int n, int m, int kolmin)

Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ матСматичСский массив — Π°Π½Π°Π»ΠΎΠ³ массива ΠΊΠ½ΠΎΠΏΠΎΠΊ, ΠΈ Π·Π°Π΄Π°Π΅Ρ‚ Π² Π½Π΅ΠΌ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΌΠΈΠ½, расставляя ΠΏΡ€ΠΈ этом Ρ†ΠΈΡ„Ρ€Ρ‹ Π²ΠΎΠΊΡ€ΡƒΠ³ Π½ΠΈΡ….

void Poi (System:Object^ sender, System: EventArgs^ e)

ВызываСтся ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΊΠΎΠΎΡ€ΠΈΠ½Π°Ρ‚Ρ‹ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ ΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚ Π½Π° ΡΠΎΡΡ‚ояниС ячСйки с Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ Π² ΠΌΠ°Ρ‚СматичСском массивС.

void Poisk (int i, int j)

ВызываСтся ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Poi Π² ΡΠ»ΡƒΡ‡Π°Π΅ наТатия Π½Π° ΠΏΡƒΡΡ‚ΡƒΡŽ ячСйку. Π’ Π½Π΅ΠΉ обрабатывСтся Π΄ΠΎ ΠΊΠ°ΠΊΠΈΡ… ΠΏΠΎΡ€ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ ячСйки, Ссли Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ΅Π» Π²Ρ‹ΠΈΠ³Ρ€Ρ‹ΡˆΡŒ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹ΡˆΡŒ.

pBut

Массив ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° ΡΡ‡Π΅ΠΉΠΊΠΈ.

intm

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ячССк Π½Π° ΠΏΠΎΠ»Π΅ ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ.

intn

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ячССк Π½Π° ΠΏΠΎΠ»Π΅ ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ.

intkolmin

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΌΠΈΠ½ Π½Π° ΠΏΠΎΠ»Π΅.

intcount

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ячССк. УвСличиваСтся ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ ячСйки.int a^[n][m]

Массив Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ячССк.

Π Π°Π±ΠΎΡ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ НиТС ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π²Π°ΠΆΠ½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² класса.

Void Form1_Load (System:Object^ sender, System: EventArgs^ e)

Когда открываСтся ΠΏΡ€ΠΎΡ€Π°ΠΌΠΌΠ°, полям класса ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Π°ΠΌΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ся ΠΈΠ³Ρ€Π°. ΠŸΡ€ΠΈ этом вызываСтся функция Create (), которая создаСт Π² Π°Π½Π°Π»ΠΎΠ³Π΅ динамичСского массива ΠΊΠ½ΠΎΠΏΠΎΠΊ (матСматичСском массивС a Ρ‚ΠΈΠΏΠ° int) ΠΌΠΈΠ½Ρ‹ ΠΈ Ρ€Π°ΡΡΡ‚авляСт Ρ†ΠΈΡ„Ρ€Ρ‹ Π² ΡΡ‚ΠΎΠΌ ΠΆΠ΅ массивС Π² ΡΠΎΠΎΡ‚вСтсятвии с Ρ€Π°ΡΠΏΠΎΠ»Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΠΈΠ½.

Void button1_Click (System:Object^ sender, System: EventArgs^ e)

Запуск Π½ΠΎΠ²ΠΎΠΉ ΠΈΠ³Ρ€Ρ‹. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Form1_Load. Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ слоТности остаСтся Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅, ΠΊΠ°ΠΊΠΈΠΌ Π±Ρ‹Π» Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ этапС ΠΈΠ³Ρ€Ρ‹.

V

oid Π½ΠΎΠ²Π°ΡΠ˜Π³Ρ€Π°ToolStripMenuItem_Click (System:Object^sender, System: EventArgs^ e)

Ѐункция ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Π° с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ.

Void Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊToolStripMenuItem_Click (System:Object^sender, System: EventArgs^ e)

Void слоТнаяToolStripMenuItem_Click (System:Object^ sender, System: EventArgs^ e)

Void Π»ΡŽΠ±ΠΈΡ‚Π΅Π»ΡŒToolStripMenuItem_Click (System:Object^ sender, System: EventArgs^ e)

Π’Ρ‹Π·ΠΎΠ² Π½ΠΎΠ²ΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ соотвСтствСнно с ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ, профСссионал ΠΈ Π»ΡŽΠ±ΠΈΡ‚Π΅Π»ΡŒ. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡŽΡ‚ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΠΈΠ³Ρ€Π΅, ΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ массивы с ΠΏΠΎΠ»ΡΠΌΠΈ класса Form1 описанными Π²Ρ‹ΡˆΠ΅. ΠŸΡ€ΠΈ этом Ρ€Π°Π·ΠΌΠ°Π΅Ρ€ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° измСняСтся Π² ΡΠΎΠΎΡ‚вСтствии с ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля.

Void особыСToolStripMenuItem_Click (System:Object^ sender, System: EventArgs^ e)

Π’Ρ‹Π·ΠΎΠ² Π½ΠΎΠ²ΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ с Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈΠ³Ρ€ΠΎΠΊΠΎΠΌ. Π Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ΡΡ ΠΎΠΊΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Ρ‚Ρ€ΠΈ textBox с label ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ «ΠžΠš» становятся Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌΠΈ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ занСсти свои ΠΏΠ°Ρ€Π°ΠΌΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ «ΠžΠš», Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° новая ΠΈΠ³Ρ€Π° с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ поля, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. ΠœΠ΅Ρ‚ΠΎΠ΄ освобоТдаСт Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΠΈΠ³Ρ€Π΅, ΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ‚ массивы с ΠΏΠΎΠ»ΡΠΌΠΈ класса Form1 Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. ΠŸΡ€ΠΈ этом Ρ€Π°Π·ΠΌΠ°Π΅Ρ€ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° измСняСтся Π² ΡΠΎΠΎΡ‚вСтствии с ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля.

Void button2_Click (System:Object^ sender, System: EventArgs^ e)

ВызываСтся ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ «ΠžΠš». Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ Π½ΠΎΠ²ΠΎΠ΅ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π² ΡΠΎΠΎΡ‚вСтствии с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π² textBox.

Void Π²Ρ‹Ρ…ΠΎΠ΄ToolStripMenuItem_Click (System:Object^ sender, System: EventArgs^ e)

ΠœΠ΅Ρ‚ΠΎΠ΄ класса Form1 обСспСчиваС Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΈΠ³Ρ€Ρ‹.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡŽ ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ установки, достаточно ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘ Π½Π° ΠΆΠ΅ΡΡ‚ΠΊΠΈΠΉ диск ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ любой Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ.

Π’Ρ‹Π²ΠΎΠ΄Ρ‹ ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ курсовой Ρ€ΠΎΠ±ΠΎΡ‚Ρ‹ Π±Ρ‹Π»Π° написана ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π‘Π°ΠΏΠ΅Ρ€, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰Π°Ρ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ трСбованиям эффСктивности. ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½Ρ‹ ΠΈ Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Ρ‹ знания, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ курса «ΠžΡΠ½ΠΎΠ²Ρ‹ программирования ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚мичСскиС языки», Π½Π°Π²Ρ‹ΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ срСдой программирования Microsoft Visual C++, Π±Ρ‹Π» ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ ΠΎΠΏΡ‹Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Windows-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

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

ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° сапСр логичСский

ΠŸΠ Π˜Π›ΠžΠ–Π•ΠΠ˜Π• Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

// dynamicExample. cpp: main project file.

#include «stdafx.h»

#include «Form1.h»

using namespace dynamicExample;

[STAThreadAttribute]

int main (array ^args)

{

// Enabling Windows XP visual effects before any controls are created

Application:EnableVisualStyles ();

Application:SetCompatibleTextRenderingDefault (false);

// Create the main window and run it

Application:Run (gcnew Form1());

return 0;

#pragma once

#include

#include

namespace dynamicExample {

using namespace System;

using namespace System: ComponentModel;

using namespace System: Collections;

using namespace System: Windows:Forms;

using namespace System: Data;

using namespace System: Drawing;

/// Summary for Form1

/// WARNING: If you change the name of this class, you will need to change the

/// 'Resource File Name' property for the managed resource compiler tool

/// associated with all .resx files this class depends on. Otherwise,

/// the designers will not be able to interact properly with localized

/// resources associated with this form.

public ref class Form1: public System: Windows:Forms:Form

{

public:

Form1(void)

{

InitializeComponent ();

//TODO: Add the constructor code here

}

public:

int **a;//[200][200];

int n;

int m;

int kolmin;

int count;

private: System: Windows:Forms:MenuStrip^ menuStrip1;

private: System: Windows:Forms:ToolStripMenuItem^ ΠΈΠ³Ρ€Π°ToolStripMenuItem;

private: System: Windows:Forms:ToolStripMenuItem^ Π½ΠΎΠ²Π°ΡΠ˜Π³Ρ€Π°ToolStripMenuItem;

private: System: Windows:Forms:ToolStripMenuItem^ Π²Ρ‹Ρ…ΠΎΠ΄ToolStripMenuItem;

private: System: Windows:Forms:TextBox^ textBox1;

private: System: Windows:Forms:TextBox^ textBox2;

private: System: Windows:Forms:TextBox^ textBox3;

private: System: Windows:Forms:Label^ label1;

private: System: Windows:Forms:Button^ button1;

private: System: Windows:Forms:Label^ label2;

private: System: Windows:Forms:Label^ label3;

private: System: Windows:Forms:ToolStripMenuItem^ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒToolStripMenuItem;

private: System: Windows:Forms:ToolStripMenuItem^ Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊToolStripMenuItem;

private: System: Windows:Forms:ToolStripMenuItem^ Π»Π±ΠΈΡ‚Π΅Π»ΡŒToolStripMenuItem;

private: System: Windows:Forms:ToolStripMenuItem^ профСссионалToolStripMenuItem;

private: System: Windows:Forms:ToolStripMenuItem^ особыСToolStripMenuItem;

private: System: Windows:Forms:Button^ button2;

public:

array^ pBut;

protected:

/// Clean up any resources being used.

~Form1()

{

if (components)

{

delete components;

}

}

protected:

private:

/// Required designer variable.

System:ComponentModel:Container ^components;

#pragma region Windows Form+ Designer generated code

/// Required method for Designer support — do not modify

/// the contents of this method with the code editor.

void InitializeComponent (void)

{

System:ComponentModel:ComponentResourceManager^ resources = (gcnew System: ComponentModel:ComponentResourceManager (Form1:typeid));

this->menuStrip1 = (gcnew System: Windows:Forms:MenuStrip ());

this->ΠΈΠ³Ρ€Π°ToolStripMenuItem = (gcnew System: Windows:Forms:ToolStripMenuItem ());

this->Π½ΠΎΠ²Π°ΡΠ˜Π³Ρ€Π°ToolStripMenuItem = (gcnew System: Windows:Forms:ToolStripMenuItem ());

this->Π²Ρ‹Ρ…ΠΎΠ΄ToolStripMenuItem = (gcnew System: Windows:Forms:ToolStripMenuItem ());

this->ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒToolStripMenuItem = (gcnew System: Windows:Forms:ToolStripMenuItem ());

this->Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊToolStripMenuItem = (gcnew System: Windows:Forms:ToolStripMenuItem ());

this->Π»Π±ΠΈΡ‚Π΅Π»ΡŒToolStripMenuItem = (gcnew System: Windows:Forms:ToolStripMenuItem ());

this->профСссионалToolStripMenuItem = (gcnew System: Windows:Forms:ToolStripMenuItem ());

this->особыСToolStripMenuItem = (gcnew System: Windows:Forms:ToolStripMenuItem ());

this->textBox1 = (gcnew System: Windows:Forms:TextBox ());

this->textBox2 = (gcnew System: Windows:Forms:TextBox ());

this->textBox3 = (gcnew System: Windows:Forms:TextBox ());

this->label1 = (gcnew System: Windows:Forms:Label ());

this->button1 = (gcnew System: Windows:Forms:Button ());

this->label2 = (gcnew System: Windows:Forms:Label ());

this->label3 = (gcnew System: Windows:Forms:Label ());

this->button2 = (gcnew System: Windows:Forms:Button ());

this->menuStrip1->SuspendLayout ();

this->SuspendLayout ();

// menuStrip1

this->menuStrip1->Items->AddRange (gcnew cli: array< System: Windows:Forms:ToolStripItem^ >(2) {this->ΠΈΠ³Ρ€Π°ToolStripMenuItem,

this->ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒToolStripMenuItem});

this->menuStrip1->Location = System: Drawing:Point (0, 0);

this->menuStrip1->Name = L" menuStrip1″ ;

this->menuStrip1->Padding = System: Windows:Forms:Padding (8, 2, 0, 2);

this->menuStrip1->Size = System: Drawing:Size (617, 26);

this->menuStrip1->TabIndex = 4;

this->menuStrip1->Text = L" menuStrip1″ ;

// ΠΈΠ³Ρ€Π°ToolStripMenuItem

this->ΠΈΠ³Ρ€Π°ToolStripMenuItem->DropDownItems->AddRange (gcnew cli: array< System: Windows:Forms:ToolStripItem^ >(2) {this->Π½ΠΎΠ²Π°ΡΠ˜Π³Ρ€Π°ToolStripMenuItem,

this->Π²Ρ‹Ρ…ΠΎΠ΄ToolStripMenuItem});

this->ΠΈΠ³Ρ€Π°ToolStripMenuItem->Name = L" ΠΈΠ³Ρ€Π°ToolStripMenuItem" ;

this->ΠΈΠ³Ρ€Π°ToolStripMenuItem->Size = System: Drawing:Size (52, 22);

this->ΠΈΠ³Ρ€Π°ToolStripMenuItem->Text = L" Π˜Π³Ρ€Π°" ;

// Π½ΠΎΠ²Π°ΡΠ˜Π³Ρ€Π°ToolStripMenuItem

this->Π½ΠΎΠ²Π°ΡΠ˜Π³Ρ€Π°ToolStripMenuItem->Name = L" Π½ΠΎΠ²Π°ΡΠ˜Π³Ρ€Π°ToolStripMenuItem" ;

this->Π½ΠΎΠ²Π°ΡΠ˜Π³Ρ€Π°ToolStripMenuItem->Size = System: Drawing:Size (168, 22);

this->Π½ΠΎΠ²Π°ΡΠ˜Π³Ρ€Π°ToolStripMenuItem->Text = L" Новая ΠΈΠ³Ρ€Π°" ;

this->Π½ΠΎΠ²Π°ΡΠ˜Π³Ρ€Π°ToolStripMenuItem->Click += gcnew System: EventHandler (this, &Form1:Π½ΠΎΠ²Π°ΡΠ˜Π³Ρ€Π°ToolStripMenuItem_Click);

// Π²Ρ‹Ρ…ΠΎΠ΄ToolStripMenuItem

this->Π²Ρ‹Ρ…ΠΎΠ΄ToolStripMenuItem->Name = L" Π²Ρ‹Ρ…ΠΎΠ΄ToolStripMenuItem" ;

this->Π²Ρ‹Ρ…ΠΎΠ΄ToolStripMenuItem->Size = System: Drawing:Size (168, 22);

this->Π²Ρ‹Ρ…ΠΎΠ΄ToolStripMenuItem->Text = L" Π’Ρ‹Ρ…ΠΎΠ΄" ;

this->Π²Ρ‹Ρ…ΠΎΠ΄ToolStripMenuItem->Click += gcnew System: EventHandler (this, &Form1:Π²Ρ‹Ρ…ΠΎΠ΄ToolStripMenuItem_Click);

// ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒToolStripMenuItem

this->ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒToolStripMenuItem->DropDownItems->AddRange (gcnew cli: array< System: Windows:Forms:ToolStripItem^ >(4) {this->Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊToolStripMenuItem,

this->Π»Π±ΠΈΡ‚Π΅Π»ΡŒToolStripMenuItem, this->профСссионалToolStripMenuItem, this->особыСToolStripMenuItem});

this->ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒToolStripMenuItem->Name = L" ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒToolStripMenuItem" ;

this->ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒToolStripMenuItem->Size = System: Drawing:Size (77, 22);

this->ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒToolStripMenuItem->Text = L" Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ" ;

// Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊToolStripMenuItem

this->Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊToolStripMenuItem->Name = L" Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊToolStripMenuItem" ;

this->Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊToolStripMenuItem->Size = System: Drawing:Size (191, 22);

this->Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊToolStripMenuItem->Text = L" Новичок" ;

this->Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊToolStripMenuItem->Click += gcnew System: EventHandler (this, &Form1:Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊToolStripMenuItem_Click);

// Π»Π±ΠΈΡ‚Π΅Π»ΡŒToolStripMenuItem

this->Π»Π±ΠΈΡ‚Π΅Π»ΡŒToolStripMenuItem->Name = L" Π»Π±ΠΈΡ‚Π΅Π»ΡŒToolStripMenuItem" ;

this->Π»Π±ΠΈΡ‚Π΅Π»ΡŒToolStripMenuItem->Size = System: Drawing:Size (191, 22);

this->Π»Π±ΠΈΡ‚Π΅Π»ΡŒToolStripMenuItem->Text = L" Π›Π±ΠΈΡ‚Π΅Π»ΡŒ" ;

this->Π»Π±ΠΈΡ‚Π΅Π»ΡŒToolStripMenuItem->Click += gcnew System: EventHandler (this, &Form1:Π»Π±ΠΈΡ‚Π΅Π»ΡŒToolStripMenuItem_Click);

// профСссионалToolStripMenuItem

this->профСссионалToolStripMenuItem->Name = L" профСссионалToolStripMenuItem" ;

this->профСссионалToolStripMenuItem->Size = System: Drawing:Size (191, 22);

this->профСссионалToolStripMenuItem->Text = L" ΠŸΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»" ;

this->профСссионалToolStripMenuItem->Click += gcnew System: EventHandler (this, &Form1:профСссионалToolStripMenuItem_Click);

// особыСToolStripMenuItem

this->особыСToolStripMenuItem->Name = L" особыСToolStripMenuItem" ;

this->особыСToolStripMenuItem->Size = System: Drawing:Size (191, 22);

this->особыСToolStripMenuItem->Text = L" ΠžΡΠΎΠ±Ρ‹Π΅" ;

this->особыСToolStripMenuItem->Click += gcnew System: EventHandler (this, &Form1:особыСToolStripMenuItem_Click);

// textBox1

this->textBox1->Location = System: Drawing:Point (6, 492);

this->textBox1->Margin = System: Windows:Forms:Padding (4);

this->textBox1->Name = L" textBox1″ ;

this->textBox1->Size = System: Drawing:Size (54, 22);

this->textBox1->TabIndex = 5;

// textBox2

this->textBox2->Location = System: Drawing:Point (135, 492);

this->textBox2->Margin = System: Windows:Forms:Padding (4);

this->textBox2->Name = L" textBox2″ ;

this->textBox2->Size = System: Drawing:Size (56, 22);

this->textBox2->TabIndex = 6;

// textBox3

this->textBox3->Location = System: Drawing:Point (255, 491);

this->textBox3->Margin = System: Windows:Forms:Padding (4);

this->textBox3->Name = L" textBox3″ ;

this->textBox3->Size = System: Drawing:Size (60, 22);

this->textBox3->TabIndex = 7;

// label1

this->label1->AutoSize = true;

this->label1->Location = System: Drawing:Point (3, 471);

this->label1->Margin = System: Windows:Forms:Padding (4, 0, 4, 0);

this->label1->Name = L" label1″ ;

this->label1->Size = System: Drawing:Size (57, 17);

this->label1->TabIndex = 8;

this->label1->Text = L" Высота" ;

// button1

this->button1->Location = System: Drawing:Point (6, 29);

this->button1->Name = L" button1″ ;

this->button1->Size = System: Drawing:Size (117, 38);

this->button1->TabIndex = 9;

this->button1->Text = L" New Game" ;

this->button1->UseVisualStyleBackColor = true;

this->button1->Click += gcnew System: EventHandler (this, &Form1:button1_Click1);

// label2

this->label2->AutoSize = true;

this->label2->Location = System: Drawing:Point (132, 470);

this->label2->Name = L" label2″ ;

this->label2->Size = System: Drawing:Size (59, 17);

this->label2->TabIndex = 10;

this->label2->Text = L" Π¨ΠΈΡ€ΠΈΠ½Π°" ;

// label3

this->label3->AutoSize = true;

this->label3->Location = System: Drawing:Point (252, 471);

this->label3->Name = L" label3″ ;

this->label3->Size = System: Drawing:Size (78, 17);

this->label3->TabIndex = 11;

this->label3->Text = L" Число мин" ;

// button2

this->button2->Location = System: Drawing:Point (355, 471);

this->button2->Name = L" button2″ ;

this->button2->Size = System: Drawing:Size (46, 43);

this->button2->TabIndex = 12;

this->button2->Text = L" ОК" ;

this->button2->UseVisualStyleBackColor = true;

this->button2->Click += gcnew System: EventHandler (this, &Form1:button2_Click);

// Form1

this->AutoScaleDimensions = System: Drawing:SizeF (8, 16);

this->AutoScaleMode = System: Windows:Forms:AutoScaleMode:Font;

this->AutoSizeMode = System: Windows:Forms:AutoSizeMode:GrowAndShrink;

this->BackColor = System: Drawing:SystemColors:ActiveCaptionText;

this->BackgroundImage = (cli:safe_cast (resources->GetObject (L" $this.BackgroundImage")));

this->ClientSize = System: Drawing:Size (617, 526);

this->Controls->Add (this->button2);

this->Controls->Add (this->label3);

this->Controls->Add (this->label2);

this->Controls->Add (this->button1);

this->Controls->Add (this->label1);

this->Controls->Add (this->textBox3);

this->Controls->Add (this->textBox2);

this->Controls->Add (this->textBox1);

this->Controls->Add (this->menuStrip1);

this->MainMenuStrip = this->menuStrip1;

this->Margin = System: Windows:Forms:Padding (4);

this->Name = L" Form1″ ;

this->Text = L" Π‘Π°ΠΏΠ΅Ρ€" ;

this->Load += gcnew System: EventHandler (this, &Form1:Form1_Load);

this->menuStrip1->ResumeLayout (false);

this->menuStrip1->PerformLayout ();

this->ResumeLayout (false);

this->PerformLayout ();

}

#pragma endregion

//private: System: Void button1_Click (System:Object^ sender, System: EventArgs^ e) {

// }

public:void Create (int n, int m, int k1)

{

int i, j;

for (i=0;i

{

for (j=0;j

{

a[i][j]=0;

}

}

int k=0;

srand (time (NULL));

do {

int i=rand ()%n;

int j=rand ()%m;

if (a[i][j]≠9)

{ a[i][j]=9; k++;

for (int i1=i-1;i1<=i+1; i1++)

for (int j1=j-1;j1<=j+1; j1++)

if ((i1>=0) && (j1>=0) && (i1

&& (a[i1][j1]≠9)) a[i1][j1]++;

}

} while (k≠k1);

}

public: void Poisk (int i, int j)

{

if (a[i][j]<10)

{

if (a[i][j]==0)

{

a[i][j]+=10;

if ((i+1)

if ((j+1)

if ((i-1)>=0) Poisk (i-1,j);

if ((j-1)>=0) Poisk (i, j-1);

if ((i+1)=0) Poisk (i+1,j-1);

if ((i+1)

if ((i-1)>=0 && (j+1)

if ((i-1)>=0 &&(j-1)>=0) Poisk (i-1,j-1);

}else a[i][j]+=10;

}

}

public: void Poi (System:Object^ sender, System: EventArgs^ e)

{ System: Windows:Forms:Button^ butt = gcnew System: Windows:Forms:Button ();

butt=((Button^)sender);

String^ s=((Button^)sender)->Tag->ToString () ;

int k = Convert: ToInt32(s);

int i=k/m;

int j=k%m;

if (a[i][j]==9)

{

butt->Image=System:Drawing:Image:FromFile (L" 4. bmp");

for (int i=0;i

for (int j=0; j

{ int k1=i*m+j;

if (a[i][j]==9)

{

this->pBut[k1]->Image=System:Drawing:Image:FromFile (L" 4. bmp");

}

if ((a[i][j]>0) && (a[i][j]<9))

this->pBut[k1]->Text=a[i][j]. ToString ();

if (a[i][j]==0) //this->pBut[k1]->Visible=false;

this->pBut[k1]->Image=System:Drawing:Image:FromFile (L" 0. bmp");

}

MessageBox:Show («Π’Ρ‹ ΠΏΡ€ΠΎΠΈΠ³Ρ€Π°Π»ΠΈ», «ΠŸΡ€ΠΎΠΈΠ³Ρ€Ρ‹Ρˆ» ,

MessageBoxButtons:OK, MessageBoxIcon: Exclamation);

}

else

if ((a[i][j]>0)&& (a[i][j]<9))

{

butt->Text=a[i][j]. ToString ();

count++;

if (count==(n*m-kolmin))

{

MessageBox:Show («Π’Ρ‹ Π²Ρ‹ΠΈΠ³Ρ€Π°Π»ΠΈ», «WIN» ,

MessageBoxButtons:OK, MessageBoxIcon: Exclamation);

}

}

else

{

Poisk (i, j);

for (int i=0;i

for (int j=0; j

{

int k1=i*m+j;

if (a[i][j]>10)

{

a[i][j]-=10;

this->pBut[k1]->Text=a[i][j]. ToString ();

count++;

}

if (a[i][j]==10) //this->pBut[k1]->Visible=false;

{

this->pBut[k1]->Image=System:Drawing:Image:FromFile (L" 0. bmp");

count++;

}

}

if (count==(n*m-kolmin))

{

MessageBox:Show («Π’Ρ‹ Π²Ρ‹ΠΈΠ³Ρ€Π°Π»ΠΈ», «WIN» ,

MessageBoxButtons:OK, MessageBoxIcon: Exclamation);

}

}

}

//private: System: Void button2_Click (System:Object^ sender, System: EventArgs^ e) {

// }

//private: System: Void dynam_button_Click (System:Object^ sender, System: EventArgs^ e) {

// MessageBox: Show («Π’Ρ‹ Π½Π°ΠΆΠ°Π»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡƒ.», «Π£Ρ€Π°» ,

// MessageBoxButtons: OK, MessageBoxIcon: Exclamation);

// }

//private: System: Void button3_Click (System:Object^ sender, System: EventArgs^ e) {

// }

private: System: Void Form1_Load (System:Object^ sender, System: EventArgs^ e) {

n=8;

m=9;

label1->Visible=false;

label2->Visible=false;

label3->Visible=false;

textBox1->Visible=false;

textBox2->Visible=false;

textBox3->Visible=false;

button2->Visible=false;

this->Width=m*25+40;

this->Height=n*25+150;

kolmin=5;

count=0;

a=new int*[200];

for (int i=0;i<200;++i)

a[i]=new int[200];

pBut = gcnew array (n*m);//создали динамичСский массив ΠΊΠ½ΠΎΠΏΠΎΠΊ. Π‘ΠΊΠΎΠ±ΠΊΠΈ ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅!

int k;

for (int i=0;i

{

for (int j=0; j

{k=i*m+j;

pBut[k] = gcnew System: Windows:Forms:Button ();

pBut[k]->Visible = true;

pBut[k]->Location = System: Drawing:Point (1+(j*25), 80+(i*25));

pBut[k]->Size = System: Drawing:Size (25, 25);

//int^ number = gcnew int (i*m + j);

int number=(i*m + j);

pBut[k]->Tag = number;

pBut[k]->Text=number.ToString ();

pBut[k]->Click += gcnew System: EventHandler (this, &Form1:Poi);

//pBut[i, j]->Text=(i*m + j)->ToString ();

this->Controls->Add (pBut[k]);//этот класс ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π²ΠΈΠ΄ Ρ„ΠΎΡ€ΠΌΡ‹. Π•Π»ΠΈ Ρ‚ΡƒΠ΄Π° Π½Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ-ΠΊΠ½ΠΎΠΏΠΎΠΊ Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ

}

}

Create (n, m, kolmin);

}

private: System: Void Π½ΠΎΠ²Π°ΡΠ˜Π³Ρ€Π°ToolStripMenuItem_Click (System:Object^ sender, System: EventArgs^ e)

{

label1->Visible=false;

label2->Visible=false;

label3->Visible=false;

textBox1->Visible=false;

textBox2->Visible=false;

textBox3->Visible=false;

button2->Visible=false;

int n1, m1;

n1=n;

m1=m;

count=0;

this->Width=m*25+40;

this->Height=n*25+150;

for (int i=0;i

this->Controls->Remove (pBut[i]);

delete[]pBut;

//this->Controls->Remove;

pBut = gcnew array (n*m);//создали динамичСский массив ΠΊΠ½ΠΎΠΏΠΎΠΊ. Π‘ΠΊΠΎΠ±ΠΊΠΈ ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅!

int k;

for (int i=0;i

{

for (int j=0; j

{

k=i*m+j;

pBut[k] = gcnew System: Windows:Forms:Button ();

pBut[k]->Visible = true;

pBut[k]->Location = System: Drawing:Point (1+(j*25), 80+(i*25));

pBut[k]->Size = System: Drawing:Size (25, 25);

int number=(i*m + j);

pBut[k]->Tag = number;

pBut[k]->Click += gcnew System: EventHandler (this, &Form1:Poi);

this->Controls->Add (pBut[k]);//этот класс ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π²ΠΈΠ΄ Ρ„ΠΎΡ€ΠΌΡ‹. Π•Π»ΠΈ Ρ‚ΡƒΠ΄Π° Π½Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ-ΠΊΠ½ΠΎΠΏΠΎΠΊ Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ

}

}

Create (n, m, kolmin);

}

private: System: Void Π²Ρ‹Ρ…ΠΎΠ΄ToolStripMenuItem_Click (System:Object^ sender, System: EventArgs^ e) {

Close ();

}

private: System: Void button1_Click1(System:Object^ sender, System: EventArgs^ e) {

label1->Visible=false;

label2->Visible=false;

label3->Visible=false;

textBox1->Visible=false;

textBox2->Visible=false;

textBox3->Visible=false;

button2->Visible=false;

count=0;

this->Width=m*25+40;

this->Height=n*25+150;

for (int i=0;i

this->Controls->Remove (pBut[i]);

delete[]pBut;

//this->Controls->Remove;

pBut = gcnew array (n*m);//создали динамичСский массив ΠΊΠ½ΠΎΠΏΠΎΠΊ. Π‘ΠΊΠΎΠ±ΠΊΠΈ ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅!

int k;

for (int i=0;i

{

for (int j=0; j

{

k=i*m+j;

pBut[k] = gcnew System: Windows:Forms:Button ();

pBut[k]->Visible = true;

pBut[k]->Location = System: Drawing:Point (1+(j*25), 80+(i*25));

pBut[k]->Size = System: Drawing:Size (25, 25);

int number=(i*m + j);

pBut[k]->Tag = number;

pBut[k]->Click += gcnew System: EventHandler (this, &Form1:Poi);

this->Controls->Add (pBut[k]);//этот класс ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π²ΠΈΠ΄ Ρ„ΠΎΡ€ΠΌΡ‹. Π•Π»ΠΈ Ρ‚ΡƒΠ΄Π° Π½Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ-ΠΊΠ½ΠΎΠΏΠΎΠΊ Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ

}

}

Create (n, m, kolmin);

}

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