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

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ модуля для расчСта основных гСомСтричСских характСристик Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°

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

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ «Edit» — прСдставляСт собой ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°/рСдактирования строки символов. ОсновноС Π΅Π³ΠΎ свойство Text — тСкст, находящийся Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ирования. Π­Ρ‚ΠΎ свойство ΠΈΠΌΠ΅Π΅Ρ‚ строковый Ρ‚ΠΈΠΏ AnsiString. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ Π² Edit Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ число, Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅. ΠšΡ€ΠΎΠΌΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ StrToInt Π΅ΡΡ‚ΡŒ обратная ΠΊ Π½Π΅ΠΉ IntToStr. Они пСрСводят строку Π² Ρ†Π΅Π»ΠΎΠ΅… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

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

ΠœΠ˜ΠΠ˜Π‘Π’Π•Π Π‘Π’Π’Πž ΠžΠ‘Π ΠΠ—ΠžΠ’ΠΠΠ˜Π― И ΠΠΠ£ΠšΠ˜ Π ΠžΠ‘Π‘Π˜Π™Π‘ΠšΠžΠ™ Π€Π•Π”Π•Π ΠΠ¦Π˜Π˜ Брянский государствСнный тСхничСский унивСрситСт Π£Ρ‡Π΅Π±Π½ΠΎ-Π½Π°ΡƒΡ‡Π½Ρ‹ΠΉ тСхнологичСский институт ΠšΠ°Ρ„Π΅Π΄Ρ€Π° «ΠΠ²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ тСхнологичСскиС систСмы»

ΠšΠ£Π Π‘ΠžΠ’ΠžΠ™ ΠŸΠ ΠžΠ•ΠšΠ’ По Π΄ΠΈΡΡ†ΠΈΠΏΠ»ΠΈΠ½Π΅

" ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅"

Π ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ ΠœΠ°Ρ‚Π»Π°Ρ…ΠΎΠ² Π’.П.

Π‘Ρ‚ΡƒΠ΄Π΅Π½Ρ‚ Π‘Ρ€Ρ‹Π»Π΅Π² Π’.Π’.

Брянск 2013

Аннотация

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

  • Аннотация
  • Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅
  • 1. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ постановка ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ
  • 2. Атрибуты ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅
  • 2.1 Алгоритм Π²Π²ΠΎΠ΄Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ…
  • 2.2 ОписаниС ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ создания Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ…
  • 3.1 ΠžΠ±Ρ‰ΠΈΠ΅ свСдСния
  • 3.2 Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ классов
  • 3.3 ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρ‹
  • 3.4 НаслСдованиС
  • 4. РСализация Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ
  • 5. Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° UML
  • 5.1 ΠžΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ классами
  • 5.2 Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° дСйствия
  • 6. Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…
  • Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅
  • Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹
  • ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ

Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€Π°ΠΊΡ‚ичСскоС освоСниС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ ΡΡ€Π΅Π΄ΡΡ‚Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½Ρ‹Ρ…, пСрспСктивных ΠΈ Π±ΡƒΡ€Π½ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ…ΡΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ программирования, ΡΠ²Π»ΡΡŽΡ‰Π΅ΠΉΡΡ Π² Π½Π°ΡΡ‚оящСС врСмя Π±Π°Π·ΠΎΠΉ для создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… систСм ΠΈ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ образования программиста-профСссионала.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ Π² Π΄Π°Π½Π½ΠΎΠΉ курсовой Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для расчСта основных гСомСтричСских характСристик Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°, графичСского прСдставлСния Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° Π½Π° ΡΠΊΡ€Π°Π½Π΅, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° Π½Π° Ρ€Π°Π²Π΅Π½ΡΡ‚Π²ΠΎ сторон.

1. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ постановка ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ

НСобходимо Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΡƒΡŽ класс Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, Ρ‡Π»Π΅Π½Ρ‹ класса — ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ 3-Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ. ΠŸΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² ΠΊΠ»Π°ΡΡΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ сущСствования Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°, вычислСния ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° свСдСний ΠΎ Ρ„ΠΈΠ³ΡƒΡ€Π΅ — Π΄Π»ΠΈΠ½Ρ‹ сторон, ΡƒΠ³Π»Ρ‹, ΠΏΠ΅Ρ€ΠΈΠΌΠ΅Ρ‚Ρ€, ΠΏΠ»ΠΎΡ‰Π°Π΄ΡŒ. Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΉ класс — равносторонний Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² ΠΊΠ»Π°ΡΡΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ, являСтся Π»ΠΈ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ равносторонним.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΡΠΊΠ°Ρ‚ΡŒ количСство Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ² с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ»ΠΎΡ‰Π°Π΄ΡŒΡŽ ΠΈ Ρ€Π°Π²Π½ΠΎΡΡ‚ΠΎΡ€ΠΎΠ½Π½ΠΈΠΉ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ с Π½Π°ΠΈΠΌΠ΅Π½ΡŒΡˆΠ΅ΠΉ биссСктрисой.

2. Атрибуты ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅

2.1 Алгоритм Π²Π²ΠΎΠ΄Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ…

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹:

1) Label

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚" Label" (Рис. 1) — ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Π²Ρ‹Π²ΠΎΠ΄Π° тСкста Π½Π° ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡ‹. Бвойства ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Π²ΠΈΠ΄ ΠΈ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ тСкста.

Бвойства ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Π²ΠΈΠ΄ ΠΈ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ тСкста.

Name — имя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ для доступа ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ ΠΈ Π΅Π³ΠΎ свойствам.

Рис. 1. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Label Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

Caption — ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ тСкст.

LΠ΅ft — расстояниС ΠΎΡ‚ Π»Π΅Π²ΠΎΠΉ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ поля Π²Ρ‹Π²ΠΎΠ΄Π° Π΄ΠΎ Π»Π΅Π²ΠΎΠΉ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Ρ„ΠΎΡ€ΠΌΡ‹.

Top — расстояниС ΠΎΡ‚ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ поля Π²Ρ‹Π²ΠΎΠ΄Π° Π΄ΠΎ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Ρ„ΠΎΡ€ΠΌΡ‹.

Height — высота поля Π²Ρ‹Π²ΠΎΠ΄Π°.

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Label сдСланы Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ надписи, Π²Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΈ ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠΉ.

2) Edit

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ «Edit» — прСдставляСт собой ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°/рСдактирования строки символов. ОсновноС Π΅Π³ΠΎ свойство Text — тСкст, находящийся Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ирования. Π­Ρ‚ΠΎ свойство ΠΈΠΌΠ΅Π΅Ρ‚ строковый Ρ‚ΠΈΠΏ AnsiString. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ Π² Edit Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ число, Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅. ΠšΡ€ΠΎΠΌΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ StrToInt Π΅ΡΡ‚ΡŒ обратная ΠΊ Π½Π΅ΠΉ IntToStr. Они пСрСводят строку Π² Ρ†Π΅Π»ΠΎΠ΅ число ΠΈ Ρ†Π΅Π»ΠΎΠ΅ число Π² ΡΡ‚Ρ€ΠΎΠΊΡƒ соотвСтствСнно. ΠšΡ€ΠΎΠΌΠ΅ этой ΠΏΠ°Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ имССтся ΠΏΠ°Ρ€Π° StrToFloat ΠΈ FloatToStr, ΠΊΠΎΡ‚Ρ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с Π²Π΅Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΌΠΈ числами. ОсновноС событиС для Edit — это Change. Π’ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ свойства Text.

Бвойства ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°:

Name — имя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ для доступа ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ ΠΈ Π΅Π³ΠΎ свойствам, Π² Ρ‡Π°ΡΡ‚ности — для доступа ΠΊ Ρ‚Сксту, Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡƒ Π² ΠΏΠΎΠ»Π΅ рСдактирования.

Text — Ρ‚ Π΅ΠΊΡΡ‚, находящийся Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ирования.

Height — высота поля

Width — ΡˆΠΈΡ€ΠΈΠ½Π° поля

Font — ΡˆΡ€ΠΈΡ„Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для отобраТСния Π²Π²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ тСкста

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Edit Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π²Π²ΠΎΠ΄ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚.

ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°Ρ‰ΠΈΡ‚Π° Рис. 2. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Edit Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

Button

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Button прСдставляСт собой ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ.

Бвойства ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°:

Name — ΠΈ ΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ для доступа ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ ΠΈ Π΅Π³ΠΎ свойствам

Caption — тСкст Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅

Height — высота ΠΊΠ½ΠΎΠΏΠΊΠΈ

Width — ΡˆΠΈΡ€ΠΈΠ½Π° ΠΊΠ½ΠΎΠΏΠΊΠΈ

Enabled — ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ доступности ΠΊΠ½ΠΎΠΏΠΊΠΈ. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства Ρ€Π°Π²Π½ΠΎ true, Ρ‚ΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ° доступна. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства Ρ€Π°Π²Π½ΠΎ false, Ρ‚ΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ° Π½Π΅ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‰Π΅Π»Ρ‡ΠΊΠ° Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ событиС click Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ visible ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΡΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ (false) ΠΈΠ»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π΅ Π²ΠΈΠ΄ΠΈΠΌΠΎΠΉ (true)

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Button производится расчёт ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ„ΠΈΠ³ΡƒΡ€Ρ‹, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π°, являСтся Π»ΠΈ Ρ„ΠΈΠ³ΡƒΡ€Π° Ρ€ΠΎΠΌΠ±ΠΎΠΌ, Ρ‚Π°ΠΊ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ случайных Ρ„ΠΈΠ³ΡƒΡ€ ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Π² Ρ„Π°ΠΉΠ».

Рис. 3. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Button Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

3) Image

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Image прСдставляСт собой ΠΏΠΎΠ»Π΅ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π° Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ панСль ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Рис. 4. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Image Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

Name — имя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ для доступа ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ ΠΈ Π΅Π³ΠΎ свойствам

Height — высота поля

Width — ΡˆΠΈΡ€ΠΈΠ½Π° поля Π’ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Image Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ прСдставляСтся Ρ„ΠΈΠ³ΡƒΡ€Π°, ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Π²Π΅Π΄Π΅Π½Ρ‹ Π² ΠΏΠΎΠ»Ρ Edit1-Edit6.

4) ComboBox

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ «ComboBox» — Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ввСсти Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΏΠΎΠ»Π΅ рСдактирования ΠΏΡƒΡ‚Π΅ΠΌ Π½Π°Π±ΠΎΡ€Π° Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅ ΠΈΠ»ΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°. Для заполнСния ComboBox’Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ свойтво Items->Add (Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ списка — массив строк (Π½ΡƒΠΌΠ΅Ρ€ΡƒΡŽΡ‚ΡΡ с Π½ΡƒΠ»Ρ)). Π’Π°ΠΊΠΆΠ΅ Π² Π΄Π°Π½Π½ΠΎΠΉ курсовой Ρ€Π°Π±ΠΎΡ‚Π΅ использовалось свойство Itemlndex — НомСр элСмСнта, Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ Π² ΡΠΏΠΈΡΠΊΠ΅. Если Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ² списка Π½Π΅ Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½, Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства Ρ€Π°Π²Π½ΠΎ минус 2.

Рис. 5. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ComboBox Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

2.2 ОписаниС ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ создания Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ…

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

Для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ записи ΠΈ Ρ‡Ρ‚Сния Ρ„Π°ΠΉΠ»Π° Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ классы Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° fstream.

Fstream — созданиС Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° для чтСния ΠΈ Π΄Π»Ρ записи Π΄Π°Π½Π½Ρ‹Ρ… (Π΄Π²ΡƒΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ ΠΎΠ±ΠΌΠ΅Π½).

Π’ΠΈΠΏΡ‹ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ согласованы Π²ΠΎ Π²ΡΠ΅Ρ… ΠΈΡ… ΠΎΠΏΠΈΡΠ°Π½ΠΈΡΡ…. Π”ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ согласован ΠΏΠΎ Ρ‚ΠΈΠΏΠ°ΠΌ ΠΈ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ тСкст, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ транслятором, ΠΈ ΡΠ²ΡΠ·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π•ΡΡ‚ΡŒ простой, хотя ΠΈ Π½Π΅ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹ΠΉ, способ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ согласованности описаний Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… — Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²ΠΎ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, содСрТащиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½Ρ‹Ρ…, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. БрСдством Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ тСкстов слуТит ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Π° #include, которая позволяСт ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π² ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» (Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ трансляции) нСсколько исходных Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Команда

#include «Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΉ-Ρ„Π°ΠΉΠ»»

замСняСт строку, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½Π° Π±Ρ‹Π»Π° Π·Π°Π΄Π°Π½Π°, Π½Π° ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Ρ„Π°ΠΉΠ»Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΉ-Ρ„Π°ΠΉΠ». ЕстСствСнно, это содСрТимоС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ тСкстом Π½Π° Π‘++, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΅Π³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ транслятор. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, опСрация Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ рСализуСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ прСпроцСссором Π‘++. Она вызываСтся систСмой программирования ΠΏΠ΅Ρ€Π΅Π΄ собствСнно трансляциСй для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Π°ΠΊΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ Π²ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΌ тСкстС [7, c.99].

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈΠ· ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ:

1. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» #include содСрТащий описаниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ.

2. ΠŸΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ ΠΈ ΠΎΡ‡ΠΈΡΡ‚ΠΊΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: ios: app (ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ» Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ записи Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΊΠΎΠ½Π΅Ρ† Ρ„Π°ΠΉΠ»Π°) ΠΈ ios: trunc) (очистка Ρ„Π°ΠΉΠ»Π°).

3. ОписаниС ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ формирования структуры классов

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

ΠšΠ»Π°ΡΡΡ‹ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² Π‘++ ΡΠ²Π»ΡΡŽΡ‚ΡΡ основными концСпциями ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования — ООП. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ — Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ структурного программирования, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ основными концСпциями ΡΠ²Π»ΡΡŽΡ‚ΡΡ понятия классов ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ОсновноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ языка программирования Π‘++ ΠΎΡ‚ Π‘ ΡΠΎΡΡ‚ΠΎΠΈΡ‚ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² Π‘ Π½Π΅Ρ‚Ρƒ классов, Π° ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ язык Π‘ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ООП, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π‘++.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, для Ρ‡Π΅Π³ΠΎ ΠΆΠ΅ Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½ΡƒΠΆΠ½Ρ‹ классы, ΠΏΡ€ΠΎΠ²Π΅Π΄Ρ‘ΠΌ аналогию с ΠΊΠ°ΠΊΠΈΠΌ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ ΠΈΠ· ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄ΠΎΠΌ. ВСлосипСд — это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» построСн согласно Ρ‡Π΅Ρ€Ρ‚Π΅ΠΆΠ°ΠΌ. Π’Π°ΠΊ Π²ΠΎΡ‚, эти самыС Ρ‡Π΅Ρ€Ρ‚Π΅ΠΆΠΈ ΠΈΠ³Ρ€Π°ΡŽΡ‚ Ρ€ΠΎΠ»ΡŒ классов Π² ΠžΠžΠŸ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ классы — это Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ описания, схСмы, Ρ‡Π΅Ρ€Ρ‚Π΅ΠΆΠΈ ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ясно, Ρ‡Ρ‚ΠΎ для создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² ΠžΠžΠŸ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ сначала ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Ρ‚Π΅ΠΆΠΈ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ классы. ΠšΠ»Π°ΡΡΡ‹ ΠΈΠΌΠ΅ΡŽΡ‚ свои Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ класса. ΠŸΠ΅Ρ€Π΅Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ вСлосипСда осущСствляСтся Π·Π° ΡΡ‡Ρ‘Ρ‚ вращСния ΠΏΠ΅Π΄Π°Π»Π΅ΠΉ, Ссли Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ вСлосипСд с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ООП, Ρ‚ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ вращСния ΠΏΠ΅Π΄Π°Π»Π΅ΠΉ — это ΠΌΠ΅Ρ‚ΠΎΠ΄ класса. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ вСлосипСд ΠΈΠΌΠ΅Π΅Ρ‚ свой Ρ†Π²Π΅Ρ‚, вСс, Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ — всё это свойства. ΠŸΡ€ΠΈΡ‡Ρ‘ΠΌ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ созданного ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° свойства ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ. ИмСя ΠΎΠ΄ΠΈΠ½ класс, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎ количСство ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (вСлосипСдов), ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Π»Π°Π΄Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΏΡ€ΠΈ этом ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒΡΡ ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° вращСния ΠΏΠ΅Π΄Π°Π»Π΅ΠΉ, колёс, срабатывания систСмы тормоТСния, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ всё это ΡƒΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π² ΠΊΠ»Π°ΡΡΠ΅. Π Π°Π·ΠΎΠ±Ρ€Π°Π²ΡˆΠΈΡΡŒ с Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ класса, Π΄Π°Π΄ΠΈΠΌ Π΅ΠΌΡƒ Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅.

ΠšΠ»Π°ΡΡΡ‹ Π² Π‘++ — это абстракция ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π°Ρ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, свойства, Π΅Ρ‰Ρ‘ Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ — ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ прСдставлСниС абстракции, ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π΅ свои свойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ экзСмплярами этого класса. Π­Ρ‚ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, свойства, Π½ΠΎ Π²ΡΠ΅ Ρ€Π°Π²Π½ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса. Π’ ΠžΠžΠŸ сущСствуСт Ρ‚Ρ€ΠΈ основных ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° построСния классов:

1. Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ — это свойство, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π² ΠΊΠ»Π°ΡΡΠ΅ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅, ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ с Π½ΠΈΠΌΠΈ ΠΈ ΡΠΊΡ€Ρ‹Ρ‚ΡŒ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Сля.

2. НаслСдованиС — это свойство, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ класс-ΠΏΠΎΡ‚ΠΎΠΌΠΎΠΊ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ, ΠΏΡ€ΠΈ этом всС характСристики класса родитСля ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ классу-ΠΏΠΎΡ‚ΠΎΠΌΠΊΡƒ.

3. ΠŸΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ — свойство классов, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ классов с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ интСрфСйсом Π±Π΅Π· ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΈΠΏΠ΅ ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ структурС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ вСрнёмся ΠΊ ΠΊΠ»Π°ΡΡΠ°ΠΌ, для Π½Π°Ρ‡Π°Π»Π° рассмотрим структуру объявлСния классов.

// объявлСниС классов в Б++

class /*имя класса*/

{

private:

/* список свойств ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² для использования Π²Π½ΡƒΡ‚Ρ€ΠΈ класса */

public:

/* список ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² доступных Π΄Ρ€ΡƒΠ³ΠΈΠΌ функциям ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ */

protected:

/*список срСдств, доступных ΠΏΡ€ΠΈ наслСдовании*/

};

ОбъявлСниС класса начинаСтся с Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова class, послС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ имя класса. Π’ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобочках, строки 3 - 10 ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Ρ‚Π΅Π»ΠΎ класса, ΠΏΡ€ΠΈΡ‡Ρ‘ΠΌ послС Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉΡΡ скобочки ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ с Π·Π°ΠΏΡΡ‚ΠΎΠΉ, строка 10. Π’ Ρ‚Π΅Π»Π΅ класса ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΊΠΈ спСцификации доступа, строки 4, 6, 8, послС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΊΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅. Π’ строкС 4 объявлСна ΠΌΠ΅Ρ‚ΠΊΠ° спСцификатора доступа private. ВсС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ ΡΠ²ΠΎΠΉΡΡ‚Π²Π° класса, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ послС спСцификатор доступа private Π±ΡƒΠ΄ΡƒΡ‚ доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ класса. Π’ строкС 6 объявлСн спСцификатор доступа public, всС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ ΡΠ²ΠΎΠΉΡΡ‚Π²Π° класса, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ послС спСцификатора доступа public Π±ΡƒΠ΄ΡƒΡ‚ доступны Π΄Ρ€ΡƒΠ³ΠΈΠΌ функциям ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Пока Π½Π° ΡΡ‚ΠΎΠΌ остановимся, спСцификатор доступа protected Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒ сСйчас Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ, просто Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π΅ΡΡ‚ΡŒ. ΠŸΡ€ΠΈ объявлСнии класса, Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ спСцификатора доступа, ΠΈ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡ… ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ Π² Ρ‚Π°ΠΊΠΎΠΌ порядкС. Но Π»ΡƒΡ‡ΡˆΠ΅ сразу ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ с ΠΏΠΎΡ€ΡΠ΄ΠΊΠΎΠΌ объявлСния спСцификаторов доступа, ΠΈ ΡΡ‚Π°Ρ€Π°Ρ‚ΡŒΡΡ Π΅Π³ΠΎ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ структуры объявлСния класса Treug:

class Treug // Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ класса Π’Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ

{public: // ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΈΠΌΡ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

float Xa, Xb, Xc, Ya, Yb, Yc;

float AB, BC, CA, alpha, betta, gamma;

float p, polup, S, t;

// ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ класса с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ

Treug (float Xa1, float Xb1, float Xc1, float Ya1, float Yb1, float Yc1);

// ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΈΠΏΠ° Π’Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ Π±Π΅Π· Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

Treug ();

~Treug ();

int proverka ();

storona (); // ΠœΠ΅Ρ‚ΠΎΠ΄ класса для расчСта Π΄Π»ΠΈΠ½ сторон Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°

float putAB (); float putBC (); float putCA ();

ugol (); // ΠœΠ΅Ρ‚ΠΎΠ΄ класса для расчСта ΡƒΠ³Π»ΠΎΠ² Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°

float putAlpha (); float putBetta (); float putGamma ();

float perimetr (); // ΠœΠ΅Ρ‚ΠΎΠ΄ класса для расчСта ΠΏΠ΅Ρ€ΠΈΠΌΠ΅Ρ‚Ρ€Π° Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°

float square (); // ΠœΠ΅Ρ‚ΠΎΠ΄ класса для расчСта ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΈ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°

// ΠœΠ΅Ρ‚ΠΎΠ΄ класса для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ: являСтся Π»ΠΈ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ равносторонним

void print (TImage &img); // ΠœΠ΅Ρ‚ΠΎΠ΄ класса для отрисовки Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°

};

3.2 Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ классов

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ Ρ„ункция:

storona ();

float putAB ();

float putBC ();

float putCA ();

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° (Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ) Π² ΠΊΠ»Π°ΡΡΠ΅:

{Public:

ugol (); // ΠœΠ΅Ρ‚ΠΎΠ΄ класса для расчСта ΡƒΠ³Π»ΠΎΠ² Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°

float putAlpha ();

float putBetta ();

float putGamma ();

float perimetr ();

};

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ описаниС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° (Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ) Π²Π½Π΅ класса:

Treug: ugol ()

{t=180/M_PI;

alpha= (acos ((pow (BC, 2) +pow (CA, 2) — pow (AB, 2)) / (2*BC*CA))) *t;

betta= (acos ((pow (AB, 2) +pow (CA, 2) — pow (BC, 2)) / (2*AB*CA))) *t;

gamma= (acos ((pow (AB, 2) +pow (BC, 2) — pow (CA, 2)) / (2*AB*BC))) *t;

};

float Treug: putAlpha () {return alpha; }

float Treug: putBetta () {return betta; }

float Treug: putGamma () {return gamma; }

3.3 ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρ‹

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ — ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ функция, которая выполняСт Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ элСмСнтов Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ€ΠΈΡ‡Ρ‘ΠΌ имя конструктора ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ класса. Π’Π°ΠΆΠ½Ρ‹ΠΌ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ΠΌ конструктора ΠΎΡ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½ΠΈΠΊΠ°ΠΊΠΈΡ…, Π² Ρ‚ΠΎΠΌ числС ΠΈ void. Π’ Π»ΡŽΠ±ΠΎΠΌ классС Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ конструктор, Π΄Π°ΠΆΠ΅ Ссли явным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ конструктор Π½Π΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½ (ΠΊΠ°ΠΊ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ классС), Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ прСдоставляСт конструктор ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования конструкторов Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, использования конструктора Treug, класса Treug, ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΅Π³ΠΎ Π²Π½Π΅ класса:

class Treug

{

public:

.

Treug (float Xa1, float Xb1, float Xc1, float Ya1, float Yb1, float Yc1);

.

};

Treug: Treug (float Xa1, float Xb1, float Xc1, float Ya1, float Yb1, float Yc1)

{

Xa=Xa1; Xb=Xb1;

Xc=Xc1; Ya=Ya1;

Yb=Yb1; Yc=Yc1;

};

3.4 НаслСдованиС

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

РСализация ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° наслСдования Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, класс Treug ΠΈ Π΅Π³ΠΎ наслСдник RavnTreug:

class Treug

{public:

float Xa, Xb, Xc, Ya, Yb, Yc;

float AB, BC, CA, alpha, betta, gamma;

float p, polup, S, t;

Treug (float Xa1, float Xb1, float Xc1, float Ya1, float Yb1, float Yc1);

Treug ();

~Treug ();

int proverka ();

storona ();

float putAB ();

float putBC ();

float putCA ();

ugol ();

float putAlpha ();

float putBetta ();

float putGamma ();

float perimetr ();

float square ();

void print (TImage &img);

};

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ наслСдования, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡƒΡ‚Ρ‘ΠΌ:

class RavnTreug: public Treug

{ float ABravn;

float bis;

public:

int proverkaRavn ();

RavnTreug (float Xa1, float Xb1, float Xc1, float Ya1, float Yb1, float Yc1): Treug (Xa1, Xb1, Xc1, Ya1, Yb1, Yc1) {};

~RavnTreug ();

float bissec ();

};

НаслСдованиС являСтся Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠ΅ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования.

4. РСализация Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

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

1. УсловиС ΠΏΠ΅Ρ€Π²ΠΎΠ΅: ВсС ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ‹.

РСализация Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹:

void __fastcall TForm1: Edit1Change (TObject *Sender)

{

/*Если Edit1 Π½Π΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½, ΠΊΠ½ΠΎΠΏΠΊΠ° Button1 Π½Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½Π°*/

if (Edit1->Text. Length () == 0) {

Button1->Enabled=false;

}

else Button1->Enabled=true;

}

2. УсловиС ΠΏΠ΅Ρ€Π²ΠΎΠ΅: Π’ ΠΏΠΎΠ»Ρ Π²Π²ΠΎΠ΄Π° Edit ΠΌΠΎΠΆΠ½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ числа.

РСализация Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹:

/*Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹Π΅ символы Π² Edit1*/

if ((Key < '0' || Key > '9') && Key! = 8) Key= 0;

3. УсловиС Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅: ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π²Π΅Ρ€ΡˆΠΈΠ½ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ 2 Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ.

РСализация Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹:

if (((MAS [i]. Xa==MAS [i]. Xb) && (MAS [i]. Ya==MAS [i]. Yb) ||

(MAS [i]. Xa==MAS [i]. Xc) && (MAS [i]. Ya==MAS [i]. Yc) ||

(MAS [i]. Xb==MAS [i]. Xc) && (MAS [i]. Yb==MAS [i]. Yc)))

MessageBox (this->Handle, «Π’Π΅Ρ€ΡˆΠΈΠ½Ρ‹ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π² 1ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅» ,

" Ошибка!", MB_OK

Для удобства ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π±Ρ‹Π»ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ, Π½ΠΎ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ Enter. РСализация:

void __fastcall TForm1: EditKeyPress (TObject *Sender, char &Key)

void __fastcall TForm1: FormKeyPress (TObject *Sender, char &Key)

{ if ((Key == VK_RETURN) &&

(Edit1>Text. Length () >0) && (Edit2->Text. Length () > 0)

&& (Edit3->Text. Length () > 0) && (Edit4->Text. Length () > 0)

&& (Edit5->Text. Length () > 0) && (Edit6->Text. Length () > 0))

{Button1->Default = True; }

}

5. Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° UML

Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ мСсто Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° логичСской ΠΌΠΎΠ΄Π΅Π»ΠΈ систСмы Π² Π²ΠΈΠ΄Π΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ классов. Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° классов (class diagram) слуТит для прСдставлСния статичСской структуры ΠΌΠΎΠ΄Π΅Π»ΠΈ систСмы Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ классов ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования. Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° классов ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Ρ€Π°ΠΆΠ°Ρ‚ΡŒ, Π² Ρ‡Π°ΡΡ‚ности, Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ взаимосвязи ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ сущностями ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ ΠΏΠΎΠ΄ΡΠΈΡΡ‚Π΅ΠΌΡ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ структуру ΠΈ Ρ‚ΠΈΠΏΡ‹ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ.

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° классов прСдставляСт собой Π³Ρ€Π°Ρ„, Π²Π΅Ρ€ΡˆΠΈΠ½Π°ΠΌΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ элСмСнты Ρ‚ΠΈΠΏΠ° «ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€», связанныС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ структурных ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ. Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° классов ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ интСрфСйсы, ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΈ Π΄Π°ΠΆΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ экзСмпляры, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ ΡΠ²ΡΠ·ΠΈ.

ΠšΠ²Π°Π½Ρ‚ΠΎΡ€ видимости ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ ΠΎΡ‚обраТаСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов:

Β· «+» ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ с ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ видимости Ρ‚ΠΈΠΏΠ° общСдоступный (public). Атрибут с ΡΡ‚ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ видимости доступСн ΠΈΠ»ΠΈ Π²ΠΈΠ΄Π΅Π½ ΠΈΠ· Π»ΡŽΠ±ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ класса ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ°;

Β· «#» ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ с ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ видимости Ρ‚ΠΈΠΏΠ° Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΉ (protected). Атрибут с ΡΡ‚ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ видимости нСдоступСн ΠΈΠ»ΠΈ Π½Π΅Π²ΠΈΠ΄Π΅Π½ для всСх классов, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ подклассов Π΄Π°Π½Π½ΠΎΠ³ΠΎ класса;

Β· «-» ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ с ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ видимости Ρ‚ΠΈΠΏΠ° Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ (private). Атрибут с ΡΡ‚ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ видимости нСдоступСн ΠΈΠ»ΠΈ Π½Π΅Π²ΠΈΠ΄Π΅Π½ для всСх классов Π±Π΅Π· ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

ΠšΠ²Π°Π½Ρ‚ΠΎΡ€ видимости ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡƒΡ‰Π΅Π½. Π’ ΡΡ‚ΠΎΠΌ случаС Π΅Π³ΠΎ отсутствиС просто ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ся. Π­Ρ‚Π° ситуация отличаСтся ΠΎΡ‚ ΠΏΡ€ΠΈΠ½ΡΡ‚Ρ‹Ρ… ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ соглашСний Π² Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… языках программирования, ΠΊΠΎΠ³Π΄Π° отсутствиС ΠΊΠ²Π°Π½Ρ‚ΠΎΡ€Π° видимости трактуСтся ΠΊΠ°ΠΊ public ΠΈΠ»ΠΈ private. Однако вмСсто условных графичСских ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово: public, protected, private.

5.1 ΠžΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ классами

ΠšΡ€ΠΎΠΌΠ΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ устройства ΠΈΠ»ΠΈ структуры классов Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ классами. ΠŸΡ€ΠΈ этом ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ Ρ‚ΠΈΠΏΠΎΠ² Ρ‚Π°ΠΊΠΈΡ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ фиксирована Π² ΡΠ·Ρ‹ΠΊΠ΅ UML ΠΈ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° сСмантикой этих Ρ‚ΠΈΠΏΠΎΠ² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ. Π‘Π°Π·ΠΎΠ²Ρ‹ΠΌΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΠΌΠΈ Π² ΡΠ·Ρ‹ΠΊΠ΅ UML ΡΠ²Π»ΡΡŽΡ‚ΡΡ:

Β· зависимости (dependency relationship);

Β· ассоциации (association relationship);

Β· обобщСния (generalization relationship)

КаТдоС ΠΈΠ· ΡΡ‚ΠΈΡ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ собствСнноС графичСскоС прСдставлСниС Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ взаимосвязи ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… классов.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ взаимосвязи ΠΌΠ΅ΠΆΠ΄Ρƒ классами (Ρ‡Π°ΡΡ‚ΡŒ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ· ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ):

Рис. 6. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ графичСского прСдставлСния наслСдования, ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ² ΠΈ Ρ€Π°Π²Π½ΠΎΡΡ‚ΠΎΡ€ΠΎΠ½Π½ΠΈΡ… Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ².

5.2 Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° дСйствия

ΠŸΡ€ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ повСдСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ систСмы Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ процСсс измСнСния Π΅Ρ‘ ΡΠΎΡΡ‚ояний, Π½ΠΎ ΠΈ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ особСнности алгоритмичСской ΠΈ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ выполняСмой систСмой Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ для этой Ρ†Π΅Π»ΠΈ использовались Π±Π»ΠΎΠΊ-схСма ΠΈΠ»ΠΈ структурныС схСмы Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ². Π’ UML для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° дСйствий.

На Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ отобраТаСтся Π»ΠΎΠ³ΠΈΠΊΠ° ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ² ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠΉ Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΉ. ΠŸΡ€ΠΈ этом Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ фиксируСтся Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π‘Π°ΠΌ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡŽ состояния систСмы ΠΈΠ»ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΡŽ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ значСния.

ГрафичСски Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ прСдставляСтся Π² Ρ„ΠΎΡ€ΠΌΠ΅ Π³Ρ€Π°Ρ„Π° Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π²Π΅Ρ€ΡˆΠΈΠ½Π°ΠΌΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся состояниС дСйствия, Π° Π΄ΡƒΠ³Π°ΠΌΠΈ — ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ состояния Π² Π΄Π΅ΠΉΡΡ‚вия ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ.

ΠŸΡ€ΠΈ этом ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ состояниС ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ класса Π»ΠΈΠ±ΠΎ Π΅Ρ‘ Ρ‡Π°ΡΡ‚ΡŒ, позволяя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡƒ Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ для описания Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ Π½Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ события систСмы.

Π’ ΡΠ·Ρ‹ΠΊΠ΅ UML дСйствиС изобраТаСтся Π² Π²ΠΈΠ΄Π΅ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° с Π·Π°ΠΊΡ€ΡƒΠ³Π»Π΅Π½Π½Ρ‹ΠΌΠΈ ΡƒΠ³Π»Π°ΠΌΠΈ, состояния — Π² Π²ΠΈΠ΄Π΅ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹ — Π² Π²ΠΈΠ΄Π΅ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… стрСлок, элСмСнты Π²Ρ‹Π±ΠΎΡ€Π° — Π² Π²ΠΈΠ΄Π΅ Ρ€ΠΎΠΌΠ±ΠΎΠ², Π»ΠΈΠ½ΠΈΠΈ синхронизации — Π² Π²ΠΈΠ΄Π΅ толстых Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ»ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π»ΠΈΠ½ΠΈΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ дСйствий Π² ΠΊΡƒΡ€ΡΠΎΠ²ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅:

Рис. 7. Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ДСйствий.

6. Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…

Для хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±Ρ‹Π»Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° структура Ttreug. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ — это составныС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, построСнныС с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ². [8, c.408].

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ структуры для хранСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ΅:

typedef struct {

float Xa, Xb, Xc, Ya, Yb, Yc;

float AB;

float BC;

float CA;

float alpha;

float betta;

float gamma;

float perimetr;

float square;

float bis;

int ravn;

int proverka;

} Ttreug;

Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… Π² ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π΅ Ttreug прСдставлСны Π½Π° Π ΠΈΡ.8

Рис. 8 Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… Π² ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π΅ Ttreug.

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

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

Π’ ΡΡ‚ΠΎΠΌ курсовом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ использовалась структура классов. Π‘Ρ‹Π» рассмотрСн ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ наслСдования ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… классов.

Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

1. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π‘++. Π›Π°Ρ„ΠΎΡ€Π΅ Π .

2. Π“Ρ€Π°Π΄ΠΈ Π‘ΡƒΡ‡ «ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅» 3.Π­. Π“Π°ΠΌΠΌΠ° «ΠŸΡ€ΠΈΠ΅ΠΌΡ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ проСктирования. ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ проСктирования»

4. ΠšΡƒΠ»ΡŒΡ‚ΠΈΠ½, C++ Builder Π² Π·Π°Π΄Π°Ρ‡Π°Ρ… ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…-Π‘ΠΏΠ±. // ΠšΡƒΠ»ΡŒΡ‚ΠΈΠ½ Н. Π‘.: Π‘Π₯Π’-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³, 2005. — 336 с.

5. Π“Ρ€Π΅ΠΉΠ΄ΠΈ Π‘ΡƒΡ‡, ДТСймс Π Π°ΠΌΠ±ΠΎ, Айвар ДТСкобсон. Π―Π·Ρ‹ΠΊ UML. Руководство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ = The Unified Modeling Language user guide. — 2-Π΅ ΠΈΠ·Π΄. — Πœ., ΠŸΠΈΡ‚Π΅Ρ€, 2004. — 432 с.

6. Иан ГрэхСм ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° = Object-Oriented Methods: Principles & Practice. — 3-Π΅ ΠΈΠ·Π΄. — Πœ.: «Π’ΠΈΠ»ΡŒΡΠΌΡ», 2004. — Π‘.880.

7. Π‘ΠΈΠ»Π»ΠΈΠ³ Π’. А. ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π½Π° C++. Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-унивСрситСт ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ — ИНВУИВ. Ρ€Ρƒ, 2006

8. Π”Π΅ΠΉΡ‚Π΅Π» Π₯., Π”Π΅ΠΉΡ‚Π΅Π» П. Как ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Π‘++: ΠΏΠ΅Ρ€. Ρ Π°Π½Π³Π». — Πœ.: «Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ Π‘ΠΈΠ½ΠΎΠΌ», 2003 Π³. — 1021 с.

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

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

Листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

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

#include

#include

#include

#pragma hdrstop

#include «Unit1. h»

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

#pragma package (smart_init)

#pragma resource «*. dfm»

TForm1 *Form1;

typedef struct // ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ структуры для хранСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ΅

{

float Xa, Xb, Xc, Ya, Yb, Yc;

float AB;

float BC;

float CA;

float alpha;

float betta;

float gamma;

float perimetr;

float square;

float bis;

int ravn;

int proverka;

} Ttreug;

typedef Ttreug TMaskadr [50];

TMaskadr MAS;

int i;

class Treug // Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ класса Π’Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ

{public: // ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΈΠΌΡ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

float Xa, Xb, Xc, Ya, Yb, Yc;

float AB, BC, CA, alpha, betta, gamma;

float p, polup, S, t;

// ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ класса с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ

Treug (float Xa1, float Xb1, float Xc1, float Ya1, float Yb1, float Yc1);

// ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΈΠΏΠ° Π’Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ Π±Π΅Π· Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

Treug ();

~Treug ();

int proverka ();

storona (); // ΠœΠ΅Ρ‚ΠΎΠ΄ класса для расчСта Π΄Π»ΠΈΠ½ сторон Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°

float putAB (); float putBC (); float putCA ();

ugol (); // ΠœΠ΅Ρ‚ΠΎΠ΄ класса для расчСта ΡƒΠ³Π»ΠΎΠ² Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°

float putAlpha (); float putBetta (); float putGamma ();

float perimetr (); // ΠœΠ΅Ρ‚ΠΎΠ΄ класса для расчСта ΠΏΠ΅Ρ€ΠΈΠΌΠ΅Ρ‚Ρ€Π° Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°

float square (); // ΠœΠ΅Ρ‚ΠΎΠ΄ класса для расчСта ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΈ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°

// ΠœΠ΅Ρ‚ΠΎΠ΄ класса для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ: являСтся Π»ΠΈ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ равносторонним

void print (TImage &img); // ΠœΠ΅Ρ‚ΠΎΠ΄ класса для отрисовки Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°

};

// ОписаниС конструктора

Treug: Treug (float Xa1, float Xb1, float Xc1, float Ya1, float Yb1, float Yc1)

{

Xa=Xa1; Xb=Xb1; Xc=Xc1;

Ya=Ya1; Yb=Yb1; Yc=Yc1;

};

Treug: Treug () {} // ΠŸΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° конструктор Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

Treug: ~Treug () {

Xa=0; Xb=0; Xc=0;

Ya=0; Yb=0; Yc=0; }

Treug: storona ()

{

AB=sqrt (pow (Xa-Xb,

2) +pow (Ya-Yb,

2));

BC=sqrt (pow (Xb-Xc,

2) +pow (Yb-Yc,

2));

CA=sqrt (pow (Xc-Xa,

2) +pow (Yc-Ya,

2));

};

float Treug: putAB () {return AB; }

float Treug: putBC () {return BC; }

float Treug: putCA () {return CA; }

int Treug: proverka ()

{

if ((AB==BC+CA) || (BC==AB+CA) || (CA==AB+BC)) {return 0; }

else return 1;

};

Treug: ugol ()

{t=180/M_PI;

alpha= (acos ((pow (BC, 2) +pow (CA, 2) — pow (AB, 2)) / (2*BC*CA))) *t;

betta= (acos ((pow (AB, 2) +pow (CA, 2) — pow (BC, 2)) / (2*AB*CA))) *t;

gamma= (acos ((pow (AB, 2) +pow (BC, 2) — pow (CA, 2)) / (2*AB*BC))) *t;

};

float Treug: putAlpha () {return alpha; }

float Treug: putBetta () {return betta; }

float Treug: putGamma () {return gamma; }

float Treug: square ()

{polup= (AB+BC+CA) /2;

S=sqrt (polup* (polup-AB) * (polup-BC) * (polup-CA));

return S;

}

float Treug: perimetr ()

{p=AB+BC+CA;

return p;

};

void Treug: print (TImage &img)

{

float max=Xa;

if (Ya>Xa) {max=Ya; }

if ((Xb>Xa) && (Xb>Ya)) {max=Xb; }

if ((Yb>Xa) && (Yb>Ya) && (Yb>Xb)) {max=Yb; }

if ((Xc>Xa) && (Xc>Ya) && (Xc>Xb) && (Xc>Yb)) {max=Xc; }

if ((Yc>Xa) && (Yc>Ya) && (Yc>Xb) && (Yc>Yb) && (Yc>Xc)) {max=Yc; }

float mashtab=300/max;

img. Canvas->MoveTo (Xa*mashtab, Ya*mashtab);

img. Canvas->LineTo (Xb*mashtab, Yb*mashtab);

img. Canvas->LineTo (Xc*mashtab, Yc*mashtab);

img. Canvas->LineTo (Xa*mashtab, Ya*mashtab);

};

class RavnTreug: public Treug // БозданиС класса RavnTreug

{ float ABravn;

float bis;

public: // ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΈΠΌΡ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

int proverkaRavn ();

RavnTreug (float Xa1, float Xb1, float Xc1, float Ya1, float Yb1, float Yc1): Treug (Xa1, Xb1, Xc1, Ya1, Yb1, Yc1) {}; // ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ класса RavnTreug

~RavnTreug ();

float bissec (); // ΠΌΠ΅Ρ‚ΠΎΠ΄ расчСта биссСктрисы равностороннСго Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°

};

RavnTreug: ~RavnTreug () {}

int RavnTreug: proverkaRavn ()

{ storona ();

int AB1= (int) AB;

int BC1= (int) BC;

int CA1= (int) CA;

if ((AB1==BC1) && (BC1==CA1)) {return 1; }

else return 0;

}

float RavnTreug: bissec ()

{ storona ();

bis= (putAB () *sqrt (3)) /2;

return bis;

}

int countRavn=0;

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

__fastcall TForm1: TForm1 (TComponent* Owner)

: TForm (Owner)

{

}

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

void __fastcall TForm1: Button1Click (TObject *Sender)

{

Form1->Height=430;

float Xa, Xb, Xc, Ya, Yb, Yc;

float AB, BC, CA, alpha, betta, gamma;

// ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ» Treug. txt Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ записи Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΊΠΎΠ½Π΅Ρ† Ρ„Π°ΠΉΠ»Π°

ofstream book_file («Treug. txt», ios: app);

// Π§Ρ‚Π΅Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Ρ‚ΠΎΡ‡Π΅ΠΊ А, Π’, Π‘ ΠΈΠ· Edit’ΠΎΠ²

// ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΡ… Π² ΠΌΠ°ΡΡΠΈΠ² структуры

MAS [i]. Xa=Xa=StrToFloat (Edit1->Text);

MAS [i]. Ya=Ya=StrToFloat (Edit2->Text);

MAS [i]. Xb=Xb=StrToFloat (Edit3->Text);

MAS [i]. Yb=Yb=StrToFloat (Edit4->Text);

MAS [i]. Xc=Xc=StrToFloat (Edit5->Text);

MAS [i]. Yc=Yc=StrToFloat (Edit6->Text);

if (((MAS [i]. Xa==MAS [i]. Xb) && (MAS [i]. Ya==MAS [i]. Yb) ||

(MAS [i]. Xa==MAS [i]. Xc) && (MAS [i]. Ya==MAS [i]. Yc) ||

(MAS [i]. Xb==MAS [i]. Xc) && (MAS [i]. Yb==MAS [i]. Yc)))

MB_ICONERROR);

else{

Treug tr1 (Xa, Xb, Xc, Ya, Yb, Yc); // ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΈΠΏΠ° Treug

tr1. storona (); // Π’Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° расчСта Π΄Π»ΠΈΠ½ сторон Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°

// Π—Π°ΠΊΡ€Π°ΡˆΠΈΠ²Π°Π½ΠΈΠ΅ Canvas

Image1->Canvas->Rectangle (0,0,300,300);

tr1. ugol (); // Π’Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° рассчСта ΡƒΠ³Π»ΠΎΠ² Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°

// Π’Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π΄Π»ΠΈΠ½ сторон Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°

// ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² ΠΌΠ°ΡΡΠΈΠ² структуры

MAS [i]. AB=tr1. putAB ();

MAS [i]. BC=tr1. putBC ();

MAS [i]. CA=tr1. putCA ();

MAS [i]. proverka=tr1. proverka ();

// Π’Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² расчСта ΡƒΠ³Π»ΠΎΠ², ΠΏΠ΅Ρ€ΠΈΠΌΠ΅Ρ‚Ρ€Π° ΠΈ ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΈ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°

// ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡƒΠ΅Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² ΠΌΠ°ΡΡΠΈΠ² структуры

MAS [i]. alpha=tr1. putAlpha ();

MAS [i]. betta=tr1. putBetta ();

MAS [i]. gamma=tr1. putGamma ();

MAS [i]. perimetr=tr1. perimetr ();

MAS [i]. square=tr1. square ();

// Π’Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ: являСтся Π»ΠΈ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ равносторонним

RavnTreug tr2 (Xa, Xb, Xc, Ya, Yb, Yc); // ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΈΠΏΠ° RavnTreug

MAS [i]. ravn=tr2. proverkaRavn ();

MAS [i]. bis=0;

/*ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°*/

if (MAS [i]. proverka==0)

MessageBox (this->Handle, «Π’Ρ‹ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΠ»ΠΈ ΠΏΡ€ΡΠΌΡƒΡŽ», «ΠžΡˆΠΈΠ±ΠΊΠ°!» ,

MB_OK

else {

/*Если Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ равносторонний*/

if (MAS [i]. ravn==1) {

countRavn++; // Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ количСства равносторонних Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ²

// Π’Ρ‹Π²ΠΎΠ΄ сообщСния, Ρ‡Ρ‚ΠΎ создан равносторонний Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ

MessageBox (this->Handle, «Π’Ρ‹ ΡΠΎΠ·Π΄Π°Π»ΠΈ равносторонний Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ», «Π£Π Π!» ,

MB_OK | MB_ICONINFORMATION);

MAS [i]. bis=tr2. bissec (); // Π’Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° расчСта биссСктрисы

/*Поиск минимальной биссСктрисы*/

float min=0;

int masimin=0, masi=0;

min=MAS [i]. bis;

for (masi = 0; masi <= i; masi++) {

if ((MAS [masi]. bis! =0) && (MAS [masi]. bis<=min)) {

min=MAS [masi]. bis;

masimin=masi; }

}

// Π’Ρ‹Π²ΠΎΠ΄ Π² Label13

Label13->Caption="Равносторонний Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ β„–"

+IntToStr (masimin+1) +" ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π°ΠΈΠΌΠ΅Π½ΡŒΡˆΡƒΡŽ биссСктрису Ρ€Π°Π²Π½ΡƒΡŽ «

+FloatToStrF (min, ffFixed, 10 000,3) +" см" ;

}

tr1. print (*Image1); // Π’Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π²Ρ‹Π²ΠΎΠ΄Π° Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° Π½Π° Canvas

ComboBox1->Items->Add (i+1); // Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠΌΠ΅Ρ€Π° Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ Π² ComboBox1

ComboBox2->Items->Add (i+1); // Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠΌΠ΅Ρ€Π° Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ Π² ComboBox2

Label2->Caption=

" AB="+FloatToStrF (MAS [i]. AB, ffFixed, 10 000,3) +" см"

+" nBC="+FloatToStrF (MAS [i]. BC, ffFixed, 10 000,3) +" см"

+" nCA="+FloatToStrF (MAS [i]. CA, ffFixed, 10 000,3) +" см"

+" nAlpha="+FloatToStrF (MAS [i]. alpha, ffFixed, 10 000,3) +" Β°"

+" nBetta="+FloatToStrF (MAS [i]. betta, ffFixed, 10 000,3) +" Β°"

+" nGamma="+FloatToStrF (MAS [i]. gamma, ffFixed, 10 000,3) +" Β°"

+" nP="+FloatToStrF (MAS [i]. perimetr, ffFixed, 10 000,3) +" см"

+" nS="+FloatToStrF (MAS [i]. square, ffFixed, 10 000,3) +" см2″ ;

ComboBox1->ItemIndex=i;

ComboBox2->ItemIndex=i;

i++;

// Π’Ρ‹Π²ΠΎΠ΄ Π² Label10

Label10->Caption="Π‘ΠΎΠ·Π΄Π°Π½ΠΎ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ²: «+IntToStr (i) +» n"

+" Из Π½ΠΈΡ… равносторонних: «+IntToStr (countRavn);

/*Π’Ρ‹Π²ΠΎΠ΄ свСдСний ΠΎ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ΅ Π² Ρ„Π°ΠΉΠ» Treug. txt*/

book_file<<" Π’Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ β„–" <<": n"

<<" AB="<<<" см; «<<» «

<<" BC="<<<" см; «<<» «

<<" CA="<<<" см; n"

<<" alpha="<<<" Β°; «

<<" betta="<<<" Β°; «

<<" gamma="<<<" Β°; n"

<<" P="<<<" см; n"

<<" S="<<<" см2; n"

<<" Равносторонний Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ (0-НЕВ; 1-ДА): «<<<»; nn" ;

/* Поиск Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° с ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ»ΠΎΡ‰Π°Π΄ΡŒΡŽ*/

float maxSquare=0;

int numMaxSquare=0, numMaxSquare2=0, countfor=0;

maxSquare=MAS. square;

for (countfor = 0; countfor <= i; countfor++) {

if (MAS [countfor]. square>maxSquare) {

maxSquare=MAS [countfor]. square;

numMaxSquare=countfor; }

}

// Π’Ρ‹Π²ΠΎΠ΄ Π² Label14

Label14->Caption="Π’Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ β„–"

+IntToStr (numMaxSquare+1) +" ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π°ΠΈΠ±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΏΠ»ΠΎΡ‰Π°Π΄ΡŒ Ρ€Π°Π²Π½ΡƒΡŽ «

+FloatToStrF (maxSquare, ffFixed, 10 000,3) +" см2″ ;

ComboBox3->Items->Clear ();

for (countfor = 0; countfor <= i; countfor++) {

if ((MAS [countfor]. square==maxSquare) && (countfor! =numMaxSquare)) {

Label16->Caption="Π’Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ с Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΏΠ»ΠΎΡ‰Π°Π΄ΡŒΡŽ: «;

ComboBox3->Items->Add (countfor+1);

ComboBox3->ItemIndex=0;

}

}

}

tr1. ~Treug ();

tr2. ~RavnTreug ();

}

}

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

void __fastcall TForm1: FormCreate (TObject *Sender)

{

ofstream book_file («Treug. txt», ios: trunc); // очистка Ρ„Π°ΠΉΠ»Π°

i=0;

Image1->Canvas->Rectangle (0,0,300,300);

Label13->Caption="Равносторонний Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ β„–??? ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π°ΠΈΠΌΠ΅Π½ΡŒΡˆΡƒΡŽ биссСктрису Ρ€Π°Π²Π½ΡƒΡŽ???" ;

Label14->Caption="Π’Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ β„–??? ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π°ΠΈΠ±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΏΠ»ΠΎΡ‰Π°Π΄ΡŒ Ρ€Π°Π²Π½ΡƒΡŽ???" ;

Label16->Caption="Π’Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ с Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΏΠ»ΠΎΡ‰Π°Π΄ΡŒΡŽ: «;

}

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

void __fastcall TForm1: ComboBox1Change (TObject *Sender)

{

/*Π’Ρ‹Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ΅ c Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ, Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌ Π² ComboBox1 Π² Label2*/

int ii, k=0, j=0;

j=i;

k=i;

ii=ComboBox1->ItemIndex;

for (k = 0; k <= j; k++) {

if (k==ii) {

Label2->Caption=

" AB="+FloatToStrF (MAS [k]. AB, ffFixed, 10 000,3) +" см"

+" nBC="+FloatToStrF (MAS [k]. BC, ffFixed, 10 000,3) +" см"

+" nCA="+FloatToStrF (MAS [k]. CA, ffFixed, 10 000,3) +" см"

+" nAlpha="+FloatToStrF (MAS [k]. alpha, ffFixed, 10 000,3) +" Β°"

+" nBetta="+FloatToStrF (MAS [k]. betta, ffFixed, 10 000,3) +" Β°"

+" nGamma="+FloatToStrF (MAS [k]. gamma, ffFixed, 10 000,3) +" Β°"

+" nP="+FloatToStrF (MAS [k]. perimetr, ffFixed, 10 000,3) +" см"

+" nS="+FloatToStrF (MAS [k]. square, ffFixed, 10 000,3) +" см2″ ;

}

}

}

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

void __fastcall TForm1: ComboBox2Change (TObject *Sender)

{

/*ΠžΡ‚Ρ€ΠΈΡΠΎΠ²ΠΊΠ° Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° c Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ, Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌ Π² ComboBox2 Π½Π° Canvas*/

int ii, k=0, j=0;

j=i;

k=i;

ii=ComboBox2->ItemIndex;

Image1->Canvas->Rectangle (0,0,300,300);

for (k = 0; k <= j; k++) {

if (k==ii) {

Treug tr2 (MAS [k]. Xa, MAS [k]. Xb, MAS [k]. Xc, MAS [k]. Ya, MAS [k]. Yb, MAS [k]. Yc);

tr2. storona ();

tr2. print (*Image1);

}

}

}

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

void __fastcall TForm1: Edit1KeyPress (TObject *Sender, char &Key)

{

/*Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΊΠ½ΠΎΠΏΠΊΠΈ Button1 ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Enter Π² Edit1*/

if ((Key == VK_RETURN) && (Edit1->Text. Length () > 0) && (Edit2->Text. Length () > 0)

&& (Edit3->Text. Length () > 0) && (Edit4->Text. Length () > 0)

&& (Edit5->Text. Length () > 0) && (Edit6->Text. Length () > 0))

{Button1->Default = True; }

/*Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹Π΅ символы Π² Edit1*/

if ((Key < '0' || Key > '9') && Key! = 8) Key= 0;

}

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

void __fastcall TForm1: Edit2KeyPress (TObject *Sender, char &Key)

{

/*Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΊΠ½ΠΎΠΏΠΊΠΈ Button1 ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Enter Π² Edit2*/

if ((Key == VK_RETURN) && (Edit1->Text. Length () > 0) && (Edit2->Text. Length () > 0)

&& (Edit3->Text. Length () > 0) && (Edit4->Text. Length () > 0)

&& (Edit5->Text. Length () > 0) && (Edit6->Text. Length () > 0))

{Button1->Default = True; }

/*Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹Π΅ символы Π² Edit2*/

if ((Key < '0' || Key > '9') && Key! = 8) Key= 0;

}

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

void __fastcall TForm1: Edit3KeyPress (TObject *Sender, char &Key)

{

/*Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΊΠ½ΠΎΠΏΠΊΠΈ Button1 ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Enter Π² Edit3*/

if ((Key == VK_RETURN) && (Edit1->Text. Length () > 0) && (Edit2->Text. Length () > 0)

&& (Edit3->Text. Length () > 0) && (Edit4->Text. Length () > 0)

&& (Edit5->Text. Length () > 0) && (Edit6->Text. Length () > 0))

{Button1->Default = True; }

/*Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹Π΅ символы Π² Edit3*/

if ((Key < '0' || Key > '9') && Key! = 8) Key= 0;

}

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

void __fastcall TForm1: Edit4KeyPress (TObject *Sender, char &Key)

{

/*Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΊΠ½ΠΎΠΏΠΊΠΈ Button1 ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Enter Π² Edit4*/

if ((Key == VK_RETURN) && (Edit1->Text. Length () > 0) && (Edit2->Text. Length () > 0)

&& (Edit3->Text. Length () > 0) && (Edit4->Text. Length () > 0)

&& (Edit5->Text. Length () > 0) && (Edit6->Text. Length () > 0))

{Button1->Default = True; }

/*Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹Π΅ символы Π² Edit4*/

if ((Key < '0' || Key > '9') && Key! = 8) Key= 0;

}

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

void __fastcall TForm1: Edit5KeyPress (TObject *Sender, char &Key)

{

/*Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΊΠ½ΠΎΠΏΠΊΠΈ Button1 ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Enter Π² Edit5*/

if ((Key == VK_RETURN) && (Edit1->Text. Length () > 0) && (Edit2->Text. Length () > 0)

&& (Edit3->Text. Length () > 0) && (Edit4->Text. Length () > 0)

&& (Edit5->Text. Length () > 0) && (Edit6->Text. Length () > 0))

{Button1->Default = True; }

/*Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹Π΅ символы Π² Edit5*/

if ((Key < '0' || Key > '9') && Key! = 8) Key= 0;

}

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

void __fastcall TForm1: Edit6KeyPress (TObject *Sender, char &Key)

{

/*Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΊΠ½ΠΎΠΏΠΊΠΈ Button1 ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Enter Π² Edit6*/

if ((Key == VK_RETURN) && (Edit1->Text. Length () > 0) && (Edit2->Text. Length () > 0)

&& (Edit3->Text. Length () > 0) && (Edit4->Text. Length () > 0)

&& (Edit5->Text. Length () > 0) && (Edit6->Text. Length () > 0))

{Button1->Default = True; }

/*Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹Π΅ символы Π² Edit6*/

if ((Key < '0' || Key > '9') && Key! = 8) Key= 0;

}

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

void __fastcall TForm1: Edit1Change (TObject *Sender)

{

/*Если Edit1 Π½Π΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½, ΠΊΠ½ΠΎΠΏΠΊΠ° Button1 Π½Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½Π°*/

if (Edit1->Text. Length () == 0) {

Button1->Enabled=false;

}

else Button1->Enabled=true;

}

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

void __fastcall TForm1: Edit3Change (TObject *Sender)

{

/*Если Edit3 Π½Π΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½, ΠΊΠ½ΠΎΠΏΠΊΠ° Button1 Π½Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½Π°*/

if (Edit3->Text. Length () == 0) {

Button1->Enabled=false;

}

else Button1->Enabled=true;

}

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

void __fastcall TForm1: Edit5Change (TObject *Sender)

{

/*Если Edit5 Π½Π΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½, ΠΊΠ½ΠΎΠΏΠΊΠ° Button1 Π½Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½Π°*/

if (Edit5->Text. Length () == 0) {

Button1->Enabled=false;

}

else Button1->Enabled=true;

}

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

void __fastcall TForm1: Edit2Change (TObject *Sender)

{

/*Если Edit2 Π½Π΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½, ΠΊΠ½ΠΎΠΏΠΊΠ° Button1 Π½Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½Π°*/

if (Edit2->Text. Length () == 0) {

Button1->Enabled=false;

}

else Button1->Enabled=true;

}

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

void __fastcall TForm1: Edit4Change (TObject *Sender)

{

/*Если Edit4 Π½Π΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½, ΠΊΠ½ΠΎΠΏΠΊΠ° Button1 Π½Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½Π°*/

if (Edit4->Text. Length () == 0) {

Button1->Enabled=false;

}

else Button1->Enabled=true;

}

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

void __fastcall TForm1: Edit6Change (TObject *Sender)

{

/*Если Edit6 Π½Π΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½, ΠΊΠ½ΠΎΠΏΠΊΠ° Button1 Π½Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½Π°*/

if (Edit6->Text. Length () == 0) {

Button1->Enabled=false;

}

else Button1->Enabled=true;

}

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

void __fastcall TForm1: FormKeyPress (TObject *Sender, char &Key)

{

if ((Key == VK_RETURN) && (Edit1->Text. Length () > 0) && (Edit2->Text. Length () > 0)

&& (Edit3->Text. Length () > 0) && (Edit4->Text. Length () > 0)

&& (Edit5->Text. Length () > 0) && (Edit6->Text. Length () > 0))

{Button1->Default = True; }

}

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

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