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

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π½ΠΎΠ³ΠΎ Ρ‚Ρ€Π΅Π½Π°ΠΆΡ‘Ρ€Π°

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

Π’ ΡΠΎΠΎΡ‚вСтствии с ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΈΠ· ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Ρ… классов соотвСтствуСт опрСдСлСнная Π³Ρ€ΡƒΠΏΠΏΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² со ΡΠ²ΠΎΠΈΠΌΠΈ событиями. Π’ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ использования Ρ‚ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, активизируСтся событиС, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰Π΅Π΅ этому ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ, ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ся ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ дСйствий (ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎ дСйствиС), ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π² Π½Π΅ΠΌ. ВсС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

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

ΠšΡƒΡ€ΡΠΎΠ²ΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎ Π΄ΠΈΡΡ†ΠΈΠΏΠ»ΠΈΠ½Π΅ «Π‘истСмноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС»

" Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π½ΠΎΠ³ΠΎ Ρ‚Ρ€Π΅Π½Π°ΠΆΡ‘Ρ€Π°"

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚

ΠŸΠΎΡΡΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ записка: ____ листа, ___ рисунков, ___ источника, ___ прилоТСния.

ЦСлью Ρ€Π°Π±ΠΎΡ‚Ρ‹ являСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΡƒΡ‡Π΅Π±Π½ΠΎΠ³ΠΎ прилоТСния, ΠΈΠ³Ρ€Π°ΡŽΡ‰Π΅Π³ΠΎ Ρ€ΠΎΠ»ΡŒ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π½ΠΎΠ³ΠΎ Ρ‚Ρ€Π΅Π½Π°ΠΆΡ‘Ρ€Π°, с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ установок Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΏΡ†ΠΈΠΉ.

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

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° написана с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… срСдств Borland C++Builder 6.0.

  • Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅
  • 1. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ·
  • 2. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ систСмы
  • 3. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
  • 4. ВСстированиС ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
  • Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅
  • Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… источников
  • ВСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ — это ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, основанный Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ…, Π° Π½Π΅ Π½Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°Ρ…. Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволяСт ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ «ΡΠΎΠΊΡ€Ρ‹Ρ‚ия ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ» .

ООП ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ классов. ΠšΠ»Π°ΡΡΡ‹ — это ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ самый ΠΌΠ΅Π»ΠΊΠΈΠΉ элСмСнт Ρ‚ΠΎΠΉ структуры, которая ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠžΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ Π² Ρ†Π΅Π»ΠΎΠΌ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ класс ΠΈΠΌΠ΅Π΅Ρ‚ свои свойства, свои ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ свои события. НСпрСмСнным свойством истинного ОО-языка являСтся инкапсуляция, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ «Π·Π°ΠΊΡƒΠΏΠΎΡ€Π΅Π½Π½ΠΎΡΡ‚ΡŒ» ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Ρ‚ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ явлСния Π² ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ…. Π’ΠΎΠΎΠ±Ρ‰Π΅, инкапсуляция основана Π½Π° ΠΎΠ±Π»Π°ΡΡ‚ΠΈ видимости Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Класса. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, программист Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, созданныС Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ программистами, ΠΈ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½Π΅ Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°Π΅Ρ‚ся, ΠΊΠ°ΠΊ всС это устроСно, ΠΎΠ½ ΠΏΡ€ΠΎΡΡ‚ΠΎ довСряСт «ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°» ΠΈ Π²ΡΠ΅Ρ†Π΅Π»ΠΎ занят лишь Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Π·Π°Π΄Π°Ρ‡ΠΈ, поставлСнной ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π΅ΠΌΡƒ.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ΅ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Borland Π‘++ Builder 6.0 ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρƒ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°.

ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π½Ρ‹ΠΉ Ρ‚Ρ€Π΅Π½Π°ΠΆΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° тСстированиС

1. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ·

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

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

Для Π΅Π΅ ΠΏΠΎΡΡ‚роСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ:

Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π°ΠΊΡ‚Π΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ дСйствия;

ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ систСмы ΠΏΡ€ΠΈ Ρ‚ΠΎΠΌ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ использования.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ использования состоит ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ дСйствий Π°ΠΊΡ‚Π΅Ρ€Π° ΠΈ ΡΠΈΡΡ‚Π΅ΠΌΡ‹.

Данная Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° (ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ°ΠΌ, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌ Π½ΠΈΠΆΠ΅) Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ построСна срСдствами UML — ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ языка модСлирования. Он Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ наглядного прСдставлСния ΠΌΠΎΠ΄Π΅Π»ΠΈ, понятного всСм Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΌ с UML ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ этапы Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ систСмы.

Π―Π·Ρ‹ΠΊ UML Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π² 1997 Π³ΠΎΠ΄Ρƒ Π”. Π Π°ΠΌΠ±ΠΎ ΠΈ Π“. Π‘ΡƒΡ‡Π΅ΠΌ.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ для ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ использования. Оно разрабатываСтся Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ задания Π½Π° ΠΊΡƒΡ€ΡΠΎΠ²ΠΎΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ Π΄ΠΈΡΡ†ΠΈΠΏΠ»ΠΈΠ½Π΅ «Π‘истСмноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС» .

НазначСниС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ: Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ³Ρ€Π°Ρ‚ΡŒ Ρ€ΠΎΠ»ΡŒ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π½ΠΎΠ³ΠΎ Ρ‚Ρ€Π΅Π½Π°ΠΆΠ΅Ρ€Π°.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ прилоТСния:

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΉ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ русского языка, английского языка, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов.

Установка Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΎΠΏΡ†ΠΈΠΉ: Ρ€Π΅ΠΆΠΈΠΌ Ρ‚Ρ€Π΅Π½Π°ΠΆΠ΅Ρ€Π°, ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π²Ρ€Π΅ΠΌΡ выполнСния.

Π’Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Ρ‚Ρ€Π΅Π½ΠΈΠ½Π³Π° Π² Π²ΠΈΠ΄Π΅ гистограммы распрСдСлСния частоты ошибок Π½Π°Π±ΠΈΡ€Π°Π΅ΠΌΡ‹Ρ… символов.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΡΡ€Π΅Π΄Π΅ WindΠΎws XP.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ трСбуСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Borland C++Builder 6.0.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ прилоТСния;

установка Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΎΠΏΡ†ΠΈΠΉ

Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ упраТнСния

Π²Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π² Π³Ρ€Π°Ρ„ичСском Ρ€Π΅ΠΆΠΈΠΌΠ΅

Π²Ρ‹Π²ΠΎΠ΄ справочных Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅

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

На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 1 прСдставлСна Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² использования (use case diagram) для Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ прилоТСния.

Рисунок 1 — Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² использования

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ использования «ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ справки» :

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΏΡƒΠ½ΠΊΡ‚ мСню «Π‘ΠΏΡ€Π°Π²ΠΊΠ°» .

БистСма Π²Ρ‹Π΄Π°Ρ‘Ρ‚ ΠΎΠΊΠ½ΠΎ с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ справку.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ использования «Π’Ρ€Π΅Π½ΠΈΠ½Π³» :

Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΆΠ΅Π»Π°Π΅Ρ‚ Π·Π°Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ настройки, Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ «Π—Π°Π΄Π°Π½ΠΈΠ΅ настроСк» .

Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΡƒΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ настройки ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (ВрСмя Ρ‚Ρ€Π΅Π½ΠΈΠ½Π³Π° — 1 ΠΌΠΈΠ½ΡƒΡ‚Π°, Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ слоТности — ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉ, Π Π΅ΠΆΠΈΠΌ Π±ΡƒΠΊΠ² — Русский), ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΏΡƒΠ½ΠΊΡ‚ мСню «ΠΠ°Ρ‡Π°Ρ‚ΡŒ Ρ‚Ρ€Π΅Π½ΠΈΠ½Π³» .

Π”ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΈΡΡ‚Π΅ΠΊΠ»ΠΎ врСмя Ρ‚Ρ€Π΅Π½ΠΈΠ½Π³Π°, систСма ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π½Π° ΡΠΊΡ€Π°Π½Π΅ ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΉ символ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΉ систСмой случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Если Π²Ρ‹Π±Ρ€Π°Π½ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ слоТности «ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉ», Ρ‚ΠΎ ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΠ°Π΄Π°Π΅Ρ‚ с Π½ΠΈΠ·ΠΊΠΎΠΉ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ. Если Π²Ρ‹Π±Ρ€Π°Π½ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ слоТности «Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ», Ρ‚ΠΎ ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΠ°Π΄Π°Π΅Ρ‚ со ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ, Π² 2 Ρ€Π°Π·Π° большСй, Ρ‡Π΅ΠΌ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ слоТности «ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉ». Если Π²Ρ‹Π±Ρ€Π°Π½ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ слоТности «ΠŸΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»», Ρ‚ΠΎ ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΠ°Π΄Π°Π΅Ρ‚ со ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ, Π² 3 Ρ€Π°Π·Π° большСй, Ρ‡Π΅ΠΌ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ слоТности «ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉ» .

БистСма ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ подсказку Π² Π²ΠΈΠ΄Π΅ подсвСчивания красным Ρ†Π²Π΅Ρ‚ΠΎΠΌ Π½ΡƒΠΆΠ½ΠΎΠΉ клавиши Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅ Π²Π½ΠΈΠ·Ρƒ экрана.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅, которая, ΠΊΠ°ΠΊ ΠΎΠ½ ΡΡ‡ΠΈΡ‚Π°Π΅Ρ‚, соотвСтствуСт ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΡ‘Π½Π½ΠΎΠΌΡƒ систСмой Π½Π° ΡΠΊΡ€Π°Π½Π΅ символу.

Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠ°Π» Π²Π΅Ρ€Π½ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ, Ρ‚ΠΎ ΡΠΈΡΡ‚Π΅ΠΌΠ° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π½Π° ΡΠΊΡ€Π°Π½Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ символ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΉ систСмой случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠ°Π» Π½Π΅Π²Π΅Ρ€Π½ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ ΠΈΠ»ΠΈ врСмя для Π½Π°Π±ΠΎΡ€Π° символа истСкло, Ρ‚ΠΎ ΡΡ‡Ρ‘Ρ‚Ρ‡ΠΈΠΊ ошибок ΠΏΠΎ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎ Π½Π°Π±Ρ€Π°Π½Π½ΠΎΠΌΡƒ символу ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ своё Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π“истограмма ошибок». БистСма Π²Ρ‹Π΄Π°Ρ‘Ρ‚ гистограмму распрСдСлСния частоты ошибок Π½Π°Π±ΠΈΡ€Π°Π΅ΠΌΡ‹Ρ… символов, ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ счётчиков ошибок ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ символу, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΡ‘Π½Π½ΠΎΠΌΡƒ Π½Π° ΡΠΊΡ€Π°Π½Π΅ систСмой.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ использования «Π—Π°Π΄Π°Π½ΠΈΠ΅ настроСк» :

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ врСмя Ρ‚Ρ€Π΅Π½ΠΈΠ½Π³Π° Π² ΠΎΠΊΠ½ΠΎ Π²Π²ΠΎΠ΄Π°.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ слоТности Π² Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅ΠΌ спискС (ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉ, Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ, ΠŸΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»).

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Ρ€Π΅ΠΆΠΈΠΌΠ° Π±ΡƒΠΊΠ² русского, латинского Π°Π»Ρ„Π°Π²ΠΈΡ‚ΠΎΠ² ΠΈΠ»ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ» .

БистСма сохраняСт настройки.

2. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ систСмы

Учитывая Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ систСма, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΅Π΅ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΡƒ, построим Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ классов — Class Diagram (см. Ρ€ΠΈΡΡƒΠ½ΠΎΠΊ 2, 3,4), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ взаимодСйствиС классов Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅ «ΠšΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π½Ρ‹ΠΉ Ρ‚Ρ€Π΅Π½Π°ΠΆΡ‘Ρ€» для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² использования. ВсС классы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, ΡΠ²Π»ΡΡŽΡ‚ΡΡ стандартными, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ класса Letter.

ΠŸΡ€ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ прСдставляСт собой ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΈΡ… Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚вия. Π’ Π΄Π°Π½Π½ΠΎΠΉ систСмС Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ классы:

Класс TForm:

ВсСго имССтся 4 ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π΄Π°Π½Π½ΠΎΠ³ΠΎ класса:

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Main — ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для выполнСния дСйствий Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ (установка ΠΎΠΏΡ†ΠΈΠΉ, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ прилоТСния, просмотр справки).

На Ρ„ΠΎΡ€ΠΌΠ΅ Main располоТСн ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса TMainMenu, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ выполнСния дСйствий Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Options — ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для установки Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΎΠΏΡ†ΠΈΠΉ (Ρ€Π΅ΠΆΠΈΠΌ Ρ‚Ρ€Π΅Π½Π°ΠΆΠ΅Ρ€Π°, ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π²Ρ€Π΅ΠΌΡ выполнСния).

На Ρ„ΠΎΡ€ΠΌΠ΅ Options располоТСны ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹: ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса TComboBox, ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса TEdit, ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса TUpDown, ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса TRadioGroup, ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса TLabel, ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса TButton, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ для установок Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΎΠΏΡ†ΠΈΠΉ.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Training — ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для выполнСния упраТнСния

На Ρ„ΠΎΡ€ΠΌΠ΅ Training располоТСны ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹: ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса TPanel, ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса TButton, 2 ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса TTimer, 104 ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса TSpeedButton, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для обСспСчСния выполнСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… дСйствий.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Diagram — ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΌ ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΈ Π² Π³Ρ€Π°Ρ„ичСском Ρ€Π΅ΠΆΠΈΠΌΠ΅.

На Ρ„ΠΎΡ€ΠΌΠ΅ Diagram располоТСны ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹: ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса TChart. Класс Letter:

ВсСго имССтся 1 ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΄Π°Π½Π½ΠΎΠ³ΠΎ класса: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ bukva ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для формирования ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° Π½ΠΎΠ²ΠΎΠ³ΠΎ символа, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅.

Рисунок 2 — Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° классов для Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° использования «Π’Ρ€Π΅Π½ΠΈΠ½Π³»

Рисунок 3 — Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° классов для Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° использования «ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ справки»

Рисунок 4 — Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° классов для Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° использования «Π—Π°Π΄Π°Π½ΠΈΠ΅ настроСк»

ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΠΌ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ (Interaction Diagram), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ дСйствий, выполняСмых ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΈ ΡΠΈΡΡ‚Π΅ΠΌΠΎΠΉ, Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅ «ΠšΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π½Ρ‹ΠΉ Ρ‚Ρ€Π΅Π½Π°ΠΆΡ‘Ρ€» для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² использования. Ось Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π° свСрху Π²Π½ΠΈΠ·. На Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ классов, созданных Π² Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ классов. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ линию ΠΆΠΈΠ·Π½ΠΈ.

На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 5 ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ для Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° использования «Π’Ρ€Π΅Π½ΠΈΠ½Π³» .

Рисунок 5 — Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ для Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° использования «Π’Ρ€Π΅Π½ΠΈΠ½Π³»

Π‘Π½Π°Ρ‡Π°Π»Π° пСрСдаётся сообщСниС ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ класса ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ N2 класса TMenuItem — OnClick (). Π—Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° N2 класса TMenuItem ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Training класса TTraining пСрСдаётся сообщСниС Show (). Π”Π°Π»Π΅Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Training класса TTraining ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚ сообщСниС сам сСбС — FormActivate (). Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Training класса TTraining ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚ сообщСниС OnTimer () ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Timer2 класса TTimer. Пока Π½Π΅ ΠΈΡΡ‚Π΅ΠΊΠ»ΠΎ врСмя Ρ‚Ρ€Π΅Π½ΠΈΠ½Π³Π°, ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Training класса TTraining ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Timer1 класса TTimer пСрСдаётся сообщСниС OnTimer (), ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Timer1 класса TTimer — сообщСния AddYLet (), AddEY1EY2 (), DrawLetter (), SetXLet (), SetYLet (), SetEX1EX2 (), SetEY1EY2 (), newbukva (). ПослС этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ bukva класса Letter Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ свою линию ΠΆΠΈΠ·Π½ΠΈ. Π”Π°Π»Π΅Π΅ начинаСтся линия ΠΆΠΈΠ·Π½ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Button1 класса TButton. Π—Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ класса ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Button1 класса TButton пСрСдаётся сообщСниС Button1Click (). Π—Π°Ρ‚Π΅ΠΌ начинаСтся линия ΠΆΠΈΠ·Π½ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Diagram класса TDiagram. Π”Π°Π»Π΅Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Button1 класса TButton ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚ сообщСниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Diagram класса TDiagram — FormActivate (). ПослС этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ класса ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚ сообщСниС FormClose () ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Diagram класса TDiagram. ПослС этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Diagram класса TDiagram Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ свою линию ΠΆΠΈΠ·Π½ΠΈ. Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ класса ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚ сообщСниС FormClose () ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Training класса TTraining. ПослС этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Timer2 класса TTimer, Timer1 класса TTimer, Button1 класса TButton ΠΈ Training класса TTraining Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‚ свою линию ΠΆΠΈΠ·Π½ΠΈ.

На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 6 ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ для Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° использования «ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ справки» .

Рисунок 6 — Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ для Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° использования «ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ справки»

Π‘Π½Π°Ρ‡Π°Π»Π° пСрСдаётся сообщСниС ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ класса ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ N3 класса TMenuItem — OnClick (). Π”Π°Π»Π΅Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ N3 класса TMenuItem ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚ сообщСниС сам сСбС — ShowMessage ().

На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 7 ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ для Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° использования «Π—Π°Π΄Π°Π½ΠΈΠ΅ настроСк» .

Рисунок 7 — Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ для Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° использования «Π—Π°Π΄Π°Π½ΠΈΠ΅ настроСк»

Π‘Π½Π°Ρ‡Π°Π»Π° пСрСдаётся сообщСниС ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ класса ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ N1 класса TMenuItem — OnClick (). Π—Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° N1 класса TMenuItem ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Options класса TOptions пСрСдаётся сообщСниС Show (). Π”Π°Π»Π΅Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Options класса TOptions ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚ сообщСниС сам сСбС — FormActivate (). Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Options класса TOptions ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚ сообщСниС Click () ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ RadioGroup1 класса TRadioGroup. ПослС этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Options класса TOptions ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚ сообщСниС OnCloseUp () ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ ComboBox1 класса TComboBox. Π”Π°Π»Π΅Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Options класса TOptions ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚ сообщСниС OnChange () ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Edit1 класса TEdit. Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Options класса TOptions ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚ сообщСниС BitBtn1Click () ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ BitBtn1 класса TBitBtn.

Для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° RadioGroup1 Π±Ρ‹Π»Π° составлСна Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° состояний (Statechart Diagram), которая ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ состояниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π²ΠΎ Π²Ρ€Π΅ΠΌΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы. Она прСдставлСна Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 8.

Рисунок 8 — Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° состояний ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° RadioGroup1 систСмы «ΠšΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π½Ρ‹ΠΉ Ρ‚Ρ€Π΅Π½Π°ΠΆΡ‘Ρ€»

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ RadioGroup1 ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ‚Ρ€Ρ‘Ρ… состояниях:

1) Π²Ρ‹Π±Ρ€Π°Π½ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ;

2) Π²Ρ‹Π±Ρ€Π°Π½ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ;

3) Π²Ρ‹Π±Ρ€Π°Π½ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ.

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

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

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

ΠœΠΎΠ΄ΡƒΠ»ΡŒ UnMain. ВСкст Π΄Π°Π½Π½ΠΎΠ³ΠΎ модуля Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ Π² Ρ„Π°ΠΉΠ»Π΅ UnMain. cpp, Π° ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΡ (ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, констант, Ρ‚ΠΈΠΏΠΎΠ², классов, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ) Π² Ρ„Π°ΠΉΠ»Π΅ UnMain. h. ΠœΠΎΠ΄ΡƒΠ»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ 3 Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

__fastcall TMain: TMain (TComponent* Owner: TForm (Owner) — конструктор Ρ„ΠΎΡ€ΠΌΡ‹ Main.

void __fastcall TMain: N3Click (TObject *Sender), void __fastcall TMain: N1Click (TObject *Sender), void __fastcall TMain: N2Click (TObject *Sender) — ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ управлСния Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΊΠ½Π°.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ UnOptions. ВСкст модуля содСрТится Π² Ρ„Π°ΠΉΠ»Π΅ UnOptions. cpp.

Он Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ основныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (события):

TOptions: TOptions (TComponent* Owner): TForm (Owner) — конструктор Ρ„ΠΎΡ€ΠΌΡ‹ Options.

__fastcall TOptions: FormActivate (TObject *Sender) — установка Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния Π² Ρ‚СкстовоС ΠΏΠΎΠ»Π΅

__fastcall TOptions: BitBtn1Click (TObject *Sender) — установка ΠΎΠΏΡ†ΠΈΠΉ

ΠœΠΎΠ΄ΡƒΠ»ΡŒ unTraining. ВСкст модуля содСрТится Π² Ρ„Π°ΠΉΠ»Π΅ unTraining. cpp.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ содСрТит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

__fastcall TTraining: TTraining (TComponent* Owner): TForm (Owner) — конструктор Ρ„ΠΎΡ€ΠΌΡ‹ Training.

_SetFont () — Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ² ΠΊΠ½ΠΎΠΏΠΎΠΊ Π² ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

KeyInput (int TType, char InKey) — Π°Π½Π°Π»ΠΈΠ· ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ клавиши

ConType (int TType) — прорисовка ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΏΡƒΡ‚Π΅ΠΌ отобраТСния Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΊΠ½ΠΎΠΏΠΊΠ°Ρ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… символов

KeyLetter (int TType) — Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π±ΡƒΠΊΠ²Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ

__fastcall TTraining: Timer1Timer (TObject *Sender) — Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠΊΠ²Ρ‹ Π²Π½ΠΈΠ·

__fastcall TTraining: FormActivate (TObject *Sender) — установка Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ

__fastcall TTraining: FormKeyPress (TObject *Sender, char &Key) — Π°Π½Π°Π»ΠΈΠ· Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ клавиши

__fastcall TTraining: Timer2Timer (TObject *Sender) — отсчСт Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния прилоТСния

__fastcall TTraining: Button1Click (TObject *Sender) — ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ ошибок

ΠœΠΎΠ΄ΡƒΠ»ΡŒ unDiagram. ВСкст модуля содСрТится Π² Ρ„Π°ΠΉΠ»Π΅ unDiagram. cpp.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ содСрТит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

__fastcall TDiagram: TDiagram (TComponent* Owner): TForm (Owner) — конструктор Ρ„ΠΎΡ€ΠΌΡ‹ Diagram.

__fastcall TDiagram: FormActivate (TObject *Sender) — построСниС Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ ошибок.

ВСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ…ся Π² Π½Π΅ΠΉ классов ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ А.

4. ВСстированиС ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ испытания являСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Train, находящаяся Π² ΠΏΠ°ΠΏΠΊΠ΅ ΠšΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π½Ρ‹ΠΉ Ρ‚Ρ€Π΅Π½Π°ΠΆΡ‘Ρ€ (листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ находится Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ А).

Π˜ΡΠΏΡ‹Ρ‚Π°Π½ΠΈΡ проводятся с Ρ†Π΅Π»ΡŒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ функционирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π²Ρ‹ΡΠ²Π»Π΅Π½ΠΈΡ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ нСдостатков.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² ΡΡ€Π΅Π΄Π΅ WindΠΎws XP.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Borland C++Builder 6.0.

Для провСдСния испытания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Train Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΎΠΉΡ‚ΠΈ Π² Borland C++Builder 6.0 (ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΠΎΠΉ вСрсии) ΠΈ ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ ΠšΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π½Ρ‹ΠΉ Ρ‚Ρ€Π΅Π½Π°ΠΆΡ‘Ρ€ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Train. bpr ΠΈΠ»ΠΈ исполняСмый Ρ„Π°ΠΉΠ» Train. Π΅Ρ…Π΅ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ всСх Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² использования систСмы. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой Windows.

Π˜ΡΠΏΡ‹Ρ‚Π°Π½ΠΈΡ проводятся ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ:

Π°) Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ» Train. bpr, находящийся Π² ΠΏΠ°ΠΏΠΊΠ΅ Train ΠΈ ΡΡ€Π΅Π΄Π΅ программирования Borland C++ Builder 6.0 (см. Ρ€ΠΈΡΡƒΠ½ΠΎΠΊ Π‘.1);

Π±) Π² ΠΏΠΎΡΠ²ΠΈΠ²ΡˆΠ΅ΠΉΡΡ Π½Π° ΡΠΊΡ€Π°Π½ Ρ„ΠΎΡ€ΠΌΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡƒΠ½ΠΊΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ «Π—Π°Π΄Π°Π½ΠΈΠ΅ настроСк» (см. Ρ€ΠΈΡΡƒΠ½ΠΎΠΊ Π‘.2);

Π²) Π² ΠΏΠΎΡΠ²ΠΈΠ²ΡˆΠ΅ΠΉΡΡ Π½Π° ΡΠΊΡ€Π°Π½ Ρ„ΠΎΡ€ΠΌΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ввСсти врСмя Ρ‚Ρ€Π΅Π½ΠΈΠ½Π³Π° Π² ΠΎΠΊΠ½ΠΎ Π²Π²ΠΎΠ΄Π°, Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ слоТности Π² Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅ΠΌ спискС (ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉ, Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ, ΠŸΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»), Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Ρ€Π΅ΠΆΠΈΠΌΠ° Π±ΡƒΠΊΠ² русского, латинского Π°Π»Ρ„Π°Π²ΠΈΡ‚ΠΎΠ² ΠΈΠ»ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ» ;

Π³) ΠΏΡ€ΠΈ запускС Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Train. bpr Π² ΠΏΠΎΡΠ²ΠΈΠ²ΡˆΠ΅ΠΉΡΡ Π½Π° ΡΠΊΡ€Π°Π½ Ρ„ΠΎΡ€ΠΌΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡƒΠ½ΠΊΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ «Π‘ΠΏΡ€Π°Π²ΠΊΠ°» (см. Ρ€ΠΈΡΡƒΠ½ΠΎΠΊ Π‘.3) ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‘;

Π΄) ΠΏΡ€ΠΈ запускС Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Train. bpr Π² ΠΏΠΎΡΠ²ΠΈΠ²ΡˆΠ΅ΠΉΡΡ Π½Π° ΡΠΊΡ€Π°Π½ Ρ„ΠΎΡ€ΠΌΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡƒΠ½ΠΊΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ «ΠΠ°Ρ‡Π°Ρ‚ΡŒ Ρ‚Ρ€Π΅Π½ΠΈΠ½Π³» (см. Ρ€ΠΈΡΡƒΠ½ΠΎΠΊ Π‘.4);

Π΅) Π² ΠΏΠΎΡΠ²ΠΈΠ²ΡˆΠ΅ΠΉΡΡ Π½Π° ΡΠΊΡ€Π°Π½ Ρ„ΠΎΡ€ΠΌΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅ клавиши с Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ символами, Ρ‡Ρ‚ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹ Π½Π° ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅ΠΉ Π±ΡƒΠΊΠ²Π΅ (см. Ρ€ΠΈΡΡƒΠ½ΠΎΠΊ Π‘.4);

ΠΆ) ΠΏΠΎ ΠΈΡΡ‚Π΅Ρ‡Π΅Π½ΠΈΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ‚Ρ€Π΅Π½ΠΈΠ½Π³Π°, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΡ‘Π½Π½Ρ‹Π΅ Π½Π° Π³ΠΈΡΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ распрСдСлСния частоты ошибок Π½Π°Π±ΠΈΡ€Π°Π΅ΠΌΡ‹Ρ… символов (см. Ρ€ΠΈΡΡƒΠ½ΠΎΠΊ Π‘.5).

ΠŸΡ€ΠΎΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹Π΅ испытания ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π²Π΅Ρ€Π½ΠΎ ΠΈ Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ… Π»ΠΈΠ±ΠΎ ошибок.

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

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Ρ‹Π»ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ:

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· прилоТСния «ΠšΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π½Ρ‹ΠΉ Ρ‚Ρ€Π΅Π½Π°ΠΆΠ΅Ρ€», Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ явилось тСхничСскоС Π·Π°Π΄Π°Π½ΠΈΠ΅, построСнноС Π² Π²ΠΈΠ΄Π΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² использования.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ систСмы, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±Ρ‹Π»ΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½Ρ‹ классы ΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ€Ρ‹ классов (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹) ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ систСмы Π±Ρ‹Π» прСдставлСн Π² Π²ΠΈΠ΄Π΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ классов.

РСализация ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² ΡΡ€Π΅Π΄Π΅ Borland C++Builder 6.0 ΠΏΠΎΠ΄ Windows XP.

Π’ ΡΠΎΠΎΡ‚вСтствии с ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄, Ρ‡Ρ‚ΠΎ разработанная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π²Π΅Ρ€Π½ΠΎ, Π° Ρ‚рСбования тСхничСского задания Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ Π² ΠΏΠΎΠ»Π½ΠΎΠΌ объСмС.

Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… источников

1. 1 ΠΡ€Ρ…Π°Π½Π³Π΅Π»ΡŒΡΠΊΠΈΠΉ А. Π― ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² C++Builder 6.0. — Πœ.: Π—ΠΠž «Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ Π‘Π˜ΠΠžΠœ», 2003. — 1152 с.

2. Якобсон А., Π‘ΡƒΡ‡ Π“., Π Π°ΠΌΠ±ΠΎ Π”ΠΆ. Π£Π½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. — Π‘Пб.: ΠŸΠΈΡ‚Π΅Ρ€, 2002. — 496 с.

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

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

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

#include

#pragma hdrstop

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

USEFORM («UnMain. cpp», Main);

USEFORM («UnOptions. cpp», Options);

USEFORM («UnTraining. cpp», Training);

USEFORM («UnDiagram. cpp», Diagram);

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

WINAPI WinMain (HINSTANCE, HINSTANCE, LPSTR, int)

{

try

{

Application->Initialize ();

Application->Title="ΠšΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π½Ρ‹ΠΉ Ρ‚Ρ€Π΅Π½Π°ΠΆΡ‘Ρ€" ;

Application->CreateForm (__classid (TMain), &Main);

Application->CreateForm (__classid (TOptions), &Options);

Application->CreateForm (__classid (TTraining), &Training);

Application->CreateForm (__classid (TDiagram), &Diagram);

Application->Run ();

}

catch (Exception &exception)

{

Application->ShowException (&exception);

}

catch (.)

{

try

{

throw Exception (««);

}

catch (Exception &exception)

{

Application->ShowException (&exception);

}

}

return 0;

}

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

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

#include

#pragma hdrstop

#include «UnMain. h»

#include «UnOptions. h»

#include «UnTraining. h»

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

#pragma package (smart_init)

#pragma resource «*. dfm»

TMain *Main;

int Time = 1, Lang = 0, Lev = 0;

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

__fastcall TMain: TMain (TComponent* Owner)

: TForm (Owner)

{

}

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

void __fastcall TMain: N3Click (TObject *Sender)

{

ShowMessage («Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π·Π°Π΄Π°Π½Ρ‹ настройки ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (ВрСмя Ρ‚Ρ€Π΅Π½ΠΈΠ½Π³Π° — 1 ΠΌΠΈΠ½ΡƒΡ‚Π°, Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ слоТности — ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉ, Π Π΅ΠΆΠΈΠΌ Π±ΡƒΠΊΠ² — Русский). Если Π’Ρ‹ ΠΆΠ΅Π»Π°Π΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ настройки, Ρ‚ΠΎ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡƒΠ½ΠΊΡ‚ мСню Π—Π°Π΄Π°Π½ΠΈΠ΅ настроСк. Π’ ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ слоТности Π² Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅ΠΌ спискС (ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉ, Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ, ΠŸΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»), ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Ρ€Π΅ΠΆΠΈΠΌΠ° Π±ΡƒΠΊΠ² русского, латинского Π°Π»Ρ„Π°Π²ΠΈΡ‚ΠΎΠ² ΠΈΠ»ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ врСмя Ρ‚Ρ€Π΅Π½ΠΈΠ½Π³Π° Π² ΠΎΠΊΠ½ΠΎ Π²Π²ΠΎΠ΄Π° ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡƒΠ½ΠΊΡ‚ мСню ΠΠ°Ρ‡Π°Ρ‚ΡŒ Ρ‚Ρ€Π΅Π½ΠΈΠ½Π³. НаТимайтС ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅, которая, ΠΊΠ°ΠΊ Π²Ρ‹ ΡΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅, соотвСтствуСт ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΡ‘Π½Π½ΠΎΠΌΡƒ систСмой Π½Π° ΡΠΊΡ€Π°Π½Π΅ символу. Π’Π½ΠΈΠ·Ρƒ экрана отобраТаСтся подсказка Π² Π²ΠΈΠ΄Π΅ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ с ΠΏΠΎΠ΄ΡΠ²Π΅Ρ‡Π΅Π½Π½ΠΎΠΉ Π½ΡƒΠΆΠ½ΠΎΠΉ клавишСй. По ΠΈΡΡ‚Π΅Ρ‡Π΅Π½ΠΈΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ‚Ρ€Π΅Π½ΠΈΠ½Π³Π° Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Гистограмма ошибок ΠΈ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ гистограмму распрСдСлСния частоты ошибок Π½Π°Π±ΠΈΡ€Π°Π΅ΠΌΡ‹Ρ… символов. «);

}

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

void __fastcall TMain: N1Click (TObject *Sender)

{

Options->Show ();

}

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

void __fastcall TMain: N2Click (TObject *Sender)

{

Training->Show ();

}

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

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

#include

#pragma hdrstop

#include «unOptions. h»

#include «unTraining. h»

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

#pragma package (smart_init)

#pragma resource «*. dfm»

TOptions *Options;

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

__fastcall TOptions: TOptions (TComponent* Owner)

: TForm (Owner)

{

}

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

void __fastcall TOptions: RadioGroup1Click (TObject *Sender)

{

BitBtn1->Enabled = true;

}

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

void __fastcall TOptions: FormActivate (TObject *Sender)

{

extern Time;

Edit1->Text = Time;

}

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

void __fastcall TOptions: BitBtn1Click (TObject *Sender)

{

extern int Time, Lang, Lev;

Time = StrToInt (Edit1->Text);

Lang = RadioGroup1->ItemIndex;

Lev = ComboBox1->ItemIndex;

BitBtn1->Enabled = false;

switch (Lev)

{case 0: Training->Timer1->Interval = 100;

break;

case 1: Training->Timer1->Interval = 50;

break;

case 2: Training->Timer1->Interval = 25;

break;

}

Close ();

}

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

void __fastcall TOptions: ComboBox1CloseUp (TObject *Sender)

{

BitBtn1->Enabled = true;

}

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

void __fastcall TOptions: Edit1Change (TObject *Sender)

{

BitBtn1->Enabled = true;

}

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

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

#include

#pragma hdrstop

#include «UnTraining. h»

#include «UnDiagram. h»

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

#pragma package (smart_init)

#pragma resource «*. dfm»

class Letter

{private:

int XLet;

int YLet;

int EY1;

int EX1;

int EX2;

public:

int EY2;

char letter;

int count;

int alfa;

void setXLet (int X)

{XLet = X;

};

void setYLet (int Y)

{YLet = Y;

};

void AddYLet (int Y)

{YLet += Y;

};

void setEX1EX2 (int X1, int X2)

{EX1 = X1;

EX2 = X2;

};

void setEY1EY2 (int Y1, int Y2)

{EY1 = Y1;

EY2 = Y2;

};

void AddEY1EY2 (int Y1, int Y2)

{EY1 += Y1;

EY2 += Y2;

};

void newbukva (int TType)

{

if (TType == 0)

{

alfa = random (32) +1;

switch (alfa)

{case 1: letter = 'Π°'; break;

case 2: letter = 'Π±'; break;

case 3: letter = 'Π²'; break;

case 4: letter = 'Π³'; break;

case 5: letter = 'Π΄'; break;

case 6: letter = 'Π΅'; break;

case 7: letter = 'Ρ‘'; break;

case 8: letter = 'ΠΆ'; break;

case 9: letter = 'Π·'; break;

case 10: letter = 'ΠΈ'; break;

case 11: letter = 'ΠΉ'; break;

case 12: letter = 'ΠΊ'; break;

case 13: letter = 'Π»'; break;

case 14: letter = 'ΠΌ'; break;

case 15: letter = 'Π½'; break;

case 16: letter = 'ΠΎ'; break;

case 17: letter = 'ΠΏ'; break;

case 18: letter = 'Ρ€'; break;

case 19: letter = 'с'; break;

case 20: letter = 'Ρ‚'; break;

case 21: letter = 'Ρƒ'; break;

case 22: letter = 'Ρ„'; break;

case 23: letter = 'Ρ…'; break;

case 24: letter = 'Ρ†'; break;

case 25: letter = 'Ρ‡'; break;

case 26: letter = 'ш'; break;

case 27: letter = 'Ρ‰'; break;

case 28: letter = 'ъ'; break;

case 29: letter = 'Ρ‹'; break;

case 30: letter = 'ь'; break;

case 31: letter = 'э'; break;

case 32: letter = 'ю'; break;

case 33: letter = 'я'; break;

}

}

if (TType == 1)

{

alfa = random (26) +1;

switch (alfa)

{case 1: letter = 'a'; break;

case 2: letter = 'b'; break;

case 3: letter = 'c'; break;

case 4: letter = 'd'; break;

case 5: letter = 'e'; break;

case 6: letter = 'f'; break;

case 7: letter = 'g'; break;

case 8: letter = 'h'; break;

case 9: letter = 'i'; break;

case 10: letter = 'j'; break;

case 11: letter = 'k'; break;

case 12: letter = 'l'; break;

case 13: letter = 'm'; break;

case 14: letter = 'n'; break;

case 15: letter = 'o'; break;

case 16: letter = 'p'; break;

case 17: letter = 'q'; break;

case 18: letter = 'r'; break;

case 19: letter = 's'; break;

case 20: letter = 't'; break;

case 21: letter = 'u'; break;

case 22: letter = 'v'; break;

case 23: letter = 'w'; break;

case 24: letter = 'x'; break;

case 25: letter = 'y'; break;

case 26: letter = 'z'; break;

}

}

if (TType == 2)

{

alfa = random (23) +1;

switch (alfa)

{case 1: letter = '1'; break;

case 2: letter = '2'; break;

case 3: letter = '3'; break;

case 4: letter = '4'; break;

case 5: letter = '5'; break;

case 6: letter = '6'; break;

case 7: letter = '7'; break;

case 8: letter = '8'; break;

case 9: letter = '9'; break;

case 10: letter = '0'; break;

case 11: letter = '-'; break;

case 12: letter = '='; break;

case 13: letter = '\'; break;

case 14: letter = '`'; break;

case 15: letter = ' ['; break;

case 16: letter = '] '; break;

case 17: letter = '; '; break;

case 18: letter = '" '; break;

case 19: letter = ','; break;

case 20: letter = '. '; break;

case 21: letter = '/'; break;

case 22: letter = '*'; break;

case 23: letter = '+'; break;

}

}

count += 1;

};

void DrawLetter ()

{Training->Canvas->Brush->Color = clRed;

Training->Canvas->Ellipse (EX1,EY1,EX2,EY2);

Training->Canvas->TextOutA (XLet, YLet, letter);

};

};

Letter bukva; // ΠžΠ±ΡŠΠ΅ΠΊΡ‚ — экзСмпляр класса Letter

TTraining *Training;

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

__fastcall TTraining: TTraining (TComponent* Owner)

: TForm (Owner)

{

}

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

TTime present;

char input;

int i, count;

int QMistakes = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

char Mistakes = {'Π°','Π±','Π²','Π³','Π΄','Π΅','Ρ‘','ΠΆ','Π·','ΠΈ','ΠΉ','ΠΊ','Π»','ΠΌ','Π½','ΠΎ','ΠΏ','Ρ€','с','Ρ‚','Ρƒ','Ρ„','Ρ…','Ρ†','Ρ‡','ш','Ρ‰','ь','Ρ‹','ъ','э','ю','я'};

void _SetFont ()

{ Training->SpeedButton2->Font->Color = clBlack;

Training->SpeedButton13->Font->Color = clBlack;

Training->SpeedButton14->Font->Color = clBlack;

Training->SpeedButton15->Font->Color = clBlack;

Training->SpeedButton16->Font->Color = clBlack;

Training->SpeedButton17->Font->Color = clBlack;

Training->SpeedButton18->Font->Color = clBlack;

Training->SpeedButton19->Font->Color = clBlack;

Training->SpeedButton20->Font->Color = clBlack;

Training->SpeedButton21->Font->Color = clBlack;

Training->SpeedButton22->Font->Color = clBlack;

Training->SpeedButton23->Font->Color = clBlack;

Training->SpeedButton24->Font->Color = clBlack;

Training->SpeedButton25->Font->Color = clBlack;

Training->SpeedButton26->Font->Color = clBlack;

Training->SpeedButton27->Font->Color = clBlack;

Training->SpeedButton28->Font->Color = clBlack;

Training->SpeedButton29->Font->Color = clBlack;

Training->SpeedButton30->Font->Color = clBlack;

Training->SpeedButton31->Font->Color = clBlack;

Training->SpeedButton32->Font->Color = clBlack;

Training->SpeedButton33->Font->Color = clBlack;

Training->SpeedButton34->Font->Color = clBlack;

Training->SpeedButton35->Font->Color = clBlack;

Training->SpeedButton36->Font->Color = clBlack;

Training->SpeedButton37->Font->Color = clBlack;

Training->SpeedButton38->Font->Color = clBlack;

Training->SpeedButton39->Font->Color = clBlack;

Training->SpeedButton40->Font->Color = clBlack;

Training->SpeedButton41->Font->Color = clBlack;

Training->SpeedButton42->Font->Color = clBlack;

Training->SpeedButton43->Font->Color = clBlack;

Training->SpeedButton44->Font->Color = clBlack;

Training->SpeedButton45->Font->Color = clBlack;

Training->SpeedButton46->Font->Color = clBlack;

Training->SpeedButton47->Font->Color = clBlack;

Training->SpeedButton48->Font->Color = clBlack;

Training->SpeedButton49->Font->Color = clBlack;

Training->SpeedButton50->Font->Color = clBlack;

Training->SpeedButton51->Font->Color = clBlack;

Training->SpeedButton52->Font->Color = clBlack;

Training->SpeedButton53->Font->Color = clBlack;

Training->SpeedButton54->Font->Color = clBlack;

Training->SpeedButton55->Font->Color = clBlack;

Training->SpeedButton56->Font->Color = clBlack;

Training->SpeedButton57->Font->Color = clBlack;

Training->SpeedButton58->Font->Color = clBlack;

Training->SpeedButton59->Font->Color = clBlack;

Training->SpeedButton60->Font->Color = clBlack;

Training->SpeedButton98->Font->Color = clBlack;

Training->SpeedButton93->Font->Color = clBlack;

Training->SpeedButton22->Font->Color = clBlack;

Training->SpeedButton21->Font->Color = clBlack;

Training->SpeedButton20->Font->Color = clBlack;

Training->SpeedButton34->Font->Color = clBlack;

Training->SpeedButton33->Font->Color = clBlack;

Training->SpeedButton2->Font->Size = 12;

Training->SpeedButton13->Font->Size = 12;

Training->SpeedButton14->Font->Size = 12;

Training->SpeedButton15->Font->Size = 12;

Training->SpeedButton16->Font->Size = 12;

Training->SpeedButton17->Font->Size = 12;

Training->SpeedButton18->Font->Size = 12;

Training->SpeedButton19->Font->Size = 12;

Training->SpeedButton20->Font->Size = 12;

Training->SpeedButton21->Font->Size = 12;

Training->SpeedButton22->Font->Size = 12;

Training->SpeedButton23->Font->Size = 12;

Training->SpeedButton24->Font->Size = 12;

Training->SpeedButton25->Font->Size = 12;

Training->SpeedButton26->Font->Size = 12;

Training->SpeedButton27->Font->Size = 12;

Training->SpeedButton28->Font->Size = 12;

Training->SpeedButton29->Font->Size = 12;

Training->SpeedButton30->Font->Size = 12;

Training->SpeedButton31->Font->Size = 12;

Training->SpeedButton32->Font->Size = 12;

Training->SpeedButton33->Font->Size = 12;

Training->SpeedButton34->Font->Size = 12;

Training->SpeedButton35->Font->Size = 12;

Training->SpeedButton36->Font->Size = 12;

Training->SpeedButton37->Font->Size = 12;

Training->SpeedButton38->Font->Size = 12;

Training->SpeedButton39->Font->Size = 12;

Training->SpeedButton40->Font->Size = 12;

Training->SpeedButton41->Font->Size = 12;

Training->SpeedButton42->Font->Size = 12;

Training->SpeedButton43->Font->Size = 12;

Training->SpeedButton44->Font->Size = 12;

Training->SpeedButton45->Font->Size = 12;

Training->SpeedButton46->Font->Size = 12;

Training->SpeedButton47->Font->Size = 12;

Training->SpeedButton48->Font->Size = 12;

Training->SpeedButton49->Font->Size = 12;

Training->SpeedButton50->Font->Size = 12;

Training->SpeedButton51->Font->Size = 12;

Training->SpeedButton52->Font->Size = 12;

Training->SpeedButton53->Font->Size = 12;

Training->SpeedButton54->Font->Size = 12;

Training->SpeedButton55->Font->Size = 12;

Training->SpeedButton56->Font->Size = 12;

Training->SpeedButton57->Font->Size = 12;

Training->SpeedButton58->Font->Size = 12;

Training->SpeedButton59->Font->Size = 12;

Training->SpeedButton60->Font->Size = 12;

Training->SpeedButton33->Font->Size = 12;

Training->SpeedButton34->Font->Size = 12;

Training->SpeedButton20->Font->Size = 12;

Training->SpeedButton21->Font->Size = 12;

Training->SpeedButton22->Font->Size = 12;

Training->SpeedButton98->Font->Size = 12;

Training->SpeedButton92->Font->Size = 12;

Training->SpeedButton93->Font->Size = 12;

Training->SpeedButton94->Font->Size = 12;

Training->SpeedButton98->Font->Size = 12;

Training->SpeedButton104->Font->Size = 12;

}

bool KeyInput (int TType, char InKey)

{

if (TType == 0)

switch (InKey)

{case — 23: input = 'ΠΉ'; break;

case — 10: input = 'Ρ†'; break;

case — 13: input = 'Ρƒ'; break;

case — 22: input = 'ΠΊ'; break;

case — 27: input = 'Π΅'; break;

case — 19: input = 'Π½'; break;

case — 29: input = 'Π³'; break;

case — 8: input = 'ш'; break;

case — 7: input = 'Ρ‰'; break;

case — 25: input = 'Π·'; break;

case — 11: input = 'Ρ…'; break;

case — 6: input = 'ъ'; break;

case — 12: input = 'Ρ„'; break;

case — 5: input = 'Ρ‹'; break;

case — 30: input = 'Π²'; break;

case — 32: input = 'Π°'; break;

case — 17: input = 'ΠΏ'; break;

case — 16: input = 'Ρ€'; break;

case — 18: input = 'ΠΎ'; break;

case — 21: input = 'Π»'; break;

case — 28: input = 'Π΄'; break;

case — 26: input = 'ΠΆ'; break;

case — 3: input = 'э'; break;

case — 1: input = 'я'; break;

case — 9: input = 'Ρ‡'; break;

case — 15: input = 'с'; break;

case — 20: input = 'ΠΌ'; break;

case — 24: input = 'ΠΈ'; break;

case — 14: input = 'Ρ‚'; break;

case — 4: input = 'ь'; break;

case — 31: input = 'Π±'; break;

case — 2: input = 'ю'; break;

case — 72: input = 'Ρ‘'; break;

}

if (TType == 2)

switch (InKey)

{case 44: input = ','; break;

case 46: input = '. '; break;

case 47: input = '/'; break;

case 42: input = '*'; break;

case 43: input = '+'; break;

case 59: input = '; '; break;

case 39: input = '" '; break;

case 96: input = '`'; break;

case 49: input = '1'; break;

case 50: input = '2'; break;

case 51: input = '3'; break;

case 52: input = '4'; break;

case 53: input = '5'; break;

case 54: input = '6'; break;

case 55: input = '7'; break;

case 56: input = '8'; break;

case 57: input = '9'; break;

case 48: input = '0'; break;

case 91: input = ' ['; break;

case 93: input = '] '; break;

case 45: input = '-'; break;

case 61: input = '='; break;

case 92: input = '\'; break;

}

if (TType == 1)

switch (InKey)

{case 97: input = 'a'; break;

case 98: input = 'b'; break;

case 99: input = 'c'; break;

case 100: input = 'd'; break;

case 101: input = 'e'; break;

case 102: input = 'f'; break;

case 103: input = 'g'; break;

case 104: input = 'h'; break;

case 105: input = 'i'; break;

case 106: input = 'j'; break;

case 107: input = 'k'; break;

case 108: input = 'l'; break;

case 109: input = 'm'; break;

case 110: input = 'n'; break;

case 111: input = 'o'; break;

case 112: input = 'p'; break;

case 113: input = 'q'; break;

case 114: input = 'r'; break;

case 115: input = 's'; break;

case 116: input = 't'; break;

case 117: input = 'u'; break;

case 118: input = 'v'; break;

case 119: input = 'w'; break;

case 120: input = 'x'; break;

case 121: input = 'y'; break;

case 122: input = 'z'; break;

}

if (bukva. letter! = input)

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

if (bukva. letter == Mistakes [i])

{QMistakes [i] =QMistakes [i] +1;

break;

}

return false;

}

if (bukva. letter == input)

{bukva. setXLet (313);

bukva. setYLet (5);

bukva. setEX1EX2 (305,330);

bukva. setEY1EY2 (0,25);

_SetFont ();

return true;

}

};

void ConType (int TType)

{

extern int Lang;

if (TType == 0)

{ Training->SpeedButton2->Caption ="Ρ‘" ;

Training->SpeedButton13->Caption ="я" ;

Training->SpeedButton14->Caption ="Ρ‡" ;

Training->SpeedButton15->Caption ="с" ;

Training->SpeedButton16->Caption ="ΠΌ" ;

Training->SpeedButton17->Caption ="ΠΈ" ;

Training->SpeedButton18->Caption ="Ρ‚" ;

Training->SpeedButton19->Caption ="ь" ;

Training->SpeedButton20->Caption ="Π±" ;

Training->SpeedButton21->Caption ="ю" ;

Training->SpeedButton22->Caption =". «;

Training->SpeedButton24->Caption ="Ρ„" ;

Training->SpeedButton25->Caption ="Ρ‹" ;

Training->SpeedButton26->Caption ="Π²" ;

Training->SpeedButton27->Caption ="Π°" ;

Training->SpeedButton28->Caption ="ΠΏ" ;

Training->SpeedButton29->Caption ="Ρ€" ;

Training->SpeedButton30->Caption ="ΠΎ" ;

Training->SpeedButton31->Caption ="Π»" ;

Training->SpeedButton32->Caption ="Π΄" ;

Training->SpeedButton33->Caption ="ΠΆ" ;

Training->SpeedButton34->Caption ="э" ;

Training->SpeedButton36->Caption ="ΠΉ" ;

Training->SpeedButton37->Caption ="Ρ†" ;

Training->SpeedButton38->Caption ="Ρƒ" ;

Training->SpeedButton39->Caption ="ΠΊ" ;

Training->SpeedButton40->Caption ="Π΅" ;

Training->SpeedButton41->Caption ="Π½" ;

Training->SpeedButton42->Caption ="Π³" ;

Training->SpeedButton43->Caption ="ш" ;

Training->SpeedButton44->Caption ="Ρ‰" ;

Training->SpeedButton45->Caption ="Π·" ;

Training->SpeedButton46->Caption ="Ρ…" ;

Training->SpeedButton47->Caption ="ъ" ;

};

if (TType == 1)

{ Training->SpeedButton13->Caption ="z" ;

Training->SpeedButton14->Caption ="x" ;

Training->SpeedButton15->Caption ="c" ;

Training->SpeedButton16->Caption ="v" ;

Training->SpeedButton17->Caption ="b" ;

Training->SpeedButton18->Caption ="n" ;

Training->SpeedButton19->Caption ="m" ;

Training->SpeedButton20->Caption ="," ;

Training->SpeedButton21->Caption =". «;

Training->SpeedButton22->Caption ="/" ;

Training->SpeedButton24->Caption ="a" ;

Training->SpeedButton25->Caption ="s" ;

Training->SpeedButton26->Caption ="d" ;

Training->SpeedButton27->Caption ="f" ;

Training->SpeedButton28->Caption ="g" ;

Training->SpeedButton29->Caption ="h" ;

Training->SpeedButton30->Caption ="j" ;

Training->SpeedButton31->Caption ="k" ;

Training->SpeedButton32->Caption ="l" ;

Training->SpeedButton33->Caption ="; «;

Training->SpeedButton34->Caption ="'" ;

Training->SpeedButton36->Caption ="q" ;

Training->SpeedButton37->Caption ="w" ;

Training->SpeedButton38->Caption ="e" ;

Training->SpeedButton39->Caption ="r" ;

Training->SpeedButton40->Caption ="t" ;

Training->SpeedButton41->Caption ="y" ;

Training->SpeedButton42->Caption ="u" ;

Training->SpeedButton43->Caption ="i" ;

Training->SpeedButton44->Caption ="o" ;

Training->SpeedButton45->Caption ="p" ;

Training->SpeedButton46->Caption =" [" ;

Training->SpeedButton47->Caption ="] «;

Mistakes = 'a'; Mistakes = 'b'; Mistakes = 'c'; Mistakes = 'd'; Mistakes = 'e'; Mistakes = 'f';

Mistakes = 'g'; Mistakes = 'h'; Mistakes = 'i'; Mistakes = 'j'; Mistakes = 'k';

Mistakes = 'l'; Mistakes = 'm'; Mistakes = 'n'; Mistakes = 'o'; Mistakes = 'p';

Mistakes = 'q'; Mistakes = 'r'; Mistakes = 's'; Mistakes = 't'; Mistakes = 'u';

Mistakes = 'v'; Mistakes = 'w'; Mistakes = 'x'; Mistakes = 'y'; Mistakes = 'z';

}

if (TType == 2)

{ Training->SpeedButton2->Caption ="`" ;

Training->SpeedButton20->Caption ="," ;

Training->SpeedButton21->Caption =". «;

Training->SpeedButton22->Caption ="/" ;

Training->SpeedButton58->Caption ="-" ;

Training->SpeedButton59->Caption ="=";

Training->SpeedButton60->Caption ="" ;

Training->SpeedButton93->Caption ="*" ;

Training->SpeedButton98->Caption ="+" ;

Training->SpeedButton104->Caption =". «;

Training->SpeedButton46->Caption =" [" ;

Training->SpeedButton47->Caption ="] «;

Training->SpeedButton33->Caption ="; «;

Training->SpeedButton34->Caption ="" «;

Mistakes = '`'; Mistakes = '1'; Mistakes = '2'; Mistakes = '3'; Mistakes = '4'; Mistakes = '5';

Mistakes = '6'; Mistakes = '7'; Mistakes = '8'; Mistakes = '9'; Mistakes = '0';

Mistakes = '-'; Mistakes = '='; Mistakes = '\'; Mistakes = ' ['; Mistakes = '] ';

Mistakes = '; '; Mistakes = '" '; Mistakes = ','; Mistakes = '. '; Mistakes = '/';

Mistakes = '*'; Mistakes = '*'; Mistakes = '+';

}

};

void KeyLetter (int TType)

{

if (TType == 0)

{

switch (bukva. alfa)

{ case 1: // Π°

Training->SpeedButton27->Font->Color = clRed;

Training->SpeedButton27->Font->Size = 14;

Training->SpeedButton27->Font->Style << fsBold;

break;

case 2: // Π±

Training->SpeedButton20->Font->Color = clRed;

Training->SpeedButton20->Font->Size = 14;

Training->SpeedButton20->Font->Style << fsBold;

break;

case 3: // Π²

Training->SpeedButton26->Font->Color = clRed;

Training->SpeedButton26->Font->Size = 14;

Training->SpeedButton26->Font->Style << fsBold;

break;

case 4: // Π³

Training->SpeedButton42->Font->Color = clRed;

Training->SpeedButton42->Font->Size = 14;

Training->SpeedButton42->Font->Style << fsBold;

break;

case 5: // Π΄

Training->SpeedButton32->Font->Color = clRed;

Training->SpeedButton32->Font->Size = 14;

Training->SpeedButton32->Font->Style << fsBold;

break;

case 6: // Π΅

Training->SpeedButton40->Font->Color = clRed;

Training->SpeedButton40->Font->Size = 14;

Training->SpeedButton40->Font->Style << fsBold;

break;

case 7: // Ρ‘

Training->SpeedButton2->Font->Color = clRed;

Training->SpeedButton2->Font->Size = 14;

Training->SpeedButton2->Font->Style << fsBold;

break;

case 8: // ΠΆ

Training->SpeedButton33->Font->Color = clRed;

Training->SpeedButton33->Font->Size = 14;

Training->SpeedButton33->Font->Style << fsBold;

break;

case 9: // Π·

Training->SpeedButton45->Font->Color = clRed;

Training->SpeedButton45->Font->Size = 14;

Training->SpeedButton45->Font->Style << fsBold;

break;

case 10: // ΠΈ

Training->SpeedButton17->Font->Color = clRed;

Training->SpeedButton17->Font->Size = 14;

Training->SpeedButton17->Font->Style << fsBold;

break;

case 11: // ΠΉ

Training->SpeedButton36->Font->Color = clRed;

Training->SpeedButton36->Font->Size = 14;

Training->SpeedButton36->Font->Style << fsBold;

break;

case 12: // ΠΊ

Training->SpeedButton39->Font->Color = clRed;

Training->SpeedButton39->Font->Size = 14;

Training->SpeedButton39->Font->Style << fsBold;

break;

case 13: // Π»

Training->SpeedButton31->Font->Color = clRed;

Training->SpeedButton31->Font->Size = 14;

Training->SpeedButton31->Font->Style << fsBold;

break;

case 14: // ΠΌ

Training->SpeedButton16->Font->Color = clRed;

Training->SpeedButton16->Font->Size = 14;

Training->SpeedButton16->Font->Style << fsBold;

break;

case 15: // Π½

Training->SpeedButton41->Font->Color = clRed;

Training->SpeedButton41->Font->Size = 14;

Training->SpeedButton41->Font->Style << fsBold;

break;

case 16: // ΠΎ

Training->SpeedButton30->Font->Color = clRed;

Training->SpeedButton30->Font->Size = 14;

Training->SpeedButton30->Font->Style << fsBold;

break;

case 17: // ΠΏ

Training->SpeedButton28->Font->Color = clRed;

Training->SpeedButton28->Font->Size = 14;

Training->SpeedButton28->Font->Style << fsBold;

break;

case 18: // Ρ€

Training->SpeedButton29->Font->Color = clRed;

Training->SpeedButton29->Font->Size = 14;

Training->SpeedButton29->Font->Style << fsBold;

break;

case 19: // с

Training->SpeedButton15->Font->Color = clRed;

Training->SpeedButton15->Font->Size = 14;

Training->SpeedButton15->Font->Style << fsBold;

break;

case 20: // Ρ‚

Training->SpeedButton18->Font->Color = clRed;

Training->SpeedButton18->Font->Size = 14;

Training->SpeedButton18->Font->Style << fsBold;

break;

case 21: // Ρƒ

Training->SpeedButton38->Font->Color = clRed;

Training->SpeedButton38->Font->Size = 14;

Training->SpeedButton38->Font->Style << fsBold;

break;

case 22: // Ρ„

Training->SpeedButton24->Font->Color = clRed;

Training->SpeedButton24->Font->Size = 14;

Training->SpeedButton24->Font->Style << fsBold;

break;

case 23: // Ρ…

Training->SpeedButton46->Font->Color = clRed;

Training->SpeedButton46->Font->Size = 14;

Training->SpeedButton46->Font->Style << fsBold;

break;

case 24: // Ρ†

Training->SpeedButton37->Font->Color = clRed;

Training->SpeedButton37->Font->Size = 14;

Training->SpeedButton37->Font->Style << fsBold;

break;

case 25: // Ρ‡

Training->SpeedButton14->Font->Color = clRed;

Training->SpeedButton14->Font->Size = 14;

Training->SpeedButton14->Font->Style << fsBold;

break;

case 26: // ш

Training->SpeedButton43->Font->Color = clRed;

Training->SpeedButton43->Font->Size = 14;

Training->SpeedButton43->Font->Style << fsBold;

break;

case 27: // Ρ‰

Training->SpeedButton44->Font->Color = clRed;

Training->SpeedButton44->Font->Size = 14;

Training->SpeedButton44->Font->Style << fsBold;

break;

case 28: // ъ

Training->SpeedButton47->Font->Color = clRed;

Training->SpeedButton47->Font->Size = 14;

Training->SpeedButton47->Font->Style << fsBold;

break;

case 29: // Ρ‹

Training->SpeedButton25->Font->Color = clRed;

Training->SpeedButton25->Font->Size = 14;

Training->SpeedButton25->Font->Style << fsBold;

break;

case 30: // ь

Training->SpeedButton19->Font->Color = clRed;

Training->SpeedButton19->Font->Size = 14;

Training->SpeedButton19->Font->Style << fsBold;

break;

case 31: // э

Training->SpeedButton34->Font->Color = clRed;

Training->SpeedButton34->Font->Size = 14;

Training->SpeedButton34->Font->Style << fsBold;

break;

case 32: // ю

Training->SpeedButton21->Font->Color = clRed;

Training->SpeedButton21->Font->Size = 14;

Training->SpeedButton21->Font->Style << fsBold;

break;

case 33: // я

Training->SpeedButton13->Font->Color = clRed;

Training->SpeedButton13->Font->Size = 14;

Training->SpeedButton13->Font->Style << fsBold;

break;

}

}

if (TType == 1)

{

switch (bukva. alfa)

{ case 1: // a

Training->SpeedButton24->Font->Color = clRed;

Training->SpeedButton24->Font->Size = 14;

Training->SpeedButton24->Font->Style << fsBold;

break;

case 2: // b

Training->SpeedButton17->Font->Color = clRed;

Training->SpeedButton17->Font->Size = 14;

Training->SpeedButton17->Font->Style << fsBold;

break;

case 3: // c

Training->SpeedButton15->Font->Color = clRed;

Training->SpeedButton15->Font->Size = 14;

Training->SpeedButton15->Font->Style << fsBold;

break;

case 4: // d

Training->SpeedButton26->Font->Color = clRed;

Training->SpeedButton26->Font->Size = 14;

Training->SpeedButton26->Font->Style << fsBold;

break;

case 5: // e

Training->SpeedButton38->Font->Color = clRed;

Training->SpeedButton38->Font->Size = 14;

Training->SpeedButton38->Font->Style << fsBold;

break;

case 6: // f

Training->SpeedButton27->Font->Color = clRed;

Training->SpeedButton27->Font->Size = 14;

Training->SpeedButton27->Font->Style << fsBold;

break;

case 7: // g

Training->SpeedButton28->Font->Color = clRed;

Training->SpeedButton28->Font->Size = 14;

Training->SpeedButton28->Font->Style << fsBold;

break;

case 8: // h

Training->SpeedButton29->Font->Color = clRed;

Training->SpeedButton29->Font->Size = 14;

Training->SpeedButton29->Font->Style << fsBold;

break;

case 9: // i

Training->SpeedButton43->Font->Color = clRed;

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