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

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ прилоТСния дСмонстрации ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ сдвигов чисСл

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

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ File→New → Application ΠΈ ΡΡ€Π°Π·Ρƒ ΠΆΠ΅ сохраняСм Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ File→Save Project As, создав для этого ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ «Π‘ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ сдвиги». ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ сохраним с ΠΈΠΌΠ΅Π½Π΅ΠΌ b_sdvig.cpp (Рисунок 2), Π° ΡΠ°ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ — с ΠΈΠΌΠ΅Π½Π΅ΠΌ BitSdvig.bpr. Π’ ΡΡ€Π΅Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Borland C++ Builder Ρ„Π°ΠΉΠ» Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² с ΠΎΠΏΠΈΡΠ°Π½ΠΈΡΠΌΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… (интСрфСйсная… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

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

1. ВСхничСскоС Π·Π°Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

1.1 ОснованиС ΠΈ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

1.2 НазначСниС

1.3 Π’Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅

1.3.1 ΠžΠ±Ρ‰ΠΈΠ΅ трСбования

1.3.2. ВрСбования ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ характСристикам

1.3.3 ВрСбования ΠΊ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΠΈ

1.3.4 ВрСбования ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ тСхничСских срСдств

1.3.5 ВрСбования ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ совмСстимости

1.3.6 Π’Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊ Ρ‚СхничСской Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ

2. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ прилоТСния

2.1 Алгоритм Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ

2.2 ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс

2.3 Π’Π²ΠΎΠ΄ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ…

2.4 ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сдвигов

2.5 Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ прилоТСния

3. РСализация ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

3.1 Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ

3.2 Кодовая Ρ‡Π°ΡΡ‚ΡŒ

4. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ, ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ° ΠΈ Ρ‚СстированиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

4.1 ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ

4.2 Компоновка

4.3 ВСстированиС

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

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

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

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ устройство Π² Π­Π’Πœ — это арифмСтичСско-логичСскоС устройство (АЛУ), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ производятся всС основныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π­Π’Πœ.

Набор ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ АЛУ являСтся ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½Ρ‹Ρ… Π΅Π³ΠΎ характСристик, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»Π½Ρ‹ΠΌΠΈ, Ρ‚. Π΅. ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ любого Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°. И Ρ…ΠΎΡ‚Ρ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ»Π½ΠΎΡ‚Ρƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ·ΠΊΠΈΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, число Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, выполняСмых Π² ΠΠ›Π£, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ составляСт ΠΎΡ‚ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… дСсятков Π΄ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… сотСн. Π­Ρ‚ΠΎ обСспСчиваСт сокращСниС Π΄Π»ΠΈΠ½Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ быстродСйствия Π­Π’Πœ Π² Ρ†Π΅Π»ΠΎΠΌ.

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π² Π»ΡŽΠ±ΠΎΠΌ АЛУ прСдусмотрСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ сдвигов.

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

1. ВСхничСскоС задания Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

1.1 ОснованиС ΠΈ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

Π’ ΡƒΡ‡Π΅Π±Π½Ρ‹Ρ… цСлях для закрСплСния ΠΈ ΡƒΠ³Π»ΡƒΠ±Π»Π΅Π½ΠΈΡ тСорСтичСских Π·Π½Π°Π½ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½ΠΈΠ΅ практичСских Π½Π°Π²Ρ‹ΠΊΠΎΠ² ΠΏΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ прилоТСния.

1.2 НазначСниС

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ для дСмонстрационного ΠΏΠΎΠΊΠ°Π·Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ сдвигов чисСл Π²Π»Π΅Π²ΠΎ ΠΈ Π²ΠΏΡ€Π°Π²ΠΎ Π½Π° n-Π±ΠΈΡ‚ΠΎΠ² ΠΈ ΠΈΡ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ².

1.3 Π’Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅

1.3.1 ΠžΠ±Ρ‰ΠΈΠ΅ трСбования

К ΠΎΠ±Ρ‰ΠΈΠΌ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π² ΡΠΊΡΠΏΠ»ΡƒΠ°Ρ‚Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ прилоТСния ΠΌΠΎΠΆΠ½ΠΎ отнСсти:

— ΠΊΠ²Π°Π»ΠΈΡ„икация пСрсонала ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠŸΠš;

— Π·Π½Π°Π½ΠΈΠ΅ назначСния Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния;

— Π·Π½Π°Π½ΠΈΠ΅ основ синтаксиса языка Π‘++.

1.3.2 ВрСбования ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ характСристикам

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ выполнСния ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:

— Π²Π²ΠΎΠ΄ исходных Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΠΎΠ»ΡΡ… Π²Π²ΠΎΠ΄Π°;

— Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ «Π‘Π΄Π²ΠΈΠ³ Π²Π»Π΅Π²ΠΎ» ΠΈ «Π‘Π΄Π²ΠΈΠ³ Π²ΠΏΡ€Π°Π²ΠΎ»;

— Π²Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π² ΠΏΠΎΠ»Π΅ Π²Ρ‹Π²ΠΎΠ΄Π°;

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ — Ρ†Π΅Π»Ρ‹Π΅ числа.

1.3.3 ВрСбования ΠΊ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΠΈ

ΠŸΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ:

— ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ Π²Π²ΠΎΠ΄Π° исходных Π΄Π°Π½Π½Ρ‹Ρ…;

— ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ выполнСния Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.

1.3.4 ВрСбования ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ тСхничСских срСдств

1. Π˜ΠΌΠ΅Ρ‚ΡŒ простой ΠΈ ΠΏΠΎΠ½ΡΡ‚Π½Ρ‹ΠΉ интСрфСйс.

2. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° IBM совмСстимых ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ…. Минимальная конфигурация:

— Ρ‚ΠΈΠΏ процСссора… Pentium ΠΈ Π²Ρ‹ΡˆΠ΅;

— ΠΎΠ±ΡŠΠ΅ΠΌ ΠžΠ—Π£ …32 Мб ΠΈ Π±ΠΎΠ»Π΅Π΅

1.3.5 ВрСбования ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ совмСстимости

БистСма Π΄ΠΎΠ»ΠΆΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ сСмСйства ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм Win 32 (Windows 95, Windows 98, Windows 2000, Windows NT ΠΈ Ρ‚. ΠΏ.).

1.3.6 Π’Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊ Ρ‚СхничСской Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ

1. Π Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ.

2. Π’ ΡΠΎΡΡ‚Π°Π² ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°ΡŽΡ‰Π΅ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ:

ΠΏΠΎΡΡΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ записка, содСрТащая описаниС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ;

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

2. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ прилоТСния

2.1 Алгоритм выполняСмых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ

Алгоритм выполняСмых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ 1.

Π’ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡΡ‚ΡŒ Π±Π»ΠΎΠΊΠΎΠ² ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ:

— «Π²Ρ…ΠΎΠ΄ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅» (ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ интСрфСйса ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹);

— «Π²Π²ΠΎΠ΄ исходных Π΄Π°Π½Π½Ρ‹Ρ…» (Π²Π²ΠΎΠ΄ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†Π΅Π»Ρ‹Ρ… чисСл);

— «ΡΠ΄Π²ΠΈΠ³ Π²Π»Π΅Π²ΠΎ», «ΡΠ΄Π²ΠΈΠ³ Π²ΠΏΡ€Π°Π²ΠΎ» (осущСствляСтся ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ…

ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ исходных Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π΅ΡΠ»ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ исходныС Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ Π²Π²Π΅Π΄Π΅Π½Ρ‹ выводится сообщСниС: «Π§ΠΈΡΠ»Π° Π½Π΅ Π²Π²Π΅Π΄Π΅Π½Ρ‹», Π° Π΅ΡΠ»ΠΈ Π²Π²Π΅Π΄Π΅Π½Ρ‹ производится ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сдвигов ΠΈ Π²Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°);

— «Π²Ρ‹Ρ…ΠΎΠ΄» (ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ).

2.2 ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс

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

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс прилоТСния Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ нСбольшого ΠΎΠΊΠ½Π° с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ Π³Ρ€Π°Π½ΠΈΡ† Ρ„ΠΎΡ€ΠΌΡ‹. Для этого Π±ΡƒΠ΄Π΅Ρ‚ использован ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄:

{

Form1->BorderStyle = bsToolWindow; // созданиС ΠΎΠΊΠ½Π° с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ

}

2.3 Π’Π²ΠΎΠ΄ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ…

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ вычислСний Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π² ΠΎΠ±Π»Π°ΡΡ‚ΠΈ рСдактирования ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Edit, доступ ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ обСспСчиваСтся свойством Text Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅ прСдставляСт собой ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ строку Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘++ с ΠΊΠ»Π°ΡΡΠΎΠ²Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ AnsiString. Π’ Π‘++ Builder Ρ‚ΠΈΠΏ строк AnsiString Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ класс, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ строки с Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ символом Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΈ ΠΏΠ°ΠΌΡΡ‚ΡŒ для AnsiString выдСляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости.

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

StrToInt (Edit->Text) — ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ строку Π² Ρ†Π΅Π»ΠΎΠ΅ число;

IntToStr (result) — ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Ρ†Π΅Π»ΠΎΠ΅ число Π² ΡΡ‚Ρ€ΠΎΠΊΡƒ символов.

Для коррСктности Π²Π²ΠΎΠ΄Π° (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†Π΅Π»Ρ‹Π΅ числа) Π² ΡΠ²ΠΎΠΉΡΡ‚Π²Π΅ OnKeyPress ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Edit прСдусмотрСно Π·Π°ΠΏΡ€Π΅Ρ‚ Π½Π° Π²Π²ΠΎΠ΄ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½Ρ‹Ρ… символов, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Π°ΠΊΠΈΡ… символов ΠΊΠ°ΠΊ «*», «&» ΠΈ Ρ‚. Π΄.:

Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π²Π²Π΅Π΄Π΅Π½Ρ‹ Π»ΠΈ числа ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ сравнСния Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Ρ†ΠΈΡ„Ρ€ со ΡΡ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹ΠΌΠΈ символами «= =» ΠΈ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΠΎΠ³ΠΎ Π˜Π›Π˜ «||» — Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ «ΠΈΡΡ‚ΠΈΠ½Π°», Ссли ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ ΠΎΠ±Π° ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° истинны, ΠΈ «Π»ΠΎΠΆΡŒ» Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС.

Edit1->Text = =" «|| Edit2->Text = =» «

Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ условия использована конструкция:

if (условиС)

{

ShowMessade («Π§ΠΈΡΠ»Π° Π½Π΅ Π²Π²Π΅Π΄Π΅Π½Ρ‹ «); выводится сообщСниС

}

else

{

a << b; выполняСтся опСрация сдвига

}

2.4 ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сдвигов

дСмонстрационный ΠΏΠΎΠΊΠ°Π· сдвиг компиляция

Π‘ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ сдвиги — ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΠΈΡ‚ΠΎΠ² копируСтся Π² ΡΠΎΡΠ΅Π΄Π½ΠΈΠ΅ ΠΏΠΎ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ сдвига. Π Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ нСсколько Π²ΠΈΠ΄ΠΎΠ² сдвигов — логичСский, арифмСтичСский ΠΈ Ρ†ΠΈΠΊΠ»ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΡ€Π°ΠΉΠ½ΠΈΡ… Π±ΠΈΡ‚ΠΎΠ².

Π’Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ сдвиги Π²Π»Π΅Π²ΠΎ (Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚ ΠΌΠ»Π°Π΄ΡˆΠ΅Π³ΠΎ Π±ΠΈΡ‚Π° ΠΊ ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΌΡƒ) ΠΈ Π²ΠΏΡ€Π°Π²ΠΎ (Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚ ΡΡ‚Π°Ρ€ΡˆΠ΅Π³ΠΎ Π±ΠΈΡ‚Π° ΠΊ ΠΌΠ»Π°Π΄ΡˆΠ΅ΠΌΡƒ). ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ сдвига, «>>» ΠΈ «<<οΏ½», ΡΠ΄Π²ΠΈΠ³Π°ΡŽΡ‚ всС Π±ΠΈΡ‚Ρ‹ Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²ΠΏΡ€Π°Π²ΠΎ ΠΈΠ»ΠΈ Π²Π»Π΅Π²ΠΎ. ΠžΠ±Ρ‰ΠΈΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ использования ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° сдвига Π²ΠΏΡ€Π°Π²ΠΎ выглядит Ρ‚Π°ΠΊ.

пСрСмСнная >> число_Π±ΠΈΡ‚ΠΎΠ²

А ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ сдвига Π²Π»Π΅Π²ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚Π°ΠΊ.

пСрСмСнная << число_Π±ΠΈΡ‚ΠΎΠ²

Π—Π΄Π΅ΡΡŒ элСмСнт число_Π±ΠΈΡ‚ΠΎΠ² ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Π½Π° ΡΠΊΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ сдвинуто Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ элСмСнта пСрСмСнная. ΠŸΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ сдвигС Π²Π»Π΅Π²ΠΎ всС Π±ΠΈΡ‚Ρ‹, ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΡΠ΄Π²ΠΈΠ³Π°ΡŽΡ‚ΡΡ Π²Π»Π΅Π²ΠΎ Π½Π° ΠΎΠ΄Π½Ρƒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ, Π° Π² ΠΌΠ»Π°Π΄ΡˆΠΈΠΉ разряд записываСтся Π½ΡƒΠ»ΡŒ. ΠŸΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ сдвигС Π²ΠΏΡ€Π°Π²ΠΎ всС Π±ΠΈΡ‚Ρ‹ ΡΠ΄Π²ΠΈΠ³Π°ΡŽΡ‚ΡΡ, соотвСтствСнно, Π²ΠΏΡ€Π°Π²ΠΎ. ΠŸΡ€ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сдвига происходит потСря ΡΡ‚Π°Ρ€ΡˆΠΈΡ… ΠΈΠ»ΠΈ ΠΌΠ»Π°Π΄ΡˆΠΈΡ… разрядов (Рисунок 1). ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ «>>» ΠΈ «<<οΏ½» ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ·-Π·Π° ΠΏΠΎΡ‚Π΅Ρ€ΠΈ разрядов. Если сдвигу Π²ΠΏΡ€Π°Π²ΠΎ подвСргаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±Π΅Π· Π·Π½Π°ΠΊΠ°, Π² ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ разряд записываСтся Π½ΡƒΠ»ΡŒ. Π‘Π΄Π²ΠΈΠ³ Ρ†Π΅Π»ΠΎΠ³ΠΎ числа Π½Π° n Ρ€Π°Π·Ρ€ΡΠ΄ΠΎΠ² Π²ΠΏΡ€Π°Π²ΠΎ эквивалСнтСн цСлочислСнному дСлСнию Π΅Π³ΠΎ Π½Π° 2n. Π‘Π΄Π²ΠΈΠ³ Ρ†Π΅Π»ΠΎΠ³ΠΎ Π½Π° n Ρ€Π°Π·Ρ€ΡΠ΄ΠΎΠ² Π²Π»Π΅Π²ΠΎ эквивалСнтСн ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡŽ Π΅Π³ΠΎ Π½Π° 2n. Если ΠΆΠ΅ сдвигу Π²ΠΏΡ€Π°Π²ΠΎ подвСргаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ со Π·Π½Π°ΠΊΠΎΠΌ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ разряда сохраняСтся. Как ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ†Π΅Π»Ρ‹Π΅ числа ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ установкой ΡΡ‚Π°Ρ€ΡˆΠ΅Π³ΠΎ разряда числа Ρ€Π°Π²Π½Ρ‹ΠΌ Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли сдвигаСмоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ сдвигС Π²ΠΏΡ€Π°Π²ΠΎ Π² ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ разряд записываСтся Π΅Π΄ΠΈΠ½ΠΈΡ†Π°, Π° Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ — Π½ΡƒΠ»ΡŒ.

Π°) Π±)

Рисунок 1: Π°) Π‘Π΄Π²ΠΈΠ³ Π²Π»Π΅Π²ΠΎ; Π±) Π‘Π΄Π²ΠΈΠ³ Π²ΠΏΡ€Π°Π²ΠΎ

2.5 Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ прилоТСния

Для закрытия прилоТСния использован ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€:

{

Close (); // Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния

}

3. РСализация ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ срСдС Borland C++ Builder, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΅ΡΡ‚ΡŒ большой Π²Ρ‹Π±ΠΎΡ€ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² для создания графичСского интСрфСйса ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Windows, Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ программирования Π‘++ с Π½Π°Π±ΠΎΡ€ΠΎΠΌ стандартных ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°. Для этого:

1. ЗапускаСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Borland C++ Builder 6.0.

2. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ File->New -> Application ΠΈ ΡΡ€Π°Π·Ρƒ ΠΆΠ΅ сохраняСм Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ File->Save Project As, создав для этого ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ «Π‘ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ сдвиги». ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ сохраним с ΠΈΠΌΠ΅Π½Π΅ΠΌ b_sdvig.cpp (Рисунок 2), Π° ΡΠ°ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ — с ΠΈΠΌΠ΅Π½Π΅ΠΌ BitSdvig.bpr. Π’ ΡΡ€Π΅Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Borland C++ Builder Ρ„Π°ΠΉΠ» Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² с ΠΎΠΏΠΈΡΠ°Π½ΠΈΡΠΌΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… (интСрфСйсная Ρ‡Π°ΡΡ‚ΡŒ) ΠΈ Ρ„Π°ΠΉΠ» с Ρ‚Скстами ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ (кодовая Ρ‡Π°ΡΡ‚ΡŒ) принято Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ модулями. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ хранится Π² Ρ„Π°ΠΉΠ»Π΅ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ «h», Π° ΠΊΠΎΠ΄ΠΎΠ²Π°Ρ — Π² Ρ„Π°ΠΉΠ»Π΅ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ «ΡΡ€Ρ€» (сокращСниС ΠΎΡ‚ C++). Π’Π°ΠΊΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Ρ‡ΠΈΡΠ»Π° Ρ„ΠΎΡ€ΠΌ (ΠΎΠΊΠΎΠ½) Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΈ Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ.

Рисунок 2. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ

3.1 Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ

ΠŸΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΠΌ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡŽ интСрфСйсной части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠΊΠ½Π° Ρ„ΠΎΡ€ΠΌΡ‹ Form1, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ собой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Windows-ΠΎΠΊΠ½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π€ΠΎΡ€ΠΌΠ° являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π²Π°ΠΆΠ½Π΅ΠΉΡˆΠΈΡ… элСмСнтов прилоТСния C++ Builder. ΠŸΡ€ΠΎΡ†Π΅ΡΡ рСдактирования Ρ„ΠΎΡ€ΠΌΡ‹ происходит ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΊ Ρ„ΠΎΡ€ΠΌΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΈΡ… ΡΠ²ΠΎΠΉΡΡ‚Π², создании ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² событий. ΠŸΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΊ Ρ„ΠΎΡ€ΠΌΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈ Ρ„Π°ΠΉΠ» Ρ„ΠΎΡ€ΠΌΡ‹ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ΡΡ. ΠŸΡ€ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ свойств ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π² Π˜Π½ΡΠΏΠ΅ΠΊΡ‚ΠΎΡ€Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² эти измСнСния ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² Ρ„Π°ΠΉΠ»Π΅ Ρ„ΠΎΡ€ΠΌΡ‹. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ C++ Builder ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Ρ€ΠΈ характСристики: свойства, события ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. Π˜Π½ΡΠΏΠ΅ΠΊΡ‚ΠΎΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² автоматичСски ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ свойства ΠΈ ΡΠΎΠ±Ρ‹Ρ‚ия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ. Бвойства ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΌΠΈ Π΅Π³ΠΎ внСшний Π²ΠΈΠ΄ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.

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

— ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠ³ Π·Π°Π΄Π°Ρ‚ΡŒ эти ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ-ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ Button (событиС OnClick).

ВсС пСрСчислСнныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ располоТим Π½Π° ΠΎΠ΄Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈ Π² Π˜Π½ΡΠΏΠ΅ΠΊΡ‚ΠΎΡ€Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹, ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹ ΠΈ Π½Π°Π΄ΠΏΠΈΡΠΈ внСсСнных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈ Ρ„ΠΎΡ€ΠΌΡ‹ Form1 (Рисунок 3).

Бвойства ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈ Ρ„ΠΎΡ€ΠΌΡ‹

? Π€ΠΎΡ€ΠΌΠ° Form1 (ΠΎΠΊΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹): Caption (Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹) — «Π‘ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ сдвиги»;

? ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Label1 (статичСский тСкст): Caption (Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΌΠ΅Ρ‚ΠΊΠΈ) — «Π’Π²ΠΎΠ΄ числа»;

? ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Label2: Caption- «Π’Π²ΠΎΠ΄ числа Π±ΠΈΡ‚ΠΎΠ²»;

? ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Label3: Caption — «Π’Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°»;

? ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Edit1 (однострочный Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€): Text (ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°) — ««;

? ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Edit2: Text (ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°) — ««;

? ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Edit3: Text (ΠΏΠΎΠ»Π΅ Π²Ρ‹Π²ΠΎΠ΄Π°) — ««;

? ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Button1 (ΠΊΠ½ΠΎΠΏΠΊΠ°): Caption (тСкст Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅) — «Π‘Π΄Π²ΠΈΠ³ Π²Π»Π΅Π²ΠΎ»;

? ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Button2: Caption — «Π‘Π΄Π²ΠΈΠ³ Π²ΠΏΡ€Π°Π²ΠΎ»;

? ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Button3: Caption — «Π’Ρ‹Ρ…ΠΎΠ΄»;

Π°) Π±)

Рисунок 3. Окно прилоТСния: Π°) Π΄ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ирования; Π±) послС рСдактирования

3.2 Кодовая Ρ‡Π°ΡΡ‚ΡŒ

ПослС установки свойств ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ шагом Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° тСкстов для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² событий:

— FormCreate для создания ΠΎΠΊΠ½Π° прилоТСния с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ Π² Ρ„ΠΎΡ€ΠΌΠ΅ Form1;

— OnKeyPress для Π²Π²ΠΎΠ΄Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†Π΅Π»Ρ‹Ρ… чисСл Π² ΠΎΠ΄Π½ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½ΠΎΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Edit;

— OnClick ΠΏΠΎΠ΄ ΠΊΠ½ΠΎΠΏΠΊΠΈ Button1, Button2 ΠΈ Button3 ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ прилоТСния.

ВыдСляСтся ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Π² ΠΎΠΊΠ½Π΅ Object Inspector открываСтся страница Events. Π’ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΠ»Π΅ строки FormCreate, OnKeyPress ΠΈ onClick производится Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Ρ‰Π΅Π»Ρ‡ΠΎΠΊ Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ. ПослС этого активизируСтся ΠΎΠΊΠ½ΠΎ Code Editor. Π’ Π½Π΅Π³ΠΎ вставляСм Π·Π°Π³ΠΎΡ‚ΠΎΠ²ΠΊΡƒ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹.

1. ВСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для создания ΠΎΠΊΠ½Π° прилоТСния с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ Π² Ρ„ΠΎΡ€ΠΌΠ΅ Form1:

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

void __fastcall TForm1: FormCreate (TObject *Sender)

{

Form1->BorderStyle = bsToolWindow;

}

2. ВСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для Π²Π²ΠΎΠ΄Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†Π΅Π»Ρ‹Ρ… чисСл Π² Edit 1:

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

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

3. ВСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для Π²Π²ΠΎΠ΄Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†Π΅Π»Ρ‹Ρ… чисСл Π² Edit 2:

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

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

Key == ':'

Алгоритм Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ (событиС «Π‘Π΄Π²ΠΈΠ³ Π²Π»Π΅Π²ΠΎ» ΠΈΠ»ΠΈ «Π‘Π΄Π²ΠΈΠ³ Π²ΠΏΡ€Π°Π²ΠΎ») сводится ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ шагам:

* Π’ ΠΎΠΊΠ½Π°Ρ… однострочных Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² проводится ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… исходных Π΄Π°Π½Π½Ρ‹Ρ….

* Из ΠΎΠΊΠΎΠ½ однострочных Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² (свойство Text) Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ исходныС Π΄Π°Π½Π½Ρ‹Π΅. ΠŸΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· Ρ‚ΠΈΠΏΠ° AnsiString Π² Ρ‚ΠΈΠΏ int.

* ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сдвига.

* ПослС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сдвига производится запись Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π² ΠΏΠΎΠ»Π΅ Text ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° с ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π² Ρ‚ΠΈΠΏ AnsiString ΠΈΠ· Ρ‚ΠΈΠΏΠ° int.

4. ВСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для ΠΊΠ½ΠΎΠΏΠΊΠΈ Button1(«Π‘Π΄Π²ΠΈΠ³ Π²Π»Π΅Π²ΠΎ»)

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

void __fastcall TForm1: Button1Click (TObject *Sender)

{

if (Edit1->Text = =" «|| Edit2->Text = =» «) // провСряСм Π²Π²Π΅Π΄Π΅Π½Ρ‹ Π»ΠΈ числа

{

ShowMessage («Π§ΠΈΡΠ»Π° Π½Π΅ Π²Π²Π΅Π΄Π΅Π½Ρ‹!»); // Ссли Π½Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ сообщСниС

}

else // Ссли Π²Π²Π΅Π΄Π΅Π½Ρ‹ Ρ‚ΠΎ

{

int a; // пСрСмСнная для числа a

int b; // пСрСмСнная для числа b

int result; // пСрСмСнная для Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°

a = StrToInt (Edit1->Text); // Π±Π΅Ρ€Π΅ΠΌ ΠΈΠ· Edit1 строку ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠΌ Π΅Π΅ Π² Ρ‡ΠΈΡΠ»ΠΎ

b = StrToInt (Edit2->Text); // Π±Π΅Ρ€Π΅ΠΌ ΠΈΠ· Edit2 строку ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠΌ Π΅Π΅ Π² Ρ‡ΠΈΡΠ»ΠΎ

result = a << b; // сдвигаСм число, Π° Π½Π° b-Π±ΠΈΡ‚ΠΎΠ² Π²Π»Π΅Π²ΠΎ ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ для Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°

Edit3->Text = IntToStr (result); // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

}

}

5. ВСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для ΠΊΠ½ΠΎΠΏΠΊΠΈ Button2(«Π‘Π΄Π²ΠΈΠ³ Π²ΠΏΡ€Π°Π²ΠΎ»)

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

void __fastcall TForm1: Button1Click (TObject *Sender)

{

if (Edit1->Text = =" «|| Edit2->Text = =» «) // провСряСм Π²Π²Π΅Π΄Π΅Π½Ρ‹ Π»ΠΈ числа

{

ShowMessage («Π§ΠΈΡΠ»Π° Π½Π΅ Π²Π²Π΅Π΄Π΅Π½Ρ‹!»); // Ссли Π½Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ сообщСниС

}

else // Ссли Π²Π²Π΅Π΄Π΅Π½Ρ‹ Ρ‚ΠΎ

{

int a; // пСрСмСнная для числа a

int b; // пСрСмСнная для числа b

int result; // пСрСмСнная для Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°

a = StrToInt (Edit1->Text); // Π±Π΅Ρ€Π΅ΠΌ ΠΈΠ· Edit1 строку ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠΌ

Π΅Π΅ Π² Ρ‡ΠΈΡΠ»ΠΎ

b = StrToInt (Edit2->Text); // Π±Π΅Ρ€Π΅ΠΌ ΠΈΠ· Edit2 строку ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠΌ Π΅Π΅ Π² Ρ‡ΠΈΡΠ»ΠΎ

result = a >> b; // сдвигаСм число, Π° Π½Π° b-Π±ΠΈΡ‚ΠΎΠ² Π²Π»Π΅Π²ΠΎ ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ для Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°

Edit3->Text = IntToStr (result); // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

}

}

Для Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ° «Π’Ρ‹Ρ…ΠΎΠ΄» (Button3).

6. ВСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для ΠΊΠ½ΠΎΠΏΠΊΠΈ Button3(«Π’Ρ‹Ρ…ΠΎΠ΄»)

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

void __fastcall TForm1: Button5Click (TObject *Sender)

{

Close (); // Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

}

4. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ, ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ° ΠΈ Ρ‚СстированиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

ПослС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ любого прилоТСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ, ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΡƒ ΠΈ Ρ‚СстированиС. Π­Ρ‚ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ автоматичСски ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Run ΠΈΠ· Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ мСню срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Borland C++ Builder 6. Однако Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ с Ρ†Π΅Π»ΡŒΡŽ сокращСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ всСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² Ρ†Π΅Π»ΠΎΠΌ.

На ΡΡ‚Π°ΠΏΠ΅ компиляции происходит автоматичСский поиск синтаксичСских ошибок, Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ объявлСния ΠΈΠ»ΠΈ использования ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Ρ‚. ΠΏ. ΠŸΡ€ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ошибок Π² ΠΈΠ½ΡΠΏΠ΅ΠΊΡ‚ΠΎΡ€Π΅ ΠΊΠΎΠ΄ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ сообщСниС ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ΅ ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅. ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΎΡˆΠΈΠ±ΠΊΠΈ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½ΠΎ Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ Π΅Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Если ошибок Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π΅Ρ‚, компилятор создаСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ (ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ) ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² ΠΌΠΎΠ΄ΡƒΠ»ΡΡ… (Ρ„Π°ΠΉΠ»Π°Ρ…) с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ obj.

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

4.1 ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ

Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Compile ΠΈΠ· Π³Ρ€ΡƒΠΏΠΏΡ‹ Project Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ мСню ΠΈΠ»ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ клавиш для компиляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Alt+F9. ΠžΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ΡΡ ΠΎΠΊΠ½ΠΎ, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 4. Π’ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ строкС этого ΠΎΠΊΠ½Π° отобраТаСтся ΠΏΡƒΡ‚ΡŒ размСщСния ΠΈ ΠΈΠΌΡ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС Π²Π½Π°Ρ‡Π°Π»Π΅ отобраТаСтся процСсс компиляции, ΡΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉΡΡ записью Done, говорящСй ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π±Π΅Π· ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… ошибок. НиТС отобраТаСтся Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Current line ΠΈ ΠΎΠ±Ρ‰Π΅Π΅ количСство строк ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Total lines. Π’ Π½ΠΈΠΆΠ½Π΅ΠΉ строкС отобраТаСтся ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠ΅ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ число Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠΉ Hints, ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ Warnings ΠΈ ΠΎΡˆΠΈΠ±ΠΎΠΊ Errors.

Рисунок 4. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ компиляции

4.2 Компоновка

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Make ΠΈΠ· Π³Ρ€ΡƒΠΏΠΏΡ‹ Project Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ мСню ΠΈΠ»ΠΈ Π½Π°ΠΆΠ°Π² ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ клавиш для ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ +. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π±Π΅Π·ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΡƒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΡƒ прилоТСния (Рисунок 5).

Рисунок 5. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Run ΠΈΠ»ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ горячСй ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. На ΡΠΊΡ€Π°Π½Π΅ появится ΠΎΠΊΠ½ΠΎ нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Рисунок 6).

Рисунок 6. Окно ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

4.3 ВСстированиС

Π’Π΅ΠΏΠ΅Ρ€ΡŒ приступим ΠΊ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ:

1. ВСст Π½Π° Π²Π²ΠΎΠ΄ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½Ρ‹Ρ… символов ΠΈ Π΄Ρ€. — Π½Π΅ Π²Π²ΠΎΠ΄ΡΡ‚ся.

2. ВСст Π½Π° Π²Ρ‹Π²ΠΎΠ΄ сообщСния Ссли Π½Π΅ Π²Π²Π΅Π΄Π΅Π½Ρ‹ числа Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΏΠΎΠ»Π΅ΠΉ Π²Π²ΠΎΠ΄Π° ΠΈΠ»ΠΈ Π² ΠΎΠ±ΠΎΠΈΡ…, ΠΏΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ сдвигов (Рисунок 7)

Рисунок 7. Π’Ρ‹Π²ΠΎΠ΄ сообщСния ΠΎ Π½Π΅ Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… числах

3. ВСст Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ (Рисунок 8).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ прСдставлСниС числа, Π° = 9: 1 001, Ρ‚ΠΎΠ³Π΄Π°

Π° = 9 << 3 1 001 000 — 72

Π° = 9 >> 3 1 — 1

Π° = 9 >> 5 0 — 0

Рисунок 8. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°

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

1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅;

2. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число Π² ΠΏΠΎΠ»Π΅ «Π’Π²ΠΎΠ΄ числа»;

3. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число Π±ΠΈΡ‚ΠΎΠ² Π² ΠΏΠΎΠ»Π΅ «Π’Π²ΠΎΠ΄ числа Π±ΠΈΡ‚ΠΎΠ²» Π½Π° ΠΊΠ°ΠΊΠΎΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π²ΠΈΠ½ΡƒΡ‚ΡŒ число Π² ΠΏΠΎΠ»Π΅ «Π’Π²ΠΎΠ΄ числа»;

4. НаТмитС ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π‘Π΄Π²ΠΈΠ³ Π²Π»Π΅Π²ΠΎ» ΠΈΠ»ΠΈ «Π‘Π΄Π²ΠΈΠ³ Π²ΠΏΡ€Π°Π²ΠΎ»;

5. Π’ ΠΏΠΎΠ»Π΅ «Π’Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°» ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ сдвигов;

6. Для прСкращСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ия прилоТСния Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π’Ρ‹Ρ…ΠΎΠ΄».

1. Π’. Π‘. Π ΠΎΠΌΠ°Π½Ρ‡ΠΈΠΊ, А. Π•. Π›ΡŽΠ»ΡŒΠΊΠΈΠ½ — ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² C++ BUILDER: ΡƒΡ‡Π΅Π±Π½ΠΎΠ΅ пособиС для студ. ΠΌΠ΅Ρ…Π°Π½ΠΈΠΊΠΎ-ΠΌΠ°Ρ‚Π΅ΠΌ. Ρ„Π°ΠΊ. — ΠœΠ½.: Π‘Π“Π£, 2007. -126 с.;

2. Π’. А. Павловская — C/C++. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ высокого уровня — БПб.: ΠŸΠΈΡ‚Π΅Ρ€, 2003. — 461 с.;

3. Иванова Π“. Π‘, ΠΠΈΡ‡ΡƒΡˆΠΊΠΈΠ½Π° Π’. Н., ΠŸΡƒΠ³Π°Ρ‡Π΅Π² Π•. К. — ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅: Π£Ρ‡Π΅Π±. для Π²ΡƒΠ·ΠΎΠ² — М.: Изд-Π²ΠΎ ΠœΠ“Π’Π£ ΠΈΠΌ. Π. Π­. Π‘Π°ΡƒΠΌΠ°Π½Π°, 2001. — 320 с.;

4. Π’. Π›. Π‘ΡƒΡΡŒΠΊΠΎ, Π’. Π’. ΠšΠ°Ρ€Ρ†Π΅Π², Π’. М. ΠšΡ€ΠΈΠ²ΠΎΠ½ΠΎΡΠΎΠ²Π°, А. А. Навроцкий — ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² ΡΡ€Π΅Π΄Π΅ Π‘++ Builder: Π»Π°Π±. ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠΌ ΠΏΠΎ ΠΊΡƒΡ€ΡΡƒ «ΠžΡΠ½ΠΎΠ²Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ» для студ. 1 — 2-Π³ΠΎ курсов Π‘Π“Π£Π˜Π . Π’ 2 Ρ‡. Π§. 1 / Π‘ΡƒΡΡŒΠΊΠΎ Π’. Π›. [ΠΈ Π΄Ρ€.]. — ΠœΠΈΠ½ΡΠΊ: Π‘Π“Π£Π˜Π , 2007. — 70 с.;

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

6. АлСнский Н. А. — Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…: пособиС для студСнтов ΠΌΠ΅Ρ…Π°Π½ΠΈΠΊΠΎ-матСматичСского Ρ„Π°ΠΊΡƒΠ»ΡŒΡ‚Π΅Ρ‚Π° — Минск, Π‘Π“Π£, 2008. — 114с.;

7. Π Ρ‹Π±Π°Π»ΠΊΠ° Π‘. А., Π¨ΠΊΠ°Ρ‚ΠΎΠ²Π° Π“. И. — Π‘++ Builder. Π—Π°Π΄Π°Ρ‡ΠΈ ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ: ΡƒΡ‡Π΅Π±Π½ΠΎΠ΅ пособиС — Вомск: Изд-Π²ΠΎ Вомского политСхничСского унивСрситСта, 2010. — 479с.

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

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

Алгоритм выполняСмых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ

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

Листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ «Π‘ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ сдвиги»

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

#include

#pragma hdrstop

#include «b_sdvig.h»

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

#pragma package (smart_init)

#pragma resource «*.dfm»

TForm1 *Form1;

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

__fastcall TForm1: TForm1(TComponent* Owner)

: TForm (Owner)

{

}

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

void __fastcall TForm1: FormCreate (TObject *Sender)

{

Form1->BorderStyle = bsToolWindow; // созданиС ΠΎΠΊΠ½Π° с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ

}

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

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

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

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

Key == '^'

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

void __fastcall TForm1: Button1Click (TObject *Sender)

{

if (Edit1->Text=="" || Edit2->Text=="") // провСряСм Π²Π²Π΅Π΄Π΅Π½Ρ‹ Π»ΠΈ числа

{

ShowMessage («Π§ΠΈΡΠ»Π° Π½Π΅ Π²Π²Π΅Π΄Π΅Π½Ρ‹!»); // Ссли Π½Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ сообщСниС

}

else // Ссли Π²Π²Π΅Π΄Π΅Π½Ρ‹ Ρ‚ΠΎ

{

int a; // пСрСмСнная для числа a

int b; // пСрСмСнная для числа b

int result; // пСрСмСнная для Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°

a=StrToInt (Edit1->Text); // Π±Π΅Ρ€Π΅ΠΌ ΠΈΠ· Edit1 строку ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠΌ Π΅Π΅ Π² Ρ‡ΠΈΡΠ»ΠΎ

b=StrToInt (Edit2->Text); // Π±Π΅Ρ€Π΅ΠΌ ΠΈΠ· Edit2 строку ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠΌ Π΅Π΅ Π² Ρ‡ΠΈΡΠ»ΠΎ

result=a<

Edit3->Text=IntToStr (result); // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

}

}

//—————————————————————————————————————-

void __fastcall TForm1: Button2Click (TObject *Sender)

{

if (Edit1->Text=="" || Edit2->Text=="") // провСряСм Π²Π²Π΅Π΄Π΅Π½Ρ‹ Π»ΠΈ числа

{

ShowMessage («Π§ΠΈΡΠ»Π° Π½Π΅ Π²Π²Π΅Π΄Π΅Π½Ρ‹!»); // Ссли Π½Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ сообщСниС

}

else // Ссли Π²Π²Π΅Π΄Π΅Π½Ρ‹ Ρ‚ΠΎ

{

int a; // пСрСмСнная для числа a

int b; // пСрСмСнная для числа b

int result; // пСрСмСнная для Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°

a=StrToInt (Edit1->Text); // Π±Π΅Ρ€Π΅ΠΌ ΠΈΠ· Edit1 строку ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠΌ Π΅Π΅ Π² Ρ‡ΠΈΡΠ»ΠΎ

b=StrToInt (Edit2->Text); // Π±Π΅Ρ€Π΅ΠΌ ΠΈΠ· Edit2 строку ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠΌ Π΅Π΅ Π² Ρ‡ΠΈΡΠ»ΠΎ

result=a>>b; // сдвигаСм число, Π° Π½Π° b-Π±ΠΈΡ‚ΠΎΠ² Π²ΠΏΡ€Π°Π²ΠΎ ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ для Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°

Edit3->Text=IntToStr (result); // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚

}

}

//—————————————————————————————————————-

void __fastcall TForm1: Button3Click (TObject *Sender)

{

Close (); // Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

}

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