Код ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π°: ΠšΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Π½Π° C# — ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° C, C# ΠΈ Java

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π° Π½Π° языкС Visual Basic | Info-Comp.ru

ВсСм ΠΏΡ€ΠΈΠ²Π΅Ρ‚, сСгодня Π² ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π΅ ΠΌΡ‹ с Π’Π°ΠΌΠΈ напишСм ΠΌΠ°Π»Π΅Π½ΡŒΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΊΡƒ Π½Π° языкС программирования Visual Basic, которая складываСт, Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π΅Ρ‚, ΡƒΠΌΠ½ΠΎΠΆΠ°Π΅Ρ‚ ΠΈ Π΄Π΅Π»ΠΈΡ‚ Ρ†Π΅Π»Ρ‹Π΅ числа. Π­Ρ‚ΠΎ достаточно простая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Π½ΠΎ для обучСния Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… программистов самоС ΠΎΠ½ΠΎ.

Ну, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°Ρ‡Π½Π΅ΠΌ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, Ρƒ Вас Π΄ΠΎΠ»ΠΆΠ½Π° ΡƒΠΆΠ΅ Π±Ρ‹Ρ‚ΡŒ установлСна срСда программирования Microsoft Visual Basic v 6.0. ЗапускаСм срСду, ΠΏΠ΅Ρ€Π΅Π΄ Π’Π°ΠΌΠΈ ΠΎΠΊΠ½ΠΎ Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Β«standard.exeΒ» ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ. БСйчас ΠΏΠ΅Ρ€Π΅Π΄ Π²Π°ΠΌΠΈ Ρ„ΠΎΡ€ΠΌΠ° нашСй с Π’Π°ΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π΅Π΅ Π½Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ.

Для Π½Π°Ρ‡Π°Π»Π° сдСлайтС Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ, справа Π² ΠΎΠΊΠ½Π΅ свойств Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΡƒΡŽ строку Β«StartUpPositionΒ» ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΌ 1-centerowner, это для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ наша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°ΠΏΡƒΡΠΊΠ°Π»Π°ΡΡŒ ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ нашСго ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π°.

Π”Π°Π»Π΅Π΅ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°ΠΏΠΎΠ»Π½ΠΈΠΌ внСшний интСрфСйс, для этого ΡƒΠΆΠ΅ слСва Π² ΠΎΠΊΠ½Π΅ Π²Ρ‹Π±ΠΎΡ€Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«CommandButtonΒ», Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π΅Π³ΠΎ Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ, ΠΈ сдСлайтС это 4 Ρ€Π°Π·Π°, Ρ‚. Π΅. Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ 4 ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ располоТитС ΠΈΡ… слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ, ΠΈΡ‚ΠΎΠ³ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Ρ‚Π°ΠΊ: Command1, Command2, Command3, Command4. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΌΡ‹ Π·Π°Π΄Π°Π΄ΠΈΠΌ ΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, дСлаСтся это снова Π² ΠΎΠΊΠ½Π΅ свойств (справа) строка Caption. Для этого Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Command1 (ΠΎΠ½Π° выдСлится) ΠΈ Π² строкС Caption ΠΎΠΊΠ½Π° свойств сотритС Command1 ΠΈ Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ «слоТСниС», ΠΏΠΎΡ‚ΠΎΠΌ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ (Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅) Command2 ΠΈ Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π΄Π°Π»Π΅Π΅ Command3 Π±ΡƒΠ΄Π΅Ρ‚ Ρƒ нас Π΄Π΅Π»Π΅Π½ΠΈΠ΅, Π° Command4 Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅.


Π‘ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ ΠΌΡ‹ с Π’Π°ΠΌΠΈ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ 3 тСкстовых поля, дСлаСтся Ρ‚Π°ΠΊΠΆΠ΅ Π² ΠΎΠΊΠ½Π΅ добавлСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (слСва), Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ TextBox ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ 3 ΡˆΡ‚ΡƒΠΊΠΈ, Π° располоТитС ΠΈΡ… Ρ‚Π°ΠΊ: Text1 ΠΈ Text2 свСрху, Π° Text3 Ρ‡ΡƒΡ‚ΡŒ Π½ΠΈΠΆΠ΅. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² ΠΎΠΊΠ½Π΅ свойств (ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ справа) ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ поля Text, Ρ‚.Π΅. ΠΊΠ°ΠΊ ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅ с ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ, Π²Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ тСкстовоС ΠΏΠΎΠ»Π΅ ΠΈ Π² ΠΎΠΊΠ½Π΅ свойств мСняйтС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ строки text Π½Π°, Π΄Π° просто сотритС, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΌ Π΅ΡΡ‚ΡŒ ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΠΈΡˆΠΈΡ‚Π΅. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этого свойства отобраТаСтся ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² тСкстовых полях.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ исходного ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ сам ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, для этого Π½Π°ΠΆΠΌΠΈΡ‚Π΅ 2 Ρ€Π°Π·Π° Π² пустом мСстС Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ Ρƒ Вас появится Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ этого:

 Private Sub Form_Load()
 End Sub

Π’Ρ‹ просто сотритС это ΠΈ Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

   Private Sub Command1_Click()
        Dim a As Long
        Dim b As Long
        a = Text1.Text
        b = Text2.Text
        Text3.Text = a + b
        End Sub

        Private Sub Command2_Click()
        Dim a As Long
        Dim b As Long
        a = Text1.Text
        b = Text2.Text
        Text3.Text = a * b
        End Sub

        Private Sub Command3_Click()
        Dim a As Long
        Dim b As Long
        a = Text1.Text
        b = Text2.Text
        Text3.Text = a / b
        End Sub

        Private Sub Command4_Click()
        Dim a As Long
        Dim b As Long
        a = Text1.Text
        b = Text2.Text
        Text3.Text = a - b
        End Sub


Π’ΠΎΡ‚ такая нСзамысловатая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΅Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ мСню Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΎΡ‡ΠΊΡƒ (ΠΈΠΊΠΎΠ½ΠΊΡƒ) ΠΊΠ°ΠΊ Β«startΒ» ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅, Ссли Π’Ρ‹ всС сдСлали ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, Ρ‚ΠΎ Ρƒ Вас запустится ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Π³Π΄Π΅ Π±ΡƒΠ΄Π΅Ρ‚ 3 тСкстовых поля ΠΈ 4 ΠΊΠ½ΠΎΠΏΠΊΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π² Π²Π΅Ρ€Ρ…Π½ΠΈΠ΅ 2 поля Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: Π² ΠΏΡ€Π°Π²ΠΎΠ΅ 50, Π° Π² Π»Π΅Π²ΠΎΠ΅ 10 ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ дСйствиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, наТимая Π½Π° всС ΠΊΠ½ΠΎΠΏΠΊΠΈ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΡ‡Ρ‚ΠΈΡ‚Π΅, ΠΎΠ½Π° выполняСт всС дСйствия Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Ρ†Π΅Π»Ρ‹ΠΌΠΈ числами.

Когда ΠΌΡ‹ всС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ»ΠΈ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² exe Ρ„Π°ΠΉΠ», для этого Π½Π°ΠΆΠΌΠΈΡ‚Π΅ мСню Β«Ρ„Π°ΠΉΠ»Β» Β«ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Β», ΠΏΠΎΡ‚ΠΎΠΌ просто ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΏΡƒΡ‚ΡŒ, ΠΊΡƒΠ΄Π° Π΅Π³ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ. ПослС компиляции запуститС Π½Π°ΡˆΡƒ с Π’Π°ΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ числа. Π’ этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΌΡ‹ Π½Π΅ прописывали Π½ΠΈΠΊΠ°ΠΊΠΈΡ… условий, поэтому строго ΡΠΎΠ±Π»ΡŽΠ΄Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² тСкстовых полях Π±Ρ‹Π»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†Π΅Π»Ρ‹Π΅ числа. Π’ΠΎΡ‚ ΠΌΡ‹ ΠΈ написали ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° Visual Basic Π² срСдС программирования Microsoft Visual Basic v 6.0. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΡƒΡ€ΠΎΠΊΠ°Ρ… ΠΌΡ‹ ΡƒΠΆΠ΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ послоТнСй.

Нравится13НС нравится2

DashaMail ΡƒΠΊΡ€Π°Π» ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ AB-тСстов ΠΈΒ ΠΊΠΎΠ΄ Mindbox. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π½Π΅Β Π½Π°Π΄ΠΎ Ρ‚Π°ΠΊ

DashaMail ΡƒΠΊΡ€Π°Π» ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ AB-тСстов ΠΈΒ ΠΊΠΎΠ΄ Mindbox. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π½Π΅Β Π½Π°Π΄ΠΎ Ρ‚Π°ΠΊ | Π–ΡƒΡ€Π½Π°Π» Mindbox ΠΎΠ± Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΈΠ½Π³Π°

  1. ΠœΠ°Ρ€ΠΊΠ΅Ρ‚ΠΈΠ½Π³

БСрвис email-рассылок DashaMail «позаимствовал» ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ AB-тСстов ΠΈΒ Π²Π΄ΠΎΠ±Π°Π²ΠΎΠΊ использовал наш JS-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈΒ API на сайтС Β«Π‘ΠΈΠ»Π°ΠΉΠ½Π°Β». Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹Β ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π»ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒΡΡ с коллСгами в пСрСпискС, ΠΏΠΎΡ‚ΠΎΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ»ΠΈ Π΄ΠΎΡΡƒΠ΄Π΅Π±Π½ΡƒΡŽ ΠΏΡ€Π΅Ρ‚Π΅Π½Π·ΠΈΡŽΒ β€” ΠΎΡ‚Π²Π΅Ρ‚Π° Π½Π΅Β ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ.

Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡΒ β€” послСдняя ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π΄Π΅Π»ΠΎ ΠΌΠΈΡ€ΠΎΠΌ ΡΒ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ давлСния общСствСнности, Π±Π΅Π· суда.

НС ищСм Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎΒ PR, Π½Π΅Β Ρ…ΠΎΡ‚ΠΈΠΌ ΡΡƒΠ΄ΠΈΡ‚ΡŒΡΡ ΠΈΒ ΠΎΠ±ΠΈΠΆΠ°Ρ‚ΡŒ ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ…. Π₯ΠΎΡ‚ΠΈΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ, Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ, Π½ΠΎΒ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Π±Π΅Π· внимания Π½Π΅Β Π²ΠΈΠ΄ΠΈΠΌ возмоТности.

БСрвис email-рассылок DashaMail «позаимствовал» ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ AB-тСстов ΠΈΒ Π²Π΄ΠΎΠ±Π°Π²ΠΎΠΊ использовал наш JS-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈΒ API на сайтС Β«Π‘ΠΈΠ»Π°ΠΉΠ½Π°Β». Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹Β ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π»ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒΡΡ с коллСгами в пСрСпискС, ΠΏΠΎΡ‚ΠΎΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ»ΠΈ Π΄ΠΎΡΡƒΠ΄Π΅Π±Π½ΡƒΡŽ ΠΏΡ€Π΅Ρ‚Π΅Π½Π·ΠΈΡŽΒ β€” ΠΎΡ‚Π²Π΅Ρ‚Π° Π½Π΅Β ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ.

АлСксандр Π“ΠΎΡ€Π½ΠΈΠΊ, CEO Mindbox

О компании

MindboxΒ β€” ΠΊΡ€ΡƒΠΏΠ½Π΅ΠΉΡˆΠΈΠΉ Martech SaaS в России. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΈΠ½Π³Π° (CDP). ОбъСдиняСм Π²Β Π΅Π΄ΠΈΠ½ΠΎΠΌ ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ с сайта, ΠΈΠ·Β ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, касс Ρ€ΠΎΠ·Π½ΠΈΡ†Ρ‹, рассылок.

Π‘Β 2006 Π³ΠΎΠ΄Π° ΠΏΠΎΠΌΠΎΠ³Π°Π΅ΠΌ Β«Π ΠΈΠ³Π»Π΅Β», Burger King, United Colors ofΒ Benetton ΠΈΒ Π΅Ρ‰Π΅ 400 компаниям ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠΌΠ½ΠΈΠΊΠ°Π½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π»ΠΎΡΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ; ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ с клиСнтами Ρ‡Π΅Ρ€Π΅Π· email-рассылки, ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΈΒ Π²Π΅Π±ΠΏΡƒΡˆΠΈ, Ρ‡Π°Ρ‚-Π±ΠΎΡ‚Ρ‹; Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½Ρ‹Π΅ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹ и услуги — Π²Β ΠΏΠΈΡΡŒΠΌΠ°Ρ… и на сайтС. ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ 157 историй успСха ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ².

Π§Ρ‚ΠΎ ΡƒΠΊΡ€Π°Π» DashaMail ΠΈΒ ΠΊΠ°ΠΊ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ»ΠΈ

ОсСнью ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ Π³ΠΎΠ΄Π° ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ·Β ΠΊΠΎΠ»Π»Π΅Π³ случайно ΡƒΠ²ΠΈΠ΄Π΅Π» Ρ€Π΅ΠΊΠ»Π°ΠΌΡƒ в «ЀСйсбукС» — Π²Β Π½Π΅ΠΉ DashaMail ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ³Π°Π»Π° свой ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ сплит-тСстов. Бходство ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈΡ…Β ΠΈΒ Π½Π°ΡˆΠΈΠΌ инструмСнтом Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ Π½Π΅Π²ΠΎΠΎΡ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΌ взглядом:

Π‘Π»Π΅Π²Π° ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Mindbox, справа — DashaMail: ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ Π΄Π°ΠΆΠ΅ Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½Ρ‹Π΅ Ρ†ΠΈΡ„Ρ€Ρ‹ в ячСйках

ΠšΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ мы сдСлали Ρ‚Ρ€ΠΈ Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄. ΠŸΡ€Π΅Π΄Ρ‹ΡΡ‚ΠΎΡ€ΠΈΡ вопроса, провСряСмая Ρ‡Π΅Ρ€Π΅Π· кэши Π“ΡƒΠ³Π»Π°,Β β€” Π²Β ΠΊΠΎΠ½Ρ†Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ. У нас Π½Π°Β Ρ€ΡƒΠΊΠ°Ρ… Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€Ρ‹ с вСб-студиСй, которая вСрстала ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, с пСрСдачСй ΠΏΡ€Π°Π² Π½Π°ΠΌ.

КоллСги Π½Π΅Β ΡΡ‚Π΅ΡΠ½ΡΡŽΡ‚ΡΡ ΠΏΠΈΠ°Ρ€ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ скопированный инструмСнт: написали Π΄Π°ΠΆΠ΅ Ρ†Π΅Π»ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΏΡ€ΠΎ тСстированиС Π³ΠΈΠΏΠΎΡ‚Π΅Π· Π½Π°Β vc.ru.

ΠœΡ‹Β Π½Π°Ρ‡Π°Π»ΠΈ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ, а нС позаимствовал ли DashaMail Π΅Ρ‰Π΅ ΠΊΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ наши Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π’Ρ‹ΡΡΠ½ΠΈΠ»ΠΎΡΡŒ: позаимствовал! На сайтС Β«Π‘ΠΈΠ»Π°ΠΉΠ½Π°Β» Π₯Ρ€ΠΎΠΌ опрСдСляСт в качСствС источника JS-Ρ„Π°ΠΉΠ»Π° наш ΠΊΠΎΠ΄. Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ Π½ΡƒΠΆΠ΅Π½ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ с сайта Π²Β ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ. Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ Mindbox ΠΈΒ ΠΊΠΎΠ΄ DashaMail.

ВСроятно, ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ понадобилось, Ρ‡Ρ‚ΠΎΠ±Ρ‹ быстрСС провСсти ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ сайта с DashaMailΒ β€” Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ сСрвиса нС стали ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ с нуля, а просто скопировали наш JS-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈ, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, сСрвСрноС API.

ΠœΡ‹Β Π·Π°Β ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ†ΠΈΡŽ, Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π°ΠΌΠΈ нС привязываСм. Если ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ Π»ΡƒΡ‡ΡˆΠ΅ с конкурСнтом — экспортируСм всС Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΒ ΠΏΠΎΠΌΠΎΠ³Π°Π΅ΠΌ с пСрСходом. Но нС путСм ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ нашСй ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ собствСнности. Π­Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€.

НСмного тСхничСских Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ: ΠΊΠΎΠ΄ Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€Π° нС просто ΠΏΠΎΡ…ΠΎΠΆΒ β€” оставлСны Π΄Π°ΠΆΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ нашСго Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π²Β Source Maps. Π£Ρ‚ΠΎΡ‡Π½ΡŽ на всякий случай: Source Maps (сорсмэп)Β β€” это инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ исходный ΠΊΠΎΠ΄ Π΄Π°ΠΆΠ΅ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΅Π³ΠΎ сТали.

ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒΡΡ

ПослС обнаруТСния заимствования ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π°, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΡˆΠ»Π° пСрвая ΠΎΠ±ΠΈΠ΄Π°, ΠΌΡ‹Β Ρ€Π΅ΡˆΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ для ΠΏΠΎΠ»ΡŒΠ·Ρ‹ Ρ€Ρ‹Π½ΠΊΡƒ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ им бСсплатно. Π’Π΅Π΄ΡŒ ΠΌΡ‹Β Π΅Π³ΠΎ Π΄Π΅Π»Π°Π»ΠΈ нС для сСбя, а для ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ². Π’Β ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², ΠΏΡƒΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π΅Ρ€ΠΊΠ°Π»ΠΎ, просто с указаниСм нашСго авторства. Начали с общСния в мСссСндТСрС: ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ»ΠΈ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ссылку на наш сайт Π²Β ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π΅. Π’Π°ΠΊ и наши ΠΏΡ€Π°Π²Π° Π±Ρ‹Π»ΠΈΒ Π±Ρ‹ ΡΠΎΠ±Π»ΡŽΠ΄Π΅Π½Ρ‹, ΠΈΒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ DashaMail ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠ»ΠΈΒ Π±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ инструмСнтом.

DashaMail ΠΎΠ±Π΅Ρ‰Π°Π» ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ссылку Π½Π°Β Mindbox Π΅Ρ‰Π΅ Π²Β ΠΊΠΎΠ½Ρ†Π΅ ноября 2020Β Π³ΠΎΠ΄Π°, Π½ΠΎΒ Ρ‚Π°ΠΊ и нС сдСлал этого

Π”Π°Π»ΡŒΡˆΠ΅ ΠΌΡ‹Β Π½Π°Ρ‚ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ Π½Π°Β ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ нашСго ΠΊΠΎΠ΄Π°, и расстройство выросло.

Π§Π΅Ρ€Π΅Π· мСсяц послС пСрСписки в мСссСндТСрС наш ΡŽΡ€ΠΈΡΡ‚ Π½Π°ΠΏΡ€Π°Π²ΠΈΠ»Π° DashaMail Π΄ΠΎΡΡƒΠ΄Π΅Π±Π½ΡƒΡŽ ΠΏΡ€Π΅Ρ‚Π΅Π½Π·ΠΈΡŽ:

ΠžΡ‚Π²Π΅Ρ‚Π° нС доТдались.

Π§Π΅Π³ΠΎ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΎΡ‚Β DashaMail сСйчас

ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ DashaMail Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΄Π²Π° условия:

  1. Π’Β ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ нашС авторство ΠΈΒ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠ»ΠΈΠΊΠ°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏ Mindbox Π½Π°Β Π²ΠΈΠ΄Π½ΠΎΠΌ мСстС. НапримСр, ΠΊΠ°ΠΊ Π½Π°Β ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅.

Аналогично ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ нашС авторство во всСх Π²Ρ‹ΡˆΠ΅Π΄ΡˆΠΈΡ… публикациях с упоминаниСм ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π° ΠΈΒ Ρ€Π΅ΠΊΠ»Π°ΠΌΠ΅, Ссли таковая Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° ΠΈΠ»ΠΈ Π±ΡƒΠ΄Π΅Ρ‚.

  1. Π£Π΄Π°Π»ΠΈΡ‚ΡŒ наш ΠΊΠΎΠ΄ на сайтС Β«Π‘ΠΈΠ»Π°ΠΉΠ½Π°Β».

Π‘Ρ‹Π»ΠΎΒ Π±Ρ‹ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ принСсти извинСния и, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, большС Ρ‚Π°ΠΊ Π½Π΅Β Π΄Π΅Π»Π°Ρ‚ΡŒ. Π’Β ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π· мы сразу ΠΏΠΎΠΉΠ΄Π΅ΠΌ в суд.

ΠŸΡ€Π΅Π΄Ρ‹ΡΡ‚ΠΎΡ€ΠΈΡ: Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ AB-тСстов ΠΈΒ ΠΊΠ°ΠΊ ΠΌΡ‹Β Π΅Π³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ

AB-тСсты — стандартный инструмСнт ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΎΠ»ΠΎΠ³ΠΎΠ² для опрСдСлСния Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивного Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° ΠΈΠ·Β Π΄Π²ΡƒΡ… элСмСнтов, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π΅ΠΌΡ‹ письма. Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π±Ρ‹Π»ΠΈ статистичСски достовСрными, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ AB-тСстов: ΠΏΠΎΠ΄Π±ΠΈΡ€Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ до тСста ΠΈΒ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² послС.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ статистичСскиС Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ и понятными, Π½ΡƒΠΆΠ½ΠΎ ΠΊΠ°ΠΊ слСдуСт Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ ΠΈΒ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ. ΠšΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ Π²Β Π²ΠΈΠ΄Π΅ Excel-Ρ„Π°ΠΉΠ»Π° с формулами ΠΈΠ»ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ инструмСнта. ΠœΡ‹Β ΠΏΠΎΡˆΠ»ΠΈ ΠΏΠΎΒ Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΡƒΡ‚ΠΈΒ β€” Π²Β Ρ„Π΅Π²Ρ€Π°Π»Π΅ этого Π³ΠΎΠ΄Π° Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Ρƒ исполнится ΡƒΠΆΠ΅ 3Β Π³ΠΎΠ΄Π°.

Π’Π΄ΠΎΡ…Π½ΠΎΠ²Π»ΡΠ»ΠΈΡΡŒ Π±Π»ΠΎΠ³ΠΎΠΌ evanmiller.org: ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»Π°ΡΡŒ общая концСпция, но взяли Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ ΠΏΠΎΠΏΡ€ΠΎΡ‰Π΅ (ΠΏΠ»ΠΎΡ…ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с малыми Π²Ρ‹Π±ΠΎΡ€ΠΊΠ°ΠΌΠΈ), Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π΅Β ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π»ΠΈ. Π’Β Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ получился ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ ΡΒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² тСста и пояснСниями. Π­Ρ‚ΠΎΠ³ΠΎ в исходной вСрсии Π½Π΅Β Π±Ρ‹Π»ΠΎ. ΠšΠ°ΠΆΠ΅Ρ‚ΡΡ, это СдинствСнный ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ русскоязычный инструмСнт.

ΠœΠ°Ρ€ΠΊΠ΅Ρ‚ΠΎΠ»ΠΎΠ³ΠΈ ΠΎΡ†Π΅Π½ΠΈΠ»ΠΈ наш ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€: 73 тысячи просмотров страницы ΡΒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ΠΎΠΌ Π·Π°Β 2020Β Π³ΠΎΠ΄, ΠΏΠΎΒ Π΄Π°Π½Π½Ρ‹ΠΌ Google Analytics.

Microsoft сдСлала ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Windows ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ

Microsoft Π΄Π°Π²Π½ΠΎ являСтся сторонником ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΠΈ нСсвободного ПО., идСология, благодаря ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ компания Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄Ρ‹ Π΄ΠΎΠ»Π»Π°Ρ€ΠΎΠ². Π˜ΡΡ‚ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠΈ компания Π±Ρ‹Π»Π° ΠΏΡ€ΠΎΡ‚ΠΈΠ² ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Linux.

Однако ΠΏΠΎΠ΄ руководством Π‘Π°Ρ‚ΡŒΡ НадСллы Microsoft прСдставляСт собой совсСм Π΄Ρ€ΡƒΠ³ΠΎΠ΅ общСство. Он Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄ ΠΈ Linux, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ приносит ΠΊΠΎΠ΄ Π² ΠΌΠΈΡ€ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ исходного ΠΊΠΎΠ΄Π°.

Π’ самом Π΄Π΅Π»Π΅, Microsoft стала ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· основных участников. И Π²ΠΎΡ‚ Π²Ρ‡Π΅Ρ€Π° люди Windows объявили ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ΄Π΅Ρ‚ Π΅Ρ‰Π΅ дальшС Π² своСй привСрТСнности ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ исходного ΠΊΠΎΠ΄Π°. Как ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π° Windows Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄ Π½Π° GitHub.

Π’ сообщСнии Π² Π±Π»ΠΎΠ³Π΅ Microsoft, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ:

БСгодня ΠΌΡ‹ Ρ€Π°Π΄Ρ‹ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ выпускаСм ΠΊΠΎΠ΄ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π° Windows Π½Π° GitHub ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ MIT. Π­Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ исходный ΠΊΠΎΠ΄, систСму сборки, ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Π΅ тСсты ΠΈ Π΄ΠΎΡ€ΠΎΠΆΠ½ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚Ρƒ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°.

Наша Ρ†Π΅Π»ΡŒ — ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ Π»ΡƒΡ‡ΡˆΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΎΠΏΡ‹Ρ‚ Π² партнСрствС с сообщСством. ΠœΡ‹ поощряСм ваши Π½ΠΎΠ²Ρ‹Π΅ взгляды ΠΈ Π±ΠΎΠ»Π΅Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ участиС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π°.

Как Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ части ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π°, Π»Π΅Π³ΠΊΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс Π² свои собствСнныС прилоТСния ΠΈΠ»ΠΈ Π²Π½ΠΎΡΠΈΡ‚ΡŒ нСпосрСдствСнный Π²ΠΊΠ»Π°Π΄ Π² Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² состав Windows, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

ΠšΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ всС ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ процСссы тСстирования, соотвСтствия, бСзопасности, качСства ΠΈ сборки, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹Π΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ, ΠΊΠ°ΠΊ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ наши прилоТСния.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ внСсти свой Π²ΠΊΠ»Π°Π΄

Microsoft ΠΏΡ€ΠΈΠ·Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π²Π½ΠΎΡΠΈΡ‚ΡŒ свой Π²ΠΊΠ»Π°Π΄ Π² ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Windows, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ доступСн Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ доступС Ρ‡Π΅Ρ€Π΅Π·:

  • УчаствуйтС Π² обсуТдСниях.
  • Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.
  • ΠŸΡ€Π΅Π΄Π»Π°Π³Π°Ρ Π½ΠΎΠ²Ρ‹Π΅ ΠΈΠ΄Π΅ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.
  • РСализация ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠ² Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.
  • ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ участиС Π² ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΡΡ‚Π²Π΅ Π·Π΄Π°Π½ΠΈΠΉ со своими ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π°ΠΌΠΈ.

ΠšΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Windows Π² настоящСС врСмя поставляСтся со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ функциями:

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

Как ΠΈ всС измСнСния, Π§Π»Π΅Π½ Π³Ρ€ΡƒΠΏΠΏΡ‹ Microsoft ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ ΠΊΠΎΠ΄ Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π³ΠΎ Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ.

НовыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ часто Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ большСго тСхничСского рСдактирования, Ρ‡Π΅ΠΌ исправлСния ошибок. ΠŸΡ€ΠΈ сканировании ΠΊΠΎΠ΄Π° Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π° Microsoft ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

НСобходимо ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° всС ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ списка доступности.
ВсС ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ глобального ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ списка Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹.

ИзмСнСниС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° самой старой вСрсии Windows, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ этот Π½ΠΎΠΌΠ΅Ρ€ вСрсии Π² AppxManifest.xml.

ВсС Π²Ρ‹Π·ΠΎΠ²Ρ‹ API Π½ΠΎΠ²Π΅Π΅, Ρ‡Π΅ΠΌ эта вСрсия, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ условно Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Ρ‹.

Π’ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ API. Если Π΅ΡΡ‚ΡŒ вопросы ΠΎΠ± использовании ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… ΠΈΠ»ΠΈ Π½Π΅Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… API-интСрфСйсов, для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ сСртификации ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Windows.

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

Если Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ условия Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π°ΠΊΠΊΡ€Π΅Π΄ΠΈΡ‚ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ… Π»ΠΈΡ†.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎΠ± этом большС, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠ΅Ρ‚ΠΈΡ‚ΡŒ заявлСниС Π² Π±Π»ΠΎΠ³Π΅ Microsoft. Бсылка такая.Β 

8 Π›ΡƒΡ‡ΡˆΠΈΡ… ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ΠΎΠ² Ρ‚Π°ΠΉΠΌ-ΠΊΠΎΠ΄ΠΎΠ² для использования (ΠΎΠ½Π»Π°ΠΉΠ½/iPhone/Android)

Oct 14, 2021β€’ ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ

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

Π’Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΡ‚ΡŒΡΡ:  БСсплатныС ΠšΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Ρ‹ Π”Π΅Π½Π΅Π³ Π½Π° YouTube >>

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

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Ρ‚Π°ΠΉΠΌ-ΠΊΠΎΠ΄ΠΎΠ² Π½Π° ПК-FilmoraPro

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ, Π½ΠΎ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятный ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Ρ‚Π°ΠΉΠΌ-ΠΊΠΎΠ΄Π°, ΠΌΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ FilmoraPro для расчСта Ρ‚Π°ΠΉΠΌ-ΠΊΠΎΠ΄Π°. Π­Ρ‚ΠΎ встроСнный эффСкт, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ просто ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚Π΅ Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Π’Π°ΠΉΠΌ-ΠΊΠΎΠ΄ Ρ‚ΠΎΡ‡Π΅Π½ Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΡŒ. Π­Ρ‚ΠΈ шаги Ρ‚Π°ΠΊΠΆΠ΅ Π»Π΅Π³ΠΊΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ. НС Π½ΡƒΠΆΠ½ΠΎ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ ΠΎ слоТных опСрациях. ΠŸΡ€ΠΎΡΡ‚ΠΎ скачайтС Π΅Π³ΠΎ прямо сСйчас, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ!

  • ΠŸΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚Π΅ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ»ΠΈΠΏ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΡˆΠΊΠ°Π»Ρƒ
  • ΠŸΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚Π΅ эффСкт Ρ‚Π°ΠΉΠΌ-ΠΊΠΎΠ΄Π° Π² Π²ΠΈΠ΄Π΅ΠΎΠΊΠ»ΠΈΠΏ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ сгСнСрирован ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Ρ‚Π°ΠΉΠΌ-ΠΊΠΎΠ΄Π°
  • Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ миллисСкунды, ΠΊΠ°Π΄Ρ€Ρ‹ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π± Ρ‚Π°ΠΉΠΌ-ΠΊΠΎΠ΄Π°. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ тСкста ΠΈ Π½Π΅ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ.

Π§Π°ΡΡ‚ΡŒ 1: Π›ΡƒΡ‡ΡˆΠΈΠΉ ΠΎΠ½Π»Π°ΠΉΠ½ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Ρ‚Π°ΠΉΠΌ-ΠΊΠΎΠ΄Π°

Π’ΠΎΡ‚ список Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Ρ… ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ΠΎΠ² Ρ‚Π°ΠΉΠΌ-ΠΊΠΎΠ΄ΠΎΠ² –

1. Michael Cinquin

Π­Ρ‚ΠΎΡ‚ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Ρ‚Π°ΠΉΠΌ-ΠΊΠΎΠ΄Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ встроСнный ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ ΠΊΠ΅ΠΉΠΊΠΎΠ΄Π° (keycode). ΠšΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Ρ‚Π°ΠΉΠΌ-ΠΊΠΎΠ΄Π° позволяСт Π²Π°ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ количСство ΠΊΠ°Π΄Ρ€ΠΎΠ² Π² сСкунду, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ ΠΊΠ΅ΠΉΠΊΠΎΠ΄Π° ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ Ρ„ΠΈΠ»ΡŒΠΌΠ° Π²Ρ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚Π΅.

Π₯арактСристики

  • Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого инструмСнта Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΉΠΌΠΊΠΎΠ΄ Π² изобраТСния.
  • Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΈΠ»ΠΈ Π²Ρ‹Ρ‡Ρ‚Π΅Π½Ρ‹ ΠΈΠ· ΠΊΠΎΠ΄Π° ΠΊΠ»ΡŽΡ‡Π°.
  • Π’Π°ΠΉΠΌ-ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΈΠ»ΠΈ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ ΠΈΠ· Ρ‚Π°ΠΉΠΌ-ΠΊΠΎΠ΄Π°.
  • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ вычислСниС количСства ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ 2 ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ.

2. Zapstudio

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

Π₯арактСристики

  • Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ частоту ΠΊΠ°Π΄Ρ€ΠΎΠ² для прСобразования ΠΊΠ°Π΄Ρ€ΠΎΠ² Π²ΠΎ врСмя ΠΈ врСмя Π² ΠΊΠ°Π΄Ρ€Ρ‹.
  • Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ врСмя ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ «Π²Ρ…ΠΎΠ΄» ΠΈ «Π²Ρ‹Ρ…ΠΎΠ΄» здСсь.
  • Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ»ΠΈΠΏ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² частоту ΠΊΠ°Π΄Ρ€ΠΎΠ² ΠΊΠ»ΠΈΠΏΠ° ΠΈ частоту ΠΊΠ°Π΄Ρ€ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

3. Omni

Π­Ρ‚ΠΎΡ‚ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Ρ‚Π°ΠΉΠΌ-ΠΊΠΎΠ΄ΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ интСрфСйс, Π½ΠΎ с большим количСством Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ±ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с Ρ‚ΠΎΠ»ΠΊΡƒ. Плюс Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ поставляСтся с инструкциями ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ Π½Π° страницС использования ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π° Ρ‚Π°ΠΉΠΌ-ΠΊΠΎΠ΄Π°.

Π₯арактСристики

  • Π‘Π°ΠΉΡ‚ позволяСт Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠ°Π΄Ρ€Ρ‹ ΠΈ ΠΊΠ°Π΄Ρ€Ρ‹ Π² сСкунду, Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ публикуСтся Ρ‡ΡƒΡ‚ΡŒ Π½ΠΈΠΆΠ΅ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.
  • Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΠΏΠΎ элСктронной ΠΏΠΎΡ‡Ρ‚Π΅ ΠΈΠ»ΠΈ Π½Π° сайтах ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтСй, Π½Π°ΠΆΠ°Π² Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ «ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ этот Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚».
  • ЗначСния ΠΌΠΎΠΆΠ½ΠΎ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ, Π½Π°ΠΆΠ°Π² Π½Π° Π·Π½Π°Ρ‡ΠΎΠΊ «ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ».

4. Kodak

Π­Ρ‚ΠΎΡ‚ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Ρ‚Π°ΠΉΠΌ-ΠΊΠΎΠ΄Π° ΠΎΡ‚ экспСрта ΠΏΠΎ созданию Ρ„ΠΈΠ»ΡŒΠΌΠΎΠ² Kodak просто ΠΏΠΎΡ‚Ρ€ΡΡΠ°ΡŽΡ‰ΠΈΠΉ. Однако Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ввСсти своС мСстополоТСниС, начиная Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ Ρ‚Π°ΠΉΠΌ-ΠΊΠΎΠ΄.

Π₯арактСристики

  • Он позволяСт Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½ΠΎΠ³ΠΈ, ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ, врСмя ΠΈ ΠΊΠ°Π΄Ρ€Ρ‹.
  • Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ здСсь ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ количСство ΠΊΠ°Π΄Ρ€ΠΎΠ² Π² сСкунду.
  • Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½ΠΎΠ³ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС постоянны ΠΏΡ€ΠΈ вычислСнии Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. Π­Ρ‚ΠΎ влияСт Π½Π° ΠΎΠ±Ρ‰ΠΈΠ΅ цСнности.

Π§Π°ΡΡ‚ΡŒ 2: Π›ΡƒΡ‡ΡˆΠΈΠ΅ прилоТСния для ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π° Ρ‚Π°ΠΉΠΌ-ΠΊΠΎΠ΄ΠΎΠ²

Когда Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ расчСта Ρ‚Π°ΠΉΠΌ-ΠΊΠΎΠ΄Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ½Π»Π°ΠΉΠ½-прилоТСния timecode calculator Π½Π° вашСм смартфонС, Ρƒ вас Ρ‚ΠΎΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΈΡ… список.

5. Daan van de Westelaken

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для iOS доступно нСпосрСдствСнно для установки Π½Π° ваш iPhone с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ сайта. Он Ρ‚Π°ΠΊΠΆΠ΅ извСстСн ΠΊΠ°ΠΊ простой ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Ρ‚Π°ΠΉΠΌ-ΠΊΠΎΠ΄Π°.

Π₯арактСристики

  • Он ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ iOS 8 ΠΈ Π²Ρ‹ΡˆΠ΅ совмСстимыС Π°ΠΉΡ„ΠΎΠ½Ρ‹.
  • Он ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²Π°ΠΌ ΡƒΠΌΠ½ΠΎΠΆΠ°Ρ‚ΡŒ, ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ, Π²Ρ‹Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ Π΄Π΅Π»ΠΈΡ‚ΡŒ Π²ΠΈΠ΄Π΅ΠΎΡ„Π°ΠΉΠ»Ρ‹ с использованиСм основных частот ΠΊΠ°Π΄Ρ€ΠΎΠ².
  • Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для iOS поставляСтся со встроСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Π±Π΅Π³ΡƒΡ‰Π΅ΠΉ Π»Π΅Π½Ρ‚Ρ‹, которая активируСтся Π² Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠΎΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚Π΅ iPhone Π² Π°Π»ΡŒΠ±ΠΎΠΌΠ½ΡƒΡŽ ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ.
  • Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ экранноС Π²Ρ…ΠΎΠ΄Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ любой ΠΈΠ· 2 ΠΊΠ½ΠΎΠΏΠΎΠΊ памяти, удСрТивая эту ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ.

6. TcCalc

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Android ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ для расчСта Ρ‚Π°ΠΉΠΌ-ΠΊΠΎΠ΄ΠΎΠ² Π²ΠΈΠ΄Π΅ΠΎ ΠΈ Ρ„ΠΈΠ»ΡŒΠΌΠΎΠ². Он совмСстим со всСми частотами ΠΊΠ°Π΄Ρ€ΠΎΠ².

Π₯арактСристики

  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ частоты ΠΊΠ°Π΄Ρ€ΠΎΠ² TcCalc ΡΠ²Π»ΡΡŽΡ‚ΡΡ 23.98, 24, 25, 29.97, 30, 50, 59.94, ΠΈ 60.
  • Он Π΄Π°ΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ ΠΈ Π½Π΅ ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠ΄ΠΎΠ².
  • Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ значСния, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°Π΄Ρ€Π° остаСтся Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌ.
  • Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ строки Ρ‚Π°ΠΉΠΌ-ΠΊΠΎΠ΄ΠΎΠ² ΠΈ значСния Ρ„Ρ€Π΅ΠΉΠΌΠΎΠ² ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌΠΈ для Ρ‚Π°ΠΉΠΌ-ΠΊΠΎΠ΄ΠΎΠ².

7. TimeCode Calculator

Π­Ρ‚ΠΎ ΠΏΠ»Π°Ρ‚Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Android доступно Π² Google Play Store, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΡƒΠΏΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π·Π° 2,58 Π΄ΠΎΠ»Π»Π°Ρ€Π°. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ для вычислСний Ρ‚Π°ΠΉΠΌ-ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π²Ρ…ΠΎΠ΄ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ Ρ‚Π°ΠΉΠΌ-ΠΊΠΎΠ΄Π° для прСобразования Π² Ρ„Ρ€Π΅ΠΉΠΌΡ‹ ΠΈ ΠΈΠ· Ρ„Ρ€Π΅ΠΉΠΌΠΎΠ².

Π₯арактСристики

  • Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ частотой ΠΊΠ°Π΄Ρ€ΠΎΠ² Π² сСкунду, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ drop ΠΈ non drop-NTSC (SMTPE-12M-1-2008), ΠΈ PAL.
  • Он ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΈΠ»ΡŒΠΌΡ‹ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹Ρ€Π΅Π·Π°Ρ‚ΡŒ ΠΈΡ… с частотой ΠΊΠ°Π΄Ρ€ΠΎΠ² Π² сСкунду ΠΎΡ‚ 10 ΠΈ Π²Ρ‹ΡˆΠ΅.
  • РасчСт Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° поддСрТиваСтся для слоТСния, вычитания, дСлСния ΠΈ умноТСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ RCL STO.

8. Timecode

Он ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ вСрсии iOS Π²Ρ‹ΡˆΠ΅, Ρ‡Π΅ΠΌ iOS 8 Π½Π° iPhone, iPad ΠΈ iPod Touch. Он позволяСт Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠΎΠ΄ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΈΠ»ΠΈ Π»ΡŽΠ±ΡƒΡŽ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ измСрСния ΠΎΠ΄Π½ΠΈΠΌ Ρ‰Π΅Π»Ρ‡ΠΊΠΎΠΌ ΠΌΡ‹ΡˆΠΈ.

Π₯арактСристики

  • Он ΠΈΠΌΠ΅Π΅Ρ‚ 10 ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… прСдустановлСнных Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ².
  • Π’ этом ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ для iOS Π΅ΡΡ‚ΡŒ 10 прСдустановлСнных частот ΠΊΠ°Π΄Ρ€ΠΎΠ² ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ† измСрСния..
  • РасчСт Ρ‚Π°ΠΉΠΌ-ΠΊΠΎΠ΄Π° ΠΈ отснятый ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»-это cakewalk с ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятным ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.

Π’Ρ‹Π²ΠΎΠ΄

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

Liza Brown

Liza Brown являСтся писатСлСм ΠΈ Π»ΡŽΠ±ΠΈΡ‚Π΅Π»Π΅ΠΌ всСго Π²ΠΈΠ΄Π΅ΠΎ.

ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° @Liza Brown

ВСстовая Π·Π°Π΄Π°Ρ‡Π° — ΠšΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Β· GitHub

ВСстовая Π·Π°Π΄Π°Ρ‡Π° — ΠšΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Β· GitHub

Instantly share code, notes, and snippets.

ВСстовая Π·Π°Π΄Π°Ρ‡Π° — ΠšΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€

Π—Π°Π΄Π°Ρ‡Π°: ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€
ОписаниС: Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½ΡƒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ Π½Π° Java, которая Π±ΡƒΠ΄Π΅Ρ‚
ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ 3 ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°:
-a <дСсятичноС число>
-b <дСсятичноС число>
-o <+|-|*|/>
ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π·ΠΎΠ²Π°:
> calc -a 22.45 -b 33.6 -o *
> 754.32
Если Π²Ρ‹Π±Ρ€Π°Π½Π° опция —help Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒΡΡ справка ΠΏΠΎ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π΅.
ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ внятныС сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…: Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ Π²Π²ΠΎΠ΄,
дСлСниС на ноль.
Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ 4 Π·Π½Π°ΠΊΠ° послС запятой.
Как Π΄Π΅Π»Π°Ρ‚ΡŒ
1. Π Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅ΡˆΡŒΡΡ Π½Π° github.com ΠΈ ΡΠΎΠ·Π΄Π°Ρ‘ΡˆΡŒ git Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
(ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎ систСмы контроля вСрсий ΠΈ ΠΏΡ€ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ ΠΏΡ€ΠΎ Git)
2. ΠŸΡ€ΠΎΠ±ΡƒΠ΅ΡˆΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ/ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ/Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ
3. Π‘Π΅Ρ€Ρ‘ΠΌ тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΈ ΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ Hello World Π½Π° Java Π² любой
IDE.
4. Π’Ρ‹ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ IDE, ΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ наш Hello World ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹
javac ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ.
5. Π˜Π΄Ρ‘ΡˆΡŒ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎ систСмы сборки, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ant ΠΈ Maven,
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΡƒΠ΄Π΅ΠΌ Maven.
6. Π‘ΠΎΠ·Π΄Π°Ρ‘ΡˆΡŒ пустой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с Maven сборкой, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π²Π·ΡΡ‚ΡŒ Π²
Π²ΠΈΠ΄Π΅ исходника Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ ΠΈ Ρ„Π°ΠΉΠ»Π° сборки (pom.xml), ΠΈ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΈΠ· консоли
jar Ρ„Π°ΠΉΠ».
7. Π”ΠΎΠ±Π°Π²Π»ΡΠ΅ΡˆΡŒ Π² зависимости ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (Π’ΡƒΡ‚ ΡƒΠΆΠ΅ Π½Π°Π΄ΠΎ Π·Π½Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅)
Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ commons-cli ΠΈΠ· Maven Central (http://mvnrepository.com)
8. ΠŸΡ€ΠΎΠ±ΡƒΠ΅ΡˆΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ†ΠΈΠΉ ΠΈΠ· консоли ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ API Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ
commons-cli
9. ПишСшь сам ΠΊΠΎΠ΄ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π°, ΠΎΠ½ довольно простой ΠΈ малСнький
10. Π‘ΠΎΡ…Ρ€Π°Π½ΡΠ΅ΡˆΡŒ вСсь ΠΊΠΎΠ΄ ΠΈ Ρ„Π°ΠΉΠ» сборки Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½Π° github. (Π½Π΅
Π·Π°Π±ΡƒΠ΄ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· контроля вСрсий Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ классов ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½Ρ‹Π΅
Ρ„Π°ΠΉΠ»Ρ‹ IDE)
ΠŸΠΈΡΠ°Ρ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π² любой срСдС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, я Π±ΡƒΠ΄Ρƒ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ сам ΠΊΠΎΠ΄ ΠΈ Ρ„Π°ΠΉΠ»
сборки. На Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ IntelliJ Idea, Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅
всСго Π±ΡƒΠ΄Π΅Ρ‚ с Π½Π΅ΠΉ. Π—Π° нСдСлю Π²Ρ‹ΡˆΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡ΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ
Π½Π΅ΠΏΡ€ΠΈΠ½ΡƒΠΆΠ΄Ρ‘Π½Π½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, послС Π½Π΅Ρ‘ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π΄Π°Ρ‡ΠΈ Π±ΠΎΠ»Π΅Π΅ Π±Π»ΠΈΠ·ΠΊΠΈΠ΅ ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ.

You can’t perform that action at this time.

You signed in with another tab or window. Reload to refresh your session.
You signed out in another tab or window. Reload to refresh your session.

ΠšΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Windows с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ Π½Π° GitHub

ΠšΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Windows с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ Π½Π° GitHub

Microsoft Π²Ρ‹Π»ΠΎΠΆΠΈΠ»Π° ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Windows Calculator ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ Π½Π° GitHub. Π­Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡ‚ΠΈΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΊ ΡƒΡ‡Π°ΡΡ‚ΠΈΡŽ Π² Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠΈ этого прилоТСния.

ΠšΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ Windows с самого Π½Π°Ρ‡Π°Π»Π°. И хотя вСрсия, которая создана для Windows 10, Π±ΠΎΠ»Π΅Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°, Ρ‡Π΅ΠΌ вСрсия, которая Π±Ρ‹Π»Π° для Windows 1.0, Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ‚Ρƒ ΠΆΠ΅ ΡΠ°ΠΌΡƒΡŽ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.

Microsoft ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠšΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π° Windows Π² своих прилоТСниях. Они Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ°ΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² внСсти свой Π²ΠΊΠ»Π°Π΄ Π² дальнСйшСС Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ самого Windows Calculator, участвуя Π² обсуТдСниях, Π° Ρ‚Π°ΠΊΠΆΠ΅ прСдлагая ΠΈ прототипируя Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Announcing the Open Sourcing of Windows Calculator https://t.co/e0vKPjhxkQ
β€” Windows Blogs (@windowsblog)Β March 6, 2019

Помимо Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° ΠΈ ΠΈΠ΄Π΅ΠΉ, Microsoft считаСт, Ρ‡Ρ‚ΠΎ это Β«ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ способ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ послСдних тСхнологиях Microsoft, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Universal Windows Platform, XAML ΠΈ Azure PipelineΒ».

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Β β€”Β  здСсь, Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽΒ β€”Β  здСсь.


Бпасибо, Ρ‡Ρ‚ΠΎ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅! ΠŸΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π° ΠΌΠΎΠΈ ΠΊΠ°Π½Π°Π»Ρ‹ Π² Telegram, ЯндСкс.ΠœΠ΅ΡΡΠ΅Π½Π΄ΠΆΠ΅Ρ€Π΅ ΠΈ ЯндСкс.Π”Π·Π΅Π½. Волько Ρ‚Π°ΠΌ послСдниС обновлСния Π±Π»ΠΎΠ³Π° ΠΈ новости ΠΌΠΈΡ€Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ.

Π’Π°ΠΊΠΆΠ΅ Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ мСня Π² ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтях: Facebook, Twitter, VK ΠΈΒ OK.


Π₯ΠΎΡ‚ΠΈΡ‚Π΅ большС постов? Π£Π·Π½Π°Π²Π°Ρ‚ΡŒ новости Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ? Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ±Π·ΠΎΡ€Ρ‹ Π½Π° Π³Π°Π΄ΠΆΠ΅Ρ‚Ρ‹? Для всСго этого, Π° Ρ‚Π°ΠΊΠΆΠ΅ для продвиТСния сайта, ΠΏΠΎΠΊΡƒΠΏΠΊΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π° ΠΈ ΠΎΠΏΠ»Π°Ρ‚Ρ‹ хостинга, ΠΌΠ½Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΎΡ‚ вас, ΠΏΡ€Π΅Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½Ρ‹Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ Π΄ΠΎΠ½Π°Ρ‚Π°Ρ… Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π½Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ страницС.

Π•ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒ ΠΏΠ°Ρ‚Ρ€ΠΎΠ½ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ СТСмСсячно ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π±Π»ΠΎΠ³ Π΄ΠΎΠ½Π°Ρ‚ΠΎΠΌ, ΠΈΠ»ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ЯндСкс.Π”Π΅Π½ΡŒΠ³Π°ΠΌΠΈ, WebMoney, QIWI ΠΈΠ»ΠΈ PayPal:


Π—Π°Ρ€Π°Π½Π΅Π΅ спасибо! ВсС собранныС срСдства Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡƒΡ‰Π΅Π½Ρ‹ Π½Π° Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ сайта. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° являСтся ΠΏΠΎΠ΄Π°Ρ€ΠΊΠΎΠΌ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Ρƒ сайта.

ΠšΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Π½Π° Python 3 с графичСским интСрфСйсом β€” ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

МногиС программисты ΡΡ‚Π°Ρ€Π°ΡŽΡ‚ΡΡ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ языки  программирования с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ написания достаточно простых ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Один ΠΈΠ· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² – написаниС ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π°. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅ Python ΠΈΠ»ΠΈ запустив консоль. Но Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° python свой ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ с графичСским интСрфСйсом.

Π‘Ρ‡ΠΈΡ‚Π°Π΅ΠΌ Π² консолС

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ матСматичСскиС выраТСния ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ консоль. Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ python. ПослС этого Π½Π°Π±ΠΈΡ€Π°Π΅ΠΌ матСматичСскиС выраТСния ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΎΡ‚Π²Π΅Ρ‚. Для этого Π΄Π°ΠΆΠ΅ Π½Π΅ Π½Π°Π΄ΠΎ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

Π”Π΅Π»Π°Π΅ΠΌ простой ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€

Π›ΡƒΡ‡ΡˆΠ΅ всСго Π·Π°ΠΊΡ€Π΅ΠΏΠ»ΡΡ‚ΡŒ свои знания ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ написания простых ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π’Π°ΠΊΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ – ΠΊΠ°Π»Π΅Π½Π΄Π°Ρ€ΡŒ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для хранСния Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·Π° ΠΏΠΎΠ³ΠΎΠ΄Ρ‹.

МоТно Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая Π΄Π΅Π»Π°Π΅Ρ‚ ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Ρ‹ ΠΈ сохраняСт ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ изобраТСния Π² ΠΏΠ°ΠΏΠΊΡƒ. Π’ любом случаС, Π½Π°Π΄ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠ΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π½Π΅ слоТноС Π·Π°Π΄Π°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π·Π°ΠΊΠΎΠΏΠ°Ρ‚ΡŒΡΡ Π² Π½Π΅ΠΌ. ΠŸΠΎΡ‚ΠΎΠΌ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎ-настоящСму ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Π’ нашСм случаС ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ простой графичСский ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Π½Π° Python 3. Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ графичСского интСрфСйса Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ стандартным ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ Tkinter. Он Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² состав Python 3. БоотвСтствСнно, Ссли Ρƒ вас установлСн Python, Ρ‚ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ Π½Π°Π΄ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ.

Π’ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… строках Ρ„Π°ΠΉΠ»Π° calculator.py ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

  • Tkinter для графичСского интСрфСйса;
  • Decimal для вычислСний с большСй Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ точности float Π½Π΅ достаточно.

Π˜ΠΌΠΏΠΎΡ€Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ исходныС Π΄Π°Π½Π½Ρ‹Π΅

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠΊΠ½ΠΎ прилоТСния  β€” ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Tk с Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ Calculator. Π’ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ buttons Π±ΡƒΠ΄ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ обозначСния для ΠΊΠ½ΠΎΠΏΠΎΠΊ. Π’ список stack Π±ΡƒΠ΄Π΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ числа ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π΄ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ. activeStr ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для хранСния Π½Π°Π±ΠΈΡ€Π°Π΅ΠΌΠΎΠ³ΠΎ числа.

from tkinter import *
from decimal import *

root = Tk()
root.title('Calculator')

buttons = (('7', '8', '9', '/', '4'),
           ('4', '5', '6', '*', '4'),
           ('1', '2', '3', '-', '4'),
           ('0', '.', '=', '+', '4')
           )

activeStr = ''
stack = []

ВычислСниС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°

Ѐункция calculate ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΈΠ· списка stack ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π°Π΄ Π½ΠΈΠΌΠΈ Π½Π°Π΄ΠΎ произвСсти. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ отобраТаСтся Π² надписи label. ΠŸΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈΠ· списка строки Π±ΡƒΠ΄Π΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° pop.

def calculate():
    global stack
    global label
    result = 0
    operand2 = Decimal(stack.pop())
    operation = stack.pop()
    operand1 = Decimal(stack.pop())

    if operation == '+':
        result = operand1 + operand2
    if operation == '-':
        result = operand1 - operand2
    if operation == '/':
        result = operand1 / operand2
    if operation == '*':
        result = operand1 * operand2
    label.configure(text=str(result))

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° наТатия

Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ click выполняСтся ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ клавиши. Π’ качСствС Π΅Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° пСрСдаСтся тСкст, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π°ΠΆΠ°Π»ΠΈ. Π₯ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π²Π²ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ прямо Π² надписи, Π° Π½Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ для этого ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ. Но Ρ‚Π°ΠΊ Π½Π΅ получаСтся ΠΈΠ·-Π·Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹. ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ посчитан Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, ΠΎΠ½ записываСтся Π² надписи. ΠŸΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ послС этого Π½Π°Ρ‡Π°Ρ‚ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ число, ΠΎΠ½ΠΎ Π±Ρ‹ дописывало ΠΏΡ€Π΅ΠΆΠ½ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

Π’ спискС с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ для ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π° Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡ… Π±ΡƒΠ΄Π΅Ρ‚ 3. Но ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° pop, Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ 3 послСдних Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… значСния. А послС провСдСния расчСта список очистится. Π”Π°Π»Π΅Π΅ Π² Π½Π΅Π³ΠΎ добавляСтся ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Π½Π° случай Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΌΠ΅Ρ‚ Π½Π° ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π΅ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сразу, Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ число.

def click(text):
    global activeStr
    global stack
    if text == 'CE':
        stack.clear()
        activeStr = ''
        label.configure(text='0')
    elif '0' <= text <= '9':
        activeStr += text
        label.configure(text=activeStr)
    elif text == '.':
        if activeStr.find('.') == -1:
            activeStr += text
            label.configure(text=activeStr)
    else:
        if len(stack) >= 2:
            stack.append(label['text'])
            calculate()
            stack.clear()
            stack.append(label['text'])
            activeStr = ''
            if text != '=':
                stack.append(text)
        else:
            if text != '=':
                stack.append(label['text'])
                stack.append(text)
                activeStr = ''
                label.configure(text='0')

Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Π²ΠΈΠ΄

Π’Π΅ΠΏΠ΅Ρ€ΡŒ займСмся ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ΠΌ внСшнСго Π²ΠΈΠ΄Π° ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π° ΠΈ Π·Π°Π΄Π°Π΄ΠΈΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ наТатия ΠΊΠ½ΠΎΠΏΠΎΠΊ. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ надпись для Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π°Π±ΠΈΡ€Π°Π΅ΠΌΡ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ². Π’ Ρ†ΠΈΠΊΠ»Π΅ создаСм ΠΊΠ½ΠΎΠΏΠΊΠΈ. РасполоТСниС ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΈ надписи осущСствляСтся Π² Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‰ΠΈΠΊΠ° grid. И Π² Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ запускаСм Ρ†ΠΈΠΊΠ» ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ событий mainloop.

label = Label(root, text='0', width=35)
label.grid(row=0, column=0, columnspan=4, sticky="nsew")

button = Button(root, text='CE', command=lambda text='CE': click(text))
button.grid(row=1, column=3, sticky="nsew")
for row in range(4):
    for col in range(4):
        button = Button(root, text=buttons[row][col],
                command=lambda row=row, col=col: click(buttons[row][col]))
        button.grid(row=row + 2, column=col, sticky="nsew")

root.grid_rowconfigure(6, weight=1)
root.grid_columnconfigure(4, weight=1)

root.mainloop()

Π£ надписи выставлСна ΡˆΠΈΡ€ΠΈΠ½Π° 35, для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΏΠΎΠ΄ΡΡ‚Ρ€Π°ΠΈΠ²Π°Π»ΠΎΡΡŒ ΠΏΠΎΠ΄ надпись. И Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΡ€ΠΈ этом Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ Π»ΡƒΡ‡ΡˆΠ΅ выглядят.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ, ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΊΠ½ΠΎΠΏΠΎΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свою Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ lambda.

Β 

По Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° python ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π° ΠΌΠΎΠΆΠ½ΠΎ сдСль, допустим, ΠΊΠ°Π»Π΅Π½Π΄Π°Ρ€ΡŒ. Для этого Π½Π°Π΄ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π΄Π°Ρ‚Ρƒ Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ мСсяц, Ρ€Π°ΡΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅ числа Π²Ρ‹ΠΏΠ°Π΄ΡƒΡ‚ Π½Π° понСдСльники, ΠΊΠ°ΠΊΠΎΠΉ Π³ΠΎΠ΄ високосный. Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠ΅Π½ΡΡ‚ΡŒ Π³ΠΎΠ΄ ΠΈ мСсяцы.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Python для создания простого ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π°

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: простой ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ с использованиСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

  # ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ простой ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€

# Π­Ρ‚Π° функция складываСт Π΄Π²Π° числа
def add (x, y):
    Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ x + y

# Π­Ρ‚Π° функция Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ Π΄Π²Π° числа
def Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ (x, y):
    Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ x - y

# Π­Ρ‚Π° функция ΡƒΠΌΠ½ΠΎΠΆΠ°Π΅Ρ‚ Π΄Π²Π° числа
def multiply (x, y):
    Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ x * y

# Π­Ρ‚Π° функция Π΄Π΅Π»ΠΈΡ‚ Π΄Π²Π° числа
def div (x, y):
    Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ x / y


print ("Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ.")
print ("1.Π”ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ")
print ("2.Π’Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅")
print ("3. Π£ΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ")
print ("4.Divide")

Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ True:
    # ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Π²Π²ΠΎΠ΄ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
    choice = input ("Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π²Ρ‹Π±ΠΎΡ€ (1/2/3/4):")

    # провСряСм, являСтся Π»ΠΈ Π²Ρ‹Π±ΠΎΡ€ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ²
    Ссли Π²Ρ‹Π±ΠΎΡ€ Π² ('1', '2', '3', '4'):
        num1 = float (input ("Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число:"))
        num2 = float (input ("Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ число:"))

        Ссли Π²Ρ‹Π±ΠΎΡ€ == '1':
            print (число1, "+", число2, "=", Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ (число1, число2))

        elif choice == '2':
            print (num1, "-", num2, "=", Π²Ρ‹Ρ‡Π΅ΡΡ‚ΡŒ (num1, num2))

        elif choice == '3':
            print (num1, "*", num2, "=", multiply (num1, num2))

        elif choice == '4':
            print (число1, "/", число2, "=", Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ (число1, число2))
        
        # провСряСм, Ρ…ΠΎΡ‡Π΅Ρ‚ Π»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ расчСт
        # ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» while, Ссли ΠΎΡ‚Π²Π΅Ρ‚ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ
        next_calculation = input (Β«Π”Π°Π²Π°ΠΉΡ‚Π΅ сдСлаСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ расчСт? (Π΄Π° / Π½Π΅Ρ‚):Β»)
        Ссли next_calculation == "Π½Π΅Ρ‚":
          ΠΏΠ΅Ρ€Π΅Ρ€Ρ‹Π²
    
    Π΅Ρ‰Π΅:
        print («НСвСрный Π²Π²ΠΎΠ΄Β»)  

Π’Ρ‹Ρ…ΠΎΠ΄

  Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ.1. Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ
2. Π²Ρ‹Ρ‡Π΅ΡΡ‚ΡŒ
3. ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ
4. Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ
Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π²Ρ‹Π±ΠΎΡ€ (1/2/3/4): 3
Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число: 15
Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ число: 14
15,0 * 14,0 = 210,0
Π‘Π΄Π΅Π»Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ расчСт? (Π΄Π° / Π½Π΅Ρ‚): Π½Π΅Ρ‚ 
 

Π’ этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΌΡ‹ просим ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ 1, 2, 3 ΠΈ 4. Если Π·Π°Π΄Π°Π½ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π²ΠΎΠ΄, отобраТаСтся ΠΠ΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Π²ΠΎΠ΄ , ΠΈ Ρ†ΠΈΠΊΠ» продолТаСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Π½ допустимый Π²Π°Ρ€ΠΈΠ°Π½Ρ‚.

БСрутся Π΄Π²Π° числа ΠΈ if ... elif ... else Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для выполнСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π°.ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌΡ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ add () , subtract () , multiply () ΠΈ diver () ΠΎΡ†Π΅Π½ΠΈΠ²Π°ΡŽΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

HTML | ΠšΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ — GeeksforGeeks

< html >

< head >

<

15 000 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

функция dis (val)

{

Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.getElementById ("Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚"). value + = val

}

// функция, которая ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π΅Ρ‚ Ρ†ΠΈΡ„Ρ€Ρƒ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚

function resolve () {

let x = document.getElementById ("Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚"). Value

let y = eval (x)

Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.getElementById ("Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚"). value = y

}

// функция очистки дисплСя

function clr () 000

1 {

document.getElementById ("result"). Value = ""

}

скрипт >

< ΡΡ‚ΠΈΠ»ΡŒ >

.Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ {

ниТнСС полС: 10 пиксСлСй;

Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ тСкста: ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ;

ΡˆΠΈΡ€ΠΈΠ½Π°: 210 пиксСлСй;

Ρ†Π²Π΅Ρ‚: Π·Π΅Π»Π΅Π½Ρ‹ΠΉ;

Π³Ρ€Π°Π½ΠΈΡ†Π°: сплошная чСрная 2 пиксСля;

}

Π²Π²ΠΎΠ΄ [type = "button"]

{

Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚: Π·Π΅Π»Π΅Π½Ρ‹ΠΉ;

Ρ†Π²Π΅Ρ‚: Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ;

Π³Ρ€Π°Π½ΠΈΡ†Π°: сплошная чСрная 2 пиксСля;

ΡˆΠΈΡ€ΠΈΠ½Π°: 100%

}

Π²Π²ΠΎΠ΄ [Ρ‚ΠΈΠΏ = "тСкст"]

5 Ρ†Π²Π΅Ρ‚ Π±Π΅Π»Ρ‹ΠΉ;

Π³Ρ€Π°Π½ΠΈΡ†Π°: сплошная чСрная 2 пиксСля;

ΡˆΠΈΡ€ΠΈΠ½Π°: 100%

}

ΡΡ‚ΠΈΠ»ΡŒ >

000

< корпус >

< div класс = Π½Π°Π·Π²Π°Π½ΠΈΠ΅ > GeeksforGeeks 9000 9000 9000 9000 < Ρ‚Π°Π±Π»ΠΈΡ†Π° Π³Ρ€Π°Π½ΠΈΡ†Π° = "1" >

< tr >

<9000span50006 td 3 " > < Π²Ρ…ΠΎΠ΄ Ρ‚ΠΈΠΏ = 9000 6 «тСкст» id = Β«Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Β» /> td >

< Ρ‚ΠΈΠΏ = "ΠΊΠ½ΠΎΠΏΠΊΠ°" Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = "c" onclick = "clr ()" /> td > tr >

< tr >

000 000 Ρ‚ΠΈΠΏ = "ΠΊΠ½ΠΎΠΏΠΊΠ°" Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = "1" onclick = "дис ('1' ) " /> td >

< td > < Π²Π²ΠΎΠ΄ Ρ‚ΠΈΠΏ = " Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ " " ΠΊΠ½ΠΎΠΏΠΊΠ° " Β«2Β» onclick = Β«dis ('2')Β» /> td >

< td > < Ρ‚ΠΈΠΏ = Β«ΠΊΠ½ΠΎΠΏΠΊΠ°Β» Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = Β«3Β» onclick = Β«dis ('3')Β» /> td

5>

15>

< td > < Π²Ρ…ΠΎΠ΄ Ρ‚ΠΈΠΏ = "ΠΊΠ½ΠΎΠΏΠΊΠ°" Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = "/" / ') " /> td >

tr >

< tr >

> Ρ‚ΠΈΠΏ = Β«ΠΊΠ½ΠΎΠΏΠΊΠ°Β» Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = Β«4Β» onclick = Β«dis ('4')Β» /> td> 9000

< td > < Π²Ρ…ΠΎΠ΄ Ρ‚ΠΈΠΏ = Β«ΠΊΠ½ΠΎΠΏΠΊΠ°Β» Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = Β«5Β» '5') " /> td >

< td > < Π²Π²ΠΎΠ΄ Ρ‚ΠΈΠΏ = " b utton " Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = " 6 " onclick = " dis ('6') " /> td >

td > < Π²Π²ΠΎΠ΄ Ρ‚ΠΈΠΏ = "ΠΊΠ½ΠΎΠΏΠΊΠ°" Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = "-" onclick = "dis ('-')" td >

tr >

< tr >

Π²Π²ΠΎΠ΄ Ρ‚ΠΈΠΏ = "ΠΊΠ½ΠΎΠΏΠΊΠ°" Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = "7" onclick = "dis ('7')" /> >

< td > < Π²Π²ΠΎΠ΄ Ρ‚ΠΈΠΏ = Β«ΠΊΠ½ΠΎΠΏΠΊΠ°Β» Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = Β«8Β» ') " /> td >

< td > < Π²Π²ΠΎΠ΄ Ρ‚ΠΈΠΏ = " Β«ΠΊΠ½ΠΎΠΏΠΊΠ°Β» Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ "9" onclick = "dis ('9')" /> td >

< td 0005> < 0005> < Ρ‚ΠΈΠΏ = Β«ΠΊΠ½ΠΎΠΏΠΊΠ°Β» Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = Β«+Β» onclick = Β«dis ('+')Β» /> td>

9 0006 tr >

< tr >

< td > < 0005 Ρ‚ΠΈΠΏ 0005 Π²Π²ΠΎΠ΄ ΠΊΠ½ΠΎΠΏΠΊΠ° Π²Π²ΠΎΠ΄Π° Β« Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = Β»." onclick = " dis ('.') " /> td >

< td 000> < Ρ‚ΠΈΠΏ Π²Π²ΠΎΠ΄Π°5 = Β«ΠΊΠ½ΠΎΠΏΠΊΠ°Β» Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = Β«0Β» onclick = Β«dis ('0')Β» /> td >

< td > < Π²Π²ΠΎΠ΄ Ρ‚ΠΈΠΏ = "ΠΊΠ½ΠΎΠΏΠΊΠ°" Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = "=" 0005 ) " /> td >

< td > < input type = " button value " " button value " " button value " 0006 "*" onclick = "dis ('*')" /> td >

tr

> table >

body >

html > Windows Calculator: A simple / Windows Calculator: всС ΠΆΠ΅ microsoft ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€, поставляСмый с Windows

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Windows Calculator - это соврСмСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Windows, написанноС Π½Π° C ++ ΠΈ C #, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ поставляСтся с прСдустановлСнной Windows.ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ прСдоставляСт стандартныС, Π½Π°ΡƒΡ‡Π½Ρ‹Π΅ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌΠΈ измСрСния ΠΈ Π²Π°Π»ΡŽΡ‚Π°ΠΌΠΈ.

ΠšΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€

рСгулярно поставляСтся с Π½ΠΎΠ²Ρ‹ΠΌΠΈ функциями ΠΈ исправлСниями ошибок. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ ΠšΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π° Π² Microsoft Store.

Π₯арактСристики

  • Бтандартная функция ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π°, которая ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ основныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ сразу послС ΠΈΡ… Π²Π²ΠΎΠ΄Π°.
  • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π°ΡƒΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π°

  • , которая ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² соотвСтствии с порядком выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.
  • ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€

  • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π°, которая ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ стандартныС матСматичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±Ρ‰ΠΈΠΌΠΈ Π±Π°Π·Π°ΠΌΠΈ.
  • Ѐункция вычислСния Π΄Π°Ρ‚Ρ‹, которая ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Π΄Π°Ρ‚Π°ΠΌΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ±Π°Π²Π»ΡΡ‚ΡŒ / Π²Ρ‹Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π³ΠΎΠ΄Ρ‹, мСсяцы ΠΈ / ΠΈΠ»ΠΈ Π΄Π½ΠΈ ΠΊ / ΠΈΠ· Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π΄Π°Ρ‚Ρ‹ Π²Π²ΠΎΠ΄Π°.
  • Π˜ΡΡ‚ΠΎΡ€ΠΈΡ вычислСний ΠΈ возмоТности памяти.
  • ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌΠΈ измСрСния.
  • ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΡ Π²Π°Π»ΡŽΡ‚Ρ‹ Π½Π° основС Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΈΠ· Bing.
  • БСсконСчная Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ для Π±Π°Π·ΠΎΠ²Ρ‹Ρ…
    арифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (слоТСниС, Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π΄Π΅Π»Π΅Π½ΠΈΠ΅), Ρ‡Ρ‚ΠΎΠ±Ρ‹ вычислСния
    Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ тСряйтС точности.

Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ трСбования:

  • На вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ установлСна ​​Windows 10 вСрсии 1803 ΠΈΠ»ΠΈ Π½ΠΎΠ²Π΅Π΅.

  • УстановитС послСднюю Π²Π΅Ρ€ΡΠΈΡŽ Visual Studio (достаточно бСсплатной вСрсии ΠΎΡ‚ сообщСства).

    • УстановитС Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Β«Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ WindowsΒ».
    • УстановитС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Β«Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Windows C ++Β».
    • УстановитС послСднюю Π²Π΅Ρ€ΡΠΈΡŽ Windows 10 SDK.
  • УстановитС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ XAML Styler Visual Studio.

  • ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄:

      git clone https://github.com/Microsoft/calculator.git
      
  • ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ src \ Calculator.sln Π² Visual Studio, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Β«ΠšΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Β».

  • ΠžΠ±Ρ‰Π΅Π΅ описаниС Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Calculator см. На ApplicationArchitecture.md.

  • Для запуска тСстов ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ
    Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ прилоТСния Windows (WinAppDriver)
    установлСно.

БодСйствиС

Π₯ΠΎΡ‚ΠΈΡ‚Π΅ внСсти свой Π²ΠΊΠ»Π°Π΄? Команда поощряСт ΠΎΡ‚Π·Ρ‹Π²Ρ‹ ΠΈ Π²ΠΊΠ»Π°Π΄ сообщСства. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, слСдуйтС нашим ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ участия.

Если ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΎΡ‚ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ ΠΎΡ‚Ρ‡Π΅Ρ‚ Π² Π¦Π΅Π½Ρ‚Ρ€ ΠΎΡ‚Π·Ρ‹Π²ΠΎΠ².ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ привСтствуСм вопросы, ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Π½Π° GitHub.

ДороТная ΠΊΠ°Ρ€Ρ‚Π°

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠ»Π°Π½Π°Ρ… ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅ выпуска Windows Calculator см. Π’ ПланС развития Windows Calculator.

ГрафичСский Ρ€Π΅ΠΆΠΈΠΌ

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

ДиагностичСскиС Π΄Π°Π½Π½Ρ‹Π΅

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ собираСт Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ± использовании ΠΈ отправляСт ΠΈΡ… Π² Microsoft, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ наши ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹ ΠΈ услуги.
ΠŸΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅ нашС заявлСниС ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС.
ДиагностичСскиС Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… сборках ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ SEND_DIAGNOSTICS
ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ„Π»Π°Π³.

ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€ Π²Π°Π»ΡŽΡ‚

ΠšΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€

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

Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ… бСзопасности

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Π‘Π•Π—ΠžΠŸΠΠ‘ΠΠžΠ‘Π’Π˜.ΠΌΠΊΡ€.

ЛицСнзия

АвторскиС ΠΏΡ€Π°Π²Π° (c) ΠšΠΎΡ€ΠΏΠΎΡ€Π°Ρ†ΠΈΡ Microsoft. ВсС ΠΏΡ€Π°Π²Π° Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Ρ‹.

По Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ MIT.

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π° HTML с нуля, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ JavaScript

Π­Ρ‚ΠΎ эпичСская ΡΡ‚Π°Ρ‚ΡŒΡ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ с нуля. ΠœΡ‹ сосрСдоточимся Π½Π° JavaScript, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ: ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ создании ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π°, ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΈ, Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅, ΠΊΠ°ΠΊ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ваш ΠΊΠΎΠ΄.

К ΠΊΠΎΠ½Ρ†Ρƒ ΡΡ‚Π°Ρ‚ΡŒΠΈ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ iPhone (Π±Π΅Π· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ +/- ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΎΠ²).

ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ трСбования

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΡƒΡ€ΠΎΠΊ, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π²Π»Π°Π΄Π΅Π΅Ρ‚Π΅ JavaScript. Как ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

  1. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ If / else
  2. Π¦ΠΈΠΊΠ»Ρ‹ For
  3. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ JavaScript
  4. Π‘Ρ‚Ρ€Π΅Π»ΠΎΡ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
  5. && ΠΈ || ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹
  6. Как ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ тСкст с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойства textContent
  7. Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚Π΅Π»ΠΈ событий с шаблоном дСлСгирования событий

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ Π½Π°Ρ‡Π°Ρ‚ΡŒ

Π― Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π²Π°ΠΌ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΡƒΡ€ΠΎΠΊ.Π­Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ.

Π’Π΅Ρ€Π½ΠΈΡ‚Π΅ΡΡŒ ΠΊ этому ΡƒΡ€ΠΎΠΊΡƒ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π»ΠΈ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ часа (Π½Π΅Π²Π°ΠΆΠ½ΠΎ, удастся Π»ΠΈ Π²Ρ‹ ΠΈΠ»ΠΈ Π½Π΅Ρ‚. Когда Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ, Π²Ρ‹ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅, ΠΈ это ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΡƒΡΠ²ΠΎΠΈΡ‚ΡŒ ΡƒΡ€ΠΎΠΊ Π² Π΄Π²Π° Ρ€Π°Π·Π° быстрСС).

Π˜Ρ‚Π°ΠΊ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°Ρ‡Π½Π΅ΠΌ с понимания Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π°

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€.

ΠšΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ состоит ΠΈΠ· Π΄Π²ΡƒΡ… частСй: дисплСя ΠΈ клавиш.

  
0
…

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ CSS Grid для создания ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ располоТСны Π² Π²ΠΈΠ΄Π΅ сСтки. Π­Ρ‚ΠΎ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ сдСлано Π·Π° вас Π² стартовом Ρ„Π°ΠΉΠ»Π΅. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ стартовый Ρ„Π°ΠΉΠ» Π½Π° этой Ρ€ΡƒΡ‡ΠΊΠ΅.

  .calculator__keys {
  дисплСй: сСтка;
  / * Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ CSS * /
}  

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π½Π°ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, дСсятичныС, чистыС ΠΈ Ρ€Π°Π²Π½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ, ΠΌΡ‹ собираСмся ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ data-action, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ описываСт ΠΈΡ… дСйствиС.

  

ΠŸΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΠ΅ наТатия клавиш

Когда Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ достаСт ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ ΠΏΡΡ‚ΡŒ Π²Π΅Ρ‰Π΅ΠΉ. Они ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°ΠΆΠ°Ρ‚ΡŒ:

  1. цифровая клавиша (0–9)
  2. клавиша ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° (+, -, Γ—, Γ·)
  3. дСсятичная клавиша
  4. клавиша равСнства
  5. клавиша очистки

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

  const Calculator = document.querySelector (Β«. CalculatorΒ»)
const keys = Calculator.querySelector (Β«. Calculator__keysΒ»)

keys.addEventListener (β€˜click’, e => {
 if (e.target.matches (β€˜button’)) {
   // Π‘Π΄Π΅Π»Π°ΠΉ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ
 }
})  

Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ data-action для опрСдСлСния Ρ‚ΠΈΠΏΠ° Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ клавиши.

  const key = e.Ρ†Π΅Π»ΡŒ
const action = key.dataset.action  

Если ΠΊΠ»ΡŽΡ‡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° data-action , это Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ ΠΊΠ»ΡŽΡ‡.

  Ссли (! ДСйствиС) {
  console.log ('Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ ΠΊΠ»ΡŽΡ‡!')
}  

Если ΠΊΠ»ΡŽΡ‡ ΠΈΠΌΠ΅Π΅Ρ‚ дСйствиС Π΄Π°Π½Π½Ρ‹Ρ… , Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ , Π²Ρ‹Ρ‡Π΅ΡΡ‚ΡŒ , ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ , ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠ»ΡŽΡ‡ являСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ.

  Ссли (
  дСйствиС === 'Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ' ||
  дСйствиС === 'Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅' ||
  дСйствиС === 'ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ' ||
  дСйствиС === 'Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ'
) {
  консоль.ΠΆΡƒΡ€Π½Π°Π» ('ΠΊΠ»ΡŽΡ‡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°!')
}  

Если дСйствиС Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π° Ρ€Π°Π²Π½ΠΎ decimal , ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ» дСсятичный ΠΊΠ»ΡŽΡ‡.

БлСдуя Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΠΌΡ‹ΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ процСссу, Ссли ΠΊΠ»ΡŽΡ‡ data-action Ρ€Π°Π²Π΅Π½ clear , ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠ°Π» ΠΊΠ½ΠΎΠΏΠΊΡƒ очистки (Ρ‚Π°, которая Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ AC). Если ΠΊΠ»ΡŽΡ‡ data-action Ρ€Π°Π²Π΅Π½ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ , ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠ°Π» Π½Π° ΠΊΠ»Π°Π²ΠΈΡˆΡƒ равСнства.

  if (action === 'decimal') {
  console.log ('дСсятичный ΠΊΠ»ΡŽΡ‡!')
}

if (action === 'clear') {
  консоль.ΠΆΡƒΡ€Π½Π°Π» ('ΠΊΠ»ΡŽΡ‡ очистки!')
}

if (action === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ') {
  console.log ('Ρ€Π°Π²Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡!')
}  

На этом этапС Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚ console.log ΠΎΡ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ клавиши ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π°.

Π‘Ρ‚Ρ€ΠΎΠΈΠΌ счастливый ΠΏΡƒΡ‚ΡŒ

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, Ρ‡Ρ‚ΠΎ Π±Ρ‹ сдСлал срСдний Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ, взяв Π² Ρ€ΡƒΠΊΠΈ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€. Π­Ρ‚ΠΎ Β«Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ сдСлал Π±Ρ‹ срСдний Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΒ», называСтся счастливым ΠΏΡƒΡ‚Π΅ΠΌ .

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° ΠœΡΡ€ΠΈ.

Когда ΠœΡΡ€ΠΈ Π±Π΅Ρ€Π΅Ρ‚ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€, ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ ΠΈΠ· этих клавиш:

  1. цифровая клавиша (0–9)
  2. клавиша ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° (+, -, Γ—, Γ·)
  3. дСсятичная клавиша
  4. Ρ€Π°Π²Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡
  5. ΠΊΠ»ΡŽΡ‡ очистки

РассмотрСниС сразу пяти Ρ‚ΠΈΠΏΠΎΠ² ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ слоТным, поэтому Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Π΅Π³ΠΎ шаг Π·Π° шагом.

Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ

На этом этапС, Ссли ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ 0 (число ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ), Ρ†Π΅Π»Π΅Π²ΠΎΠ΅ число Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ноль.

Если ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ число, Ρ†Π΅Π»Π΅Π²ΠΎΠ΅ число Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΊ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠΌΡƒ числу.

Π—Π΄Π΅ΡΡŒ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ Π΄Π²Π΅ Π²Π΅Ρ‰ΠΈ:

  1. НомСр Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ клавиши
  2. Π’Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€

Π­Ρ‚ΠΈ Π΄Π²Π° значСния ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· свойство textContent Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ клавиши ΠΈ .Calculator__display соотвСтствСнно.

  const display = document.querySelector ('. Calculator__display')

keys.addEventListener ('ΠΊΠ»ΠΈΠΊ', e => {
  if (e.target.matches ('button')) {
    константный ΠΊΠ»ΡŽΡ‡ = e.target
    const дСйствиС = key.dataset.action
    const keyContent = key.textContent
    const displayNum = display.textContent
    // ...
  }
})  

Если ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ 0, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ дисплСй ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π° Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ клавишСй. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, Π·Π°ΠΌΠ΅Π½ΠΈΠ² свойство textContent Π² ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ.

  Ссли (! ДСйствиС) {
  if (displayNum === '0') {
    display.textContent = keyContent
  }
}  

Если ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ число, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½Π°ΠΆΠ°Ρ‚ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ ΠΊ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠΌΡƒ числу. Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ число, ΠΌΡ‹ объСдиняСм строку.

  Ссли (! ДСйствиС) {
  if (displayNum === '0') {
    display.textContent = keyContent
  } Π΅Ρ‰Π΅ {
    display.textContent = displayNum + keyContent
  }
}  

На этом этапС ΠœΡΡ€ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ ΠΈΠ· этих клавиш:

  1. ДСсятичный ΠΊΠ»ΡŽΡ‡
  2. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΡΠΊΠΈΠΉ ΠΊΠ»ΡŽΡ‡

Допустим, ΠœΡΡ€ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ дСсятичный ΠΊΠ»ΡŽΡ‡.

Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ Π΄Π΅ΡΡΡ‚ΠΈΡ‡Π½ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ

Когда ΠœΡΡ€ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ Π΄Π΅ΡΡΡ‚ΠΈΡ‡Π½ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ, Π½Π° дисплСС Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ дСсятичноС число. Если ΠœΡΡ€ΠΈ Π½Π°Π±Π΅Ρ€Π΅Ρ‚ любоС число послС наТатия дСсятичной клавиши, это число Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ Π½Π° дисплСС.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ этот эффСкт, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ . Π½Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€.

  if (action === 'decimal') {
  display.textContent = displayNum + '.'
}  

Π”Π°Π»Π΅Π΅, допустим, ΠœΡΡ€ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ свои вычислСния, наТимая ΠΊΠ»Π°Π²ΠΈΡˆΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°.

Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°

Если ΠœΡΡ€ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π΄Π΅Π»Π΅Π½, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠœΡΡ€ΠΈ Π·Π½Π°Π»Π°, Ρ‡Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π°ΠΊΡ‚ΠΈΠ²Π΅Π½.

Для этого ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊ клавишС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° класс - Π½Π°ΠΆΠ°Ρ‚Ρ‹ΠΉ .

  Ссли (
  дСйствиС === 'Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ' ||
  дСйствиС === 'Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅' ||
  дСйствиС === 'ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ' ||
  дСйствиС === 'Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ'
) {
  key.classList.add ('Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚')
}  

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠœΡΡ€ΠΈ Π½Π°ΠΆΠΌΠ΅Ρ‚ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, ΠΎΠ½Π° Π½Π°ΠΆΠΌΠ΅Ρ‚ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ.

Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ послС клавиши ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°

Когда ΠœΡΡ€ΠΈ снова Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ, ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ дисплСй Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΌΠ΅Π½Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ. Клавиша ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· своСго Π½Π°ΠΆΠ°Ρ‚ΠΎΠ³ΠΎ состояния.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π°ΠΆΠ°Ρ‚ΠΎΠ΅ состояниС, ΠΌΡ‹ удаляСм класс is-Π½Π°ΠΆΠ°Ρ‚Ρ‹ΠΉ ΠΈΠ· всСх клавиш Ρ‡Π΅Ρ€Π΅Π· Ρ†ΠΈΠΊΠ» forEach :

  keys.addEventListener ('click', e => {
  if (e.target.matches ('button')) {
    константный ΠΊΠ»ΡŽΡ‡ = e.target
    //...
    
    // УдаляСм класс .is-depressed со всСх клавиш
    Array.from (key.parentNode.children)
      .forEach (k => k.classList.remove ('находится Π² дСпрСссии'))
  }
})  

Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ клавиши. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ это сдСлаСм, Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ способ ΡƒΠ·Π½Π°Ρ‚ΡŒ, являСтся Π»ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΊΠ»ΡŽΡ‡ клавишСй ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°.

Один ΠΈΠ· способов ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это - ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ настраиваСмый Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚. НазовСм этот настраиваСмый Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ data-previous-key-type .

  ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ констант = Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.querySelector ('. ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€')
// ...

keys.addEventListener ('ΠΊΠ»ΠΈΠΊ', e => {
  if (e.target.matches ('button')) {
    // ...
    
    Ссли (
      дСйствиС === 'Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ' ||
      дСйствиС === 'Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅' ||
      дСйствиС === 'ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ' ||
      дСйствиС === 'Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ'
    ) {
      key.classList.add ('Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚')
      // Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ настраиваСмый Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚
      Calculator.dataset.previousKeyType = 'ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€'
    }
  }
})  

Если previousKeyType являСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ΅ число Π½Π° Π½Π°ΠΆΠ°Ρ‚ΠΎΠ΅.

  const previousKeyType = Calculator.dataset.previousKeyType

if (! action) {
  if (displayNum === '0' || previousKeyType === 'operator') {
    display.textContent = keyContent
  } Π΅Ρ‰Π΅ {
    display.textContent = displayNum + keyContent
  }
}  

Π”Π°Π»Π΅Π΅, допустим, ΠœΡΡ€ΠΈ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ свои вычислСния, Π½Π°ΠΆΠ°Π² ΠΊΠ»Π°Π²ΠΈΡˆΡƒ равСнства.

Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ равСнства

Когда ΠœΡΡ€ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ равСнства, ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ зависит ΠΎΡ‚ Ρ‚Ρ€Π΅Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ:

  1. ΠŸΠ΅Ρ€Π²ΠΎΠ΅ число , Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π² ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€
  2. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€
  3. Π’Ρ‚ΠΎΡ€ΠΎΠ΅ число вводится Π² ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€

ПослС вычислСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π°ΠΌ извСстно Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ число , Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ΅ число.

  if (action === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ') {
  const secondValue = displayNum
  // ...
}  

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число , Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π°, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π΅Π³ΠΎ очистим. Один ΠΈΠ· способов ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ это ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число - Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² настраиваСмый Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° , ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Ρƒ ΠΆΠ΅ Ρ‚Π΅Ρ…Π½ΠΈΠΊΡƒ.

  Ссли (
  дСйствиС === 'Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ' ||
  дСйствиС === 'Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅' ||
  дСйствиС === 'ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ' ||
  дСйствиС === 'Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ'
) {
  // ...
  Calculator.dataset.firstValue = displayNum
  Calculator.dataset.operator = дСйствиС
}  

Когда Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ Π½ΡƒΠΆΠ½Ρ‹Ρ… Π½Π°ΠΌ значСния, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ расчСт. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ΄ выглядСл ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

  if (action === 'calculate') {
  const firstValue = Calculator.dataset.firstValue
  ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ const = ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€.dataset.operator
  const secondValue = displayNum
  
  display.textContent = Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ (firstValue, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, secondValue)
}  

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Calculate . Он Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ‚Ρ€ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°: ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ число.

  const Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ = (n1, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, n2) => {
  // ВыполняСм расчСт ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ вычислСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
}  

Если ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ добавляСт , ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ значСния вмСстС.Если ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ , Π²Ρ‹Ρ‡Π΅ΡΡ‚ΡŒ , ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π²Ρ‹Ρ‡Π΅ΡΡ‚ΡŒ значСния ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

  const Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ = (n1, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, n2) => {
  ΠΏΡƒΡΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = ''
  
  if (operator === 'Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ') {
    Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = n1 + n2
  } else if (operator === 'subtract') {
    Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = n1 - n2
  } else if (operator === 'multiply') {
    Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = n1 * n2
  } ΠΈΠ½Π°Ρ‡Π΅, Ссли (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ === 'Π΄Π΅Π»ΠΈΡ‚ΡŒ') {
    Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = n1 / n2
  }
  
  Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚
}  

ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ firstValue ΠΈ secondValue Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΡΠ²Π»ΡΡŽΡ‚ΡΡ строками.Если Π²Ρ‹ слоТитС строки вмСстС, Π²Ρ‹ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ ΠΈΡ… ( 1 + 1 = 11 ).

Π˜Ρ‚Π°ΠΊ, ΠΏΠ΅Ρ€Π΅Π΄ вычислСниСм Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ строки Π² числа. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π²ΡƒΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ parseInt ΠΈ parseFloat .

  • parseInt ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ строку Π² Ρ†Π΅Π»ΠΎΠ΅ число .
  • parseFloat ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ строку Π² число с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой (это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ число с дСсятичными Π·Π½Π°ΠΊΠ°ΠΌΠΈ).

Для ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π° Π½Π°ΠΌ понадобится ΠΏΠΎΠΏΠ»Π°Π²ΠΎΠΊ.

  const Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ = (n1, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, n2) => {
  ΠΏΡƒΡΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = ''
  
  if (operator === 'Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ') {
    Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = parseFloat (n1) + parseFloat (n2)
  } else if (operator === 'subtract') {
    Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = parseFloat (n1) - parseFloat (n2)
  } else if (operator === 'multiply') {
    Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = parseFloat (n1) * parseFloat (n2)
  } ΠΈΠ½Π°Ρ‡Π΅, Ссли (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ === 'Π΄Π΅Π»ΠΈΡ‚ΡŒ') {
    Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = parseFloat (n1) / parseFloat (n2)
  }
  
  Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚
}  

Π’ΠΎΡ‚ ΠΈ всС для счастливого ΠΏΡƒΡ‚ΠΈ!

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ исходный ΠΊΠΎΠ΄ счастливого ΠΏΡƒΡ‚ΠΈ ΠΏΠΎ этой ссылкС (ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠ· ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ свой адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ Π² ΠΏΠΎΠ»Π΅, ΠΈ я ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡŽ исходныС ΠΊΠΎΠ΄Ρ‹ прямо Π² ваш ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΉ ящик).

ΠšΡ€Π°ΠΉΠ½ΠΈΠ΅ ящики

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

Π’ΠΈΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ эти клавиши Π² любом порядкС:

  1. Цифровая клавиша (0–9)
  2. Клавиша ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° (+, -, Γ—, Γ·)
  3. ДСсятичная клавиша
  4. Клавиша равСнства
  5. ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ key

Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли Π’ΠΈΠΌ Π½Π°ΠΆΠΌΠ΅Ρ‚ Π΄Π΅ΡΡΡ‚ΠΈΡ‡Π½ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ

Если Π’ΠΈΠΌ Π½Π°ΠΆΠΌΠ΅Ρ‚ Π΄Π΅ΡΡΡ‚ΠΈΡ‡Π½ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ, ΠΊΠΎΠ³Π΄Π° Π½Π° дисплСС ΡƒΠΆΠ΅ отобраТаСтся дСсятичная Ρ‚ΠΎΡ‡ΠΊΠ°, Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ.

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ΅ число содСрТит . с Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ .

Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΡ‡Π½Ρ‹Ρ… строк для Π΄Π°Π½Π½ΠΎΠ³ΠΎ совпадСния. Если строка Π½Π°ΠΉΠ΄Π΅Π½Π°, ΠΎΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ true ; Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС возвращаСтся false .

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ : Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ рСгистра.

  // ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹.
const string = 'Π“Π°ΠΌΠ±ΡƒΡ€Π³Π΅Ρ€Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ вкусныС!'
const hasExclaimation = строка.includes ('!')
консоль.log (hasExclaimation) // true  

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Π΅ΡΡ‚ΡŒ Π»ΠΈ Π² строкС Ρ‚ΠΎΡ‡ΠΊΠ°, ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

  // НичСго Π½Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Π² строкС Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠ°
if (! DisplayNum.includes ('.')) {
  display.textContent = displayNum + '.'
}  

Π”Π°Π»Π΅Π΅, Ссли Π’ΠΈΠΌ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ Π΄Π΅ΡΡΡ‚ΠΈΡ‡Π½ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ послС наТатия клавиши ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, Π½Π° дисплСС Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ 0. .

Π—Π΄Π΅ΡΡŒ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, являСтся Π»ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΊΠ»ΡŽΡ‡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ это ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ² настраиваСмый Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ data-previous-key-type , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ установили Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΡƒΡ€ΠΎΠΊΠ΅.

data-previous-key-type Π΅Ρ‰Π΅ Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, являСтся Π»ΠΈ previousKeyType ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ previousKeyType для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ клавиши.

  Ссли (! ДСйствиС) {
  // ...
  Calculator.dataset.previousKey = 'число'
}

if (action === 'decimal') {
  // ...
  Calculator.dataset.previousKey = 'дСсятичный'
}

if (action === 'clear') {
  // ...
  Calculator.dataset.previousKeyType = 'ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ'
}

if (action === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ') {
 //...
  Calculator.dataset.previousKeyType = 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ'
}  

Когда Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ previousKeyType , ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, являСтся Π»ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΊΠ»ΡŽΡ‡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ.

  if (action === 'decimal') {
  if (! DisplayNum.includes ('.')) {
    display.textContent = displayNum + '.'
  } else if (previousKeyType === 'operator') {
    display.textContent = '0'.
  }
  
Calculator.dataset.previousKeyType = 'дСсятичный'
}  

Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли Π’ΠΈΠΌ Π½Π°ΠΆΠΌΠ΅Ρ‚ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°

Если Π’ΠΈΠΌ сначала Π½Π°ΠΆΠΌΠ΅Ρ‚ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, клавиша ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°Π³ΠΎΡ€Π΅Ρ‚ΡŒΡΡ.(ΠœΡ‹ ΡƒΠΆΠ΅ рассмотрСли этот ΠΊΡ€Π°ΠΉΠ½ΠΈΠΉ случай, Π½ΠΎ ΠΊΠ°ΠΊ? ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ, смоТСтС Π»ΠΈ Π²Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ сдСлали).

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ, Ссли Π’ΠΈΠΌ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° нСсколько Ρ€Π°Π·. (ΠœΡ‹ ΡƒΠΆΠ΅ рассмотрСли этот ΠΊΡ€Π°ΠΉΠ½ΠΈΠΉ случай).

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: , Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΠΉ UX, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ постоянно наТимаСтся, с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ измСнСниями CSS. ΠœΡ‹ Π½Π΅ Π΄Π΅Π»Π°Π»ΠΈ этого здСсь, Π½ΠΎ посмотрим, смоТСтС Π»ΠΈ Π²Ρ‹ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ это ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π² качСствС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ кодирования.

Π’-Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, Ссли Π’ΠΈΠΌ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° послС наТатия ΠΏΠ΅Ρ€Π²ΠΎΠΉ клавиши ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, пСрвая клавиша ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΏΡƒΡ‰Π΅Π½Π°.Π—Π°Ρ‚Π΅ΠΌ слСдуСт Π½Π°ΠΆΠ°Ρ‚ΡŒ Π²Ρ‚ΠΎΡ€ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°. (ΠœΡ‹ рассмотрСли ΠΈ этот ΠΊΡ€Π°ΠΉΠ½ΠΈΠΉ случай - Π½ΠΎ ΠΊΠ°ΠΊ?).

Π’-Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚Ρ‹Ρ…, Ссли Π’ΠΈΠΌ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ число, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, число ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π² этом порядкС, Π½Π° дисплСС Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ вычислСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Calculate , ΠΊΠΎΠ³Π΄Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ firstValue , operator ΠΈ secondValue .

  Ссли (
  дСйствиС === 'Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ' ||
  дСйствиС === 'Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅' ||
  дСйствиС === 'ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ' ||
  дСйствиС === 'Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ'
) {
  const firstValue = ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€.dataset.firstValue
  ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ const = Calculator.dataset.operator
  const secondValue = displayNum
  
// ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: достаточно ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ firstValue ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ secondValue всСгда сущСствуСт
  if (firstValue && ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€) {
    display.textContent = Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ (firstValue, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, secondValue)
  }
  
key.classList.add ('Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚')
  Calculator.dataset.previousKeyType = 'ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€'
  Calculator.dataset.firstValue = displayNum
  Calculator.dataset.operator = дСйствиС
}  

Π₯отя ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° клавиша ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° наТимаСтся Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π·, ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π²Π²Π΅Π»ΠΈ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π½Π° этом этапС - Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‰Π΅Π»Ρ‡ΠΊΠΈ ΠΏΠΎ клавишС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° этого Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Π½Π΅ выполнял вычислСния ΠΏΡ€ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… наТатиях клавиши ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, являСтся Π»ΠΈ previousKeyType ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ. Если это Ρ‚Π°ΠΊ, ΠΌΡ‹ Π½Π΅ выполняСм расчСт.

  Ссли (
  firstValue &&
  ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ &&
  previousKeyType! == 'ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€'
) {
  display.textContent = Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ (firstValue, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, secondValue)
}  

Π’-пятых, послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ клавиша ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° вычисляСт число, Ссли Π’ΠΈΠΌ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ Π½Π° число, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ вычислСниС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: 8 - 1 = 7 , 7 - 2 = 5 , 5 - 3 = 2 .

Π’ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ наш ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ вычислСния. Π’Ρ‚ΠΎΡ€ΠΎΠ΅ рассчитанноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅Π²Π΅Ρ€Π½ΠΎ. Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ: 99 - 1 = 98 , 98 - 1 = 0 .

Π’Ρ‚ΠΎΡ€ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ вычислСно Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ»ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ значСния Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ calculate . Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим нСсколько ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ наш ΠΊΠΎΠ΄.

ПониманиС нашСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ вычислСния

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ Π½Π° число 99. На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π² ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π΅ Π΅Ρ‰Π΅ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ зарСгистрировано.

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, допустим, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ вычитания. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Ρ‰Π΅Π»ΠΊΠ°ΡŽΡ‚ ΠΏΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ вычитания, ΠΌΡ‹ устанавливаСм firstValue Π½Π° 99. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ устанавливаСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π½Π° Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅.

Π’-Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, допустим, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ - Π½Π° этот Ρ€Π°Π· это 1. На этом этапС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ΅ число обновляСтся Π΄ΠΎ 1, Π½ΠΎ наши firstValue , operator ΠΈ secondValue ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ.

Π’-Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚Ρ‹Ρ…, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ снова Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΡƒ вычитания. Π‘Ρ€Π°Π·Ρƒ послС наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ Β«Π’Ρ‹Ρ‡Π΅ΡΡ‚ΡŒΒ», ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, ΠΌΡ‹ устанавливаСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ secondValue Π² качСствС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ числа.

Π’-пятых, ΠΌΡ‹ выполняСм расчСт с firstValue 99, operator subtract ΠΈ secondValue 1. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ - 98.

ПослС вычислСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΌΡ‹ устанавливаСм ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ устанавливаСм operator Π½Π° Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΈ firstValue Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ΅ число.

Π§Ρ‚ΠΎ ΠΆ, это уТасно Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ! Если ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ вычислСниС, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ firstValue вычислСнным Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ.

  const firstValue = Calculator.dataset.firstValue
ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ const = Calculator.dataset.operator
const secondValue = displayNum

Ссли (
  firstValue &&
  ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ &&
  previousKeyType! == 'ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€'
) {
  const calcValue = Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ (firstValue, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, secondValue)
  display.textContent = calcValue
  
// ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ вычислСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ firstValue
  Calculator.dataset.firstValue = calcValue
} Π΅Ρ‰Π΅ {
  // Если вычислСний Π½Π΅Ρ‚, установитС displayNum Π² качСствС firstValue
  ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€.dataset.firstValue = displayNum
}

key.classList.add ('Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚')
Calculator.dataset.previousKeyType = 'ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€'
Calculator.dataset.operator = action  

Π‘ этим исправлСниСм ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ вычислСния, выполняСмыС клавишами ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ.

Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли Π’ΠΈΠΌ Π½Π°ΠΆΠΌΠ΅Ρ‚ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ равСнства?

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ, Ссли Π’ΠΈΠΌ Π½Π°ΠΆΠΌΠ΅Ρ‚ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ равСнства ΠΏΠ΅Ρ€Π΅Π΄ любой клавишСй ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°.

ΠœΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ клавиши ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π΅Ρ‰Π΅ Π½Π΅ наТимались, Ссли firstValue Π½Π΅ установлСн Π½Π° число.ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ это Π·Π½Π°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ вычислСниС Ρ€Π°Π²Π½Ρ‹Ρ….

  if (action === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ') {
  const firstValue = Calculator.dataset.firstValue
  ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ const = Calculator.dataset.operator
  const secondValue = displayNum
  
if (firstValue) {
    display.textContent = Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ (firstValue, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, secondValue)
  }
  
Calculator.dataset.previousKeyType = 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ'
}  

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Ссли Π’ΠΈΠΌ Π½Π°Π±ΠΈΡ€Π°Π΅Ρ‚ число, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт равСнство, ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹:

  1. 2 + = -> 2 + 2 = 4
  2. 2 - = -> 2 - 2 = 0
  3. 2 Γ— = -> 2 Γ— 2 = 4
  4. 2 Γ· = -> 2 Γ· 2 = 1

ср. ΡƒΠΆΠ΅ приняли Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ этот странный Π²Π²ΠΎΠ΄.Π’Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅ ΠΏΠΎΡ‡Π΅ΠΌΡƒ? πŸ™‚

Π’-Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, Ссли Π’ΠΈΠΌ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ равСнства послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ вычислСния, Π΄Ρ€ΡƒΠ³ΠΎΠ΅ вычислСниС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ снова. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ вычислСниС:

  1. Π’ΠΈΠΌ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ клавиши 5–1
  2. Π’ΠΈΠΌ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎΠ΅ количСство Ρ€Π°Π·. РасчСтноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: 5 - 1 = 4
  3. Π’ΠΈΠΌ совпадСний. РасчСтноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: 4 - 1 = 3
  4. Π’ΠΈΠΌ совпадСний. РасчСтноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: 3 - 1 = 2
  5. Π’ΠΈΠΌ совпадСний. РасчСтноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: 2 - 1 = 1
  6. Π’ΠΈΠΌ совпадСний.РасчСтноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: 1 - 1 = 0

К соТалСнию, наш ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Π½Π΅ Π΄Π°Π΅Ρ‚ Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… расчСтов. Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ наш ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€:

  1. Π’ΠΈΠΌ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ клавиши 5–1
  2. Π’ΠΈΠΌ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎΠ΅ количСство Ρ€Π°Π·. РасчСтноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: 4
  3. Π’ΠΈΠΌ совпадСний. РасчСтноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: 1

Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ расчСтов

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, допустим, наш ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ 5. На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π² ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π΅ Π΅Ρ‰Π΅ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ зарСгистрировано.

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, допустим, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ вычитания.ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Ρ‰Π΅Π»ΠΊΠ°ΡŽΡ‚ ΠΏΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ вычитания, ΠΌΡ‹ устанавливаСм firstValue Ρ€Π°Π²Π½Ρ‹ΠΌ 5. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ устанавливаСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π½Π° Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅.

Π’-Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Допустим, это 1. На этом этапС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ΅ число обновляСтся Π΄ΠΎ 1, Π½ΠΎ наши firstValue , operator ΠΈ secondValue ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ.

Π’-Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚Ρ‹Ρ…, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ равСнства. Π‘Ρ€Π°Π·Ρƒ послС наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ Ρ€Π°Π²Π½ΠΎ, Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ вычислСниСм ΠΌΡ‹ устанавливаСм secondValue ΠΊΠ°ΠΊ displayNum

Π’-пятых, ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ вычисляСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ 5 - 1 ΠΈ Π΄Π°Π΅Ρ‚ 4 .Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ обновляСтся Π½Π° дисплСС. firstValue ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ пСрСносятся Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ расчСт, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ Π½Π΅ обновляли ΠΈΡ….

Π’-ΡˆΠ΅ΡΡ‚Ρ‹Ρ…, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ снова Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ "Ρ€Π°Π²Π½ΠΎ", ΠΌΡ‹ устанавливаСм secondValue Π½Π° displayNum ΠΏΠ΅Ρ€Π΅Π΄ вычислСниСм.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ здСсь Π½Π΅ Ρ‚Π°ΠΊ.

ВмСсто secondValue Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ firstValue Π½Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ΅ число.

  if (action === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ') {
  ΠΏΡƒΡΡ‚ΡŒ firstValue = ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€.dataset.firstValue
  ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ const = Calculator.dataset.operator
  const secondValue = displayNum
  
if (firstValue) {
    if (previousKeyType === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ') {
      firstValue = displayNum
    }
    
display.textContent = Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ (firstValue, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, secondValue)
  }
  
Calculator.dataset.previousKeyType = 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ'
}  

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Ρ…ΠΎΡ‚ΠΈΠΌ пСрСнСсти ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ secondValue Π² Π½ΠΎΠ²Ρ‹ΠΉ расчСт. Π§Ρ‚ΠΎΠ±Ρ‹ secondValue ΡΠΎΡ…Ρ€Π°Π½ΡΠ»ΠΎΡΡŒ Π΄ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ вычислСния, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ настраиваСмом Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π΅.НазовСм этот настраиваСмый Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ modValue (ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°).

  if (action === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ') {
  ΠΏΡƒΡΡ‚ΡŒ firstValue = Calculator.dataset.firstValue
  ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ const = Calculator.dataset.operator
  const secondValue = displayNum
  
if (firstValue) {
    if (previousKeyType === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ') {
      firstValue = displayNum
    }
    
display.textContent = Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ (firstValue, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, secondValue)
  }
  
// Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ modValue
  Calculator.dataset.modValue = secondValue
  ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€.dataset.previousKeyType = 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ'
}  

Если previousKeyType Ρ€Π°Π²Π½ΠΎ , Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ , ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Calculator.dataset.modValue ΠΊΠ°ΠΊ secondValue . Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΡ‹ это ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΌΡ‹ смоТСм Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ расчСт.

  if (firstValue) {
  if (previousKeyType === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ') {
    firstValue = displayNum
    secondValue = Calculator.dataset.modValue
  }
  
display.textContent = Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ (firstValue, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, secondValue)
}  

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ расчСт ΠΏΡ€ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ клавиши равСнства.

Π’Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ клавишС равСнства

Π’-Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚Ρ‹Ρ…, Ссли Π’ΠΈΠΌ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ Π΄Π΅ΡΡΡ‚ΠΈΡ‡Π½ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ ΠΈΠ»ΠΈ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ послС клавиши ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π°, дисплСй Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΌΠ΅Π½Π΅Π½ Π½Π° 0. ΠΈΠ»ΠΈ Π½ΠΎΠ²ΠΎΠ΅ число соотвСтствСнно.

Π—Π΄Π΅ΡΡŒ вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ просто ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ, являСтся Π»ΠΈ previousKeyType , ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ , Π½Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, являСтся Π»ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ .

  Ссли (! ДСйствиС) {
  Ссли (
    DisplayNum === '0' ||
    previousKeyType === 'ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€' ||
    previousKeyType === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ'
  ) {
    ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ.textContent = keyContent
  } Π΅Ρ‰Π΅ {
    display.textContent = displayNum + keyContent
  }
  Calculator.dataset.previousKeyType = 'число'
}

if (action === 'decimal') {
  if (! DisplayNum.includes ('.')) {
    display.textContent = displayNum + '.'
  } ΠΈΠ½Π°Ρ‡Π΅, Ссли (
    previousKeyType === 'ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€' ||
    previousKeyType === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ'
  ) {
    display.textContent = '0'.
  }
  
Calculator.dataset.previousKeyType = 'дСсятичный'
}  

Π’-пятых, Ссли Π’ΠΈΠΌ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° сразу послС клавиши равСнства, ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ , Π° Π½Π΅ .

Для этого ΠΌΡ‹ провСряСм, соотвСтствуСт Π»ΠΈ previousKeyType Calculate ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ вычислСний с клавишами ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°.

  Ссли (
  дСйствиС === 'Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ' ||
  дСйствиС === 'Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅' ||
  дСйствиС === 'ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ' ||
  дСйствиС === 'Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ'
) {
  // ...
  
Ссли (
    firstValue &&
    ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ &&
    previousKeyType! == 'ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€' &&
    previousKeyType! == 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ'
  ) {
    const calcValue = Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ (firstValue, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, secondValue)
    ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ.textContent = calcValue
    Calculator.dataset.firstValue = calcValue
  } Π΅Ρ‰Π΅ {
    Calculator.dataset.firstValue = displayNum
  }
  
// ...
}  

Клавиша очистки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π΄Π²ΡƒΡ… Ρ†Π΅Π»Π΅ΠΉ:

  1. All Clear (обозначаСтся AC ) ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ всС ΠΈ сбрасываСт ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Π² исходноС состояниС.
  2. ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ запись (обозначаСтся CE ) ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ запись. Он сохраняСт Π² памяти ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ числа.

Когда ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ находится Π² состоянии ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ AC .

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Ссли Π’ΠΈΠΌ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ (Π»ΡŽΠ±ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ, ΠΊΡ€ΠΎΠΌΠ΅ сброса), AC слСдуСт ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π° CE .

ΠœΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ это, провСряя, являСтся Π»ΠΈ дСйствиС data-action clear . Если это Π½Π΅ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ , ΠΌΡ‹ ΠΈΡ‰Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡƒ очистки ΠΈ мСняСм Π΅Π΅ textContent .

  if (action! == 'clear') {
  const clearButton = Calculator.querySelector ('[data-action = clear]')
  clearButton.textContent = 'CE'
}  

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Ссли Π’ΠΈΠΌ достигаСт CE , Π½Π° дисплСС Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ 0.Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя CE слСдуСт Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΊ AC , Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π’ΠΈΠΌ ΠΌΠΎΠ³ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Π² исходноС состояниС. **

  if (action === 'clear') {
  display.textContent = 0
  key.textContent = 'AC'
  Calculator.dataset.previousKeyType = 'ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ'
}  

Π’-Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, Ссли Π’ΠΈΠΌ достигаСт AC , ΡΠ±Ρ€ΠΎΡΡŒΡ‚Π΅ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Π² исходноС состояниС.

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Π² исходноС состояниС, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ всС настраиваСмыС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ установили.

  if (action === 'clear') {
  Ссли (ΠΊΠ»ΡŽΡ‡.textContent === 'AC') {
    Calculator.dataset.firstValue = ''
    Calculator.dataset.modValue = ''
    Calculator.dataset.operator = ''
    Calculator.dataset.previousKeyType = ''
  } Π΅Ρ‰Π΅ {
    key.textContent = 'AC'
  }
  
display.textContent = 0
  Calculator.dataset.previousKeyType = 'ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ'
}  

Π’ΠΎΡ‚ ΠΈ всС - ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, для части ΠΊΡ€Π°ΠΉΠ½ΠΈΡ… корпусов!

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ исходный ΠΊΠΎΠ΄ для части ΠΊΡ€Π°ΠΉΠ½ΠΈΡ… случаСв ΠΏΠΎ этой ссылкС (ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠ· ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ свой адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ Π² ΠΏΠΎΠ»Π΅, ΠΈ я ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡŽ исходныС ΠΊΠΎΠ΄Ρ‹ прямо Π² ваш ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΉ ящик).

На этом этапС ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ создали вмСстС, довольно Π·Π°ΠΏΡƒΡ‚Π°Π½Π½Ρ‹ΠΉ. Π’Ρ‹, вСроятно, Π·Π°Π±Π»ΡƒΠ΄ΠΈΡ‚Π΅ΡΡŒ, Ссли ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅ΠΌ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ стал Ρ‡ΠΈΡ‰Π΅.

Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π°

Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ часто начинаСтся с Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Ρ… ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ. Π’ этом случаС Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°Ρ‡Π½Π΅ΠΌ с ΠΈ вычислим .

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ эти ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ / Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ JavaScript. ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π΅.

  1. Π Π°Π½Π½ΠΈΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Ρ‹
  2. Π’Π΅Ρ€Π½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹
  3. ЧистыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
  4. ES6 ДСструктуризация

Π˜Ρ‚Π°ΠΊ, приступим!

РСорганизация Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ вычислСния

Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚.

  const Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ = (n1, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, n2) => {
  ΠΏΡƒΡΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = ''
  if (operator === 'Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ') {
    Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = firstNum + parseFloat (n2)
  } else if (operator === 'subtract') {
    Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = parseFloat (n1) - parseFloat (n2)
  } else if (operator === 'multiply') {
    Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = parseFloat (n1) * parseFloat (n2)
  } ΠΈΠ½Π°Ρ‡Π΅, Ссли (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ === 'Π΄Π΅Π»ΠΈΡ‚ΡŒ') {
    Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = parseFloat (n1) / parseFloat (n2)
  }
  
  Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚
}  

Π’Ρ‹ ΡƒΠ·Π½Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ слСдуСт максимально ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ количСство ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ присвоСния, Ссли ΠΌΡ‹ Π²Π΅Ρ€Π½Π΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ вычислСния Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² if ΠΈ else if :

  const calculate = (n1, operator, n2) => {
  if (operator === 'Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ') {
    Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ firstNum + parseFloat (n2)
  } else if (operator === 'subtract') {
    Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ parseFloat (n1) - parseFloat (n2)
  } else if (operator === 'multiply') {
    Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ parseFloat (n1) * parseFloat (n2)
  } ΠΈΠ½Π°Ρ‡Π΅, Ссли (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ === 'Π΄Π΅Π»ΠΈΡ‚ΡŒ') {
    Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ parseFloat (n1) / parseFloat (n2)
  }
}  

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ всС значСния, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ€Π°Π½Π½Π΅Π³ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° .Если ΠΌΡ‹ это сдСлаСм, Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ нСобходимости Π² , ΠΈΠ½Π°Ρ‡Π΅ условий.

  const Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ = (n1, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, n2) => {
  if (operator === 'Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ') {
    Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ firstNum + parseFloat (n2)
  }
  
  if (operator === 'subtract') {
    Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ parseFloat (n1) - parseFloat (n2)
  }
  
  if (operator === 'ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ') {
    Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ parseFloat (n1) * parseFloat (n2)
  }
  
  if (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ === 'Π΄Π΅Π»ΠΈΡ‚ΡŒ') {
    Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ parseFloat (n1) / parseFloat (n2)
  }
}  

И ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π½Π° , Ссли условиС , ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ½ΡΡ‚ΡŒ скобки.(ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки). Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠΎΠ΄:

  const calculate = (n1, operator, n2) => {
  if (operator === 'add') Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ parseFloat (n1) + parseFloat (n2)
  if (operator === 'subtract') Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ parseFloat (n1) - parseFloat (n2)
  Ссли (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ === 'ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ') Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ parseFloat (n1) * parseFloat (n2)
  Ссли (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ === 'Π΄Π΅Π»ΠΈΡ‚ΡŒ') Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ parseFloat (n1) / parseFloat (n2)
}  

НаконСц, ΠΌΡ‹ восСмь Ρ€Π°Π· Π²Ρ‹Π·Ρ‹Π²Π°Π»ΠΈ parseFloat Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ, создав Π΄Π²Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, содСрТащиС значСния с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой:

  const calculate = (n1, operator, n2) => {
  const firstNum = parseFloat (n1)
  const secondNum = parseFloat (n2)
  Ссли (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ === 'Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ') Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ firstNum + secondNum
  if (operator === 'subtract') Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ firstNum - secondNum
  if (operator === 'multiply') Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ firstNum * secondNum
  Ссли (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ === 'Π΄Π΅Π»ΠΈΡ‚ΡŒ') Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ firstNum / secondNum
}  

ΠœΡ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΈ с , Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ вычислим . Π’Π°ΠΌ Π½Π΅ каТСтся, Ρ‡Ρ‚ΠΎ это Π»Π΅Π³Ρ‡Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Ρ€Π°Π½ΡŒΡˆΠ΅?

РСорганизация ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚Π΅Π»Ρ событий

Код, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ создали для ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚Π΅Π»Ρ событий, ΠΎΠ³Ρ€ΠΎΠΌΠ΅Π½.Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚:

  keys.addEventListener ('click', e => {
  if (e.target.matches ('button')) {
  
    Ссли (! дСйствиС) {/ * ... * /}
    
    Ссли (дСйствиС === 'Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ' ||
      дСйствиС === 'Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅' ||
      дСйствиС === 'ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ' ||
      action === 'Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ') {
      / * ... * /
    }
    
    if (action === 'clear') {/ * ... * /}
    if (дСйствиС! == 'ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ') {/ * ... * /}
    if (action === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ') {/ * ... * /}
  }
})  

Как Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ этого Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΊΠΎΠ΄Π°? Если Π²Ρ‹ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ программирования, Ρƒ вас ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ соблазн провСсти Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³, Ρ€Π°Π·Π΄Π΅Π»ΠΈΠ² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π²ΠΈΠ΄ дСйствий Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

  // НС Π΄Π΅Π»Π°ΠΉΡ‚Π΅ этого!
const handleNumberKeys = (/ *... * /) => {/ * ... * /}
const handleOperatorKeys = (/ * ... * /) => {/ * ... * /}
const handleDecimalKey = (/ * ... * /) => {/ * ... * /}
const handleClearKey = (/ * ... * /) => {/ * ... * /}
const handleCalculateKey = (/ * ... * /) => {/ * ... * /}  

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

Π›ΡƒΡ‡ΡˆΠ΅ всСго Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° чистыС ΠΈ нСчистыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ этом случаС Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

  ΠΊΠ»ΡŽΡ‡Π΅ΠΉ.addEventListener ('ΠΊΠ»ΠΈΠΊ', e => {
  // Чистая функция
  const resultString = createResultString (/ * ... * /)
  
  // нСчистоты
  display.textContent = resultString
  updateCalculatorState (/ * ... * /)
})  

Π—Π΄Π΅ΡΡŒ createResultString - это чистая функция, которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π½Π° ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π΅. updateCalculatorState - это нСчистая функция, которая измСняСт внСшний Π²ΠΈΠ΄ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π° ΠΈ настраиваСмыС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ createResultString

Как ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Ρ€Π°Π½Π΅Π΅, createResultString Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π½Π° ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π΅.
Π­Ρ‚ΠΈ значСния ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ частСй ΠΊΠΎΠ΄Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡƒΠΊΠ°Π·Π°Π½ΠΎ display.textContent = 'some value .

  display.textContent = 'some value'  

ВмСсто display.textContent = 'some value' ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎΠ·ΠΆΠ΅.

  // Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π²Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π½Π° это
return 'some value'  

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим это вмСстС, шаг Π·Π° шагом, начиная с Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… клавиш.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ строки Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° для Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… клавиш

Π’ΠΎΡ‚ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρƒ нас Π΅ΡΡ‚ΡŒ для Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… клавиш:

  if (! Action) {
  Ссли (
    DisplayNum === '0' ||
    previousKeyType === 'ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€' ||
    previousKeyType === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ'
  ) {
    ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ.textContent = keyContent
  } Π΅Ρ‰Π΅ {
    display.textContent = displayNum + keyContent
  }
  Calculator.dataset.previousKeyType = 'число'
}  

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ шаг - ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ части, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ говорят display.textContent = 'some value' , Π² createResultString . Когда Π²Ρ‹ это сдСлаСтС, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ display.textContent = Π½Π° return .

  const createResultString = () => {
  if (! action) {
    Ссли (
      DisplayNum === '0' ||
      previousKeyType === 'ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€' ||
      previousKeyType === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ'
    ) {
      Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ keyContent
    } Π΅Ρ‰Π΅ {
      return отобраТаСтсяNum + keyContent
    }
  }
}  

Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ if / else Π² Ρ‚Π΅Ρ€Π½Π°Ρ€Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€:

  const createResultString = () => {
  if (дСйствиС!) {
    return displayNum === '0' ||
      previousKeyType === 'ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€' ||
      previousKeyType === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ'
      ? keyContent
      : displayNum + keyContent
  }
}  

ΠŸΡ€ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π΅ Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ список Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π²Π°ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….ΠœΡ‹ вСрнСмся ΠΊ списку ΠΏΠΎΠ·ΠΆΠ΅.

  const createResultString = () => {
  // НСобходимыС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅:
  // 1. keyContent
  // 2. displayNum
  // 3. previousKeyType
  // 4. дСйствиС
  
  if (дСйствиС!) {
    return displayNum === '0' ||
      previousKeyType === 'ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€' ||
      previousKeyType === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ'
      ? keyContent
      : displayNum + keyContent
  }
}  

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ строки Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° для дСсятичного ΠΊΠ»ΡŽΡ‡Π°

Π’ΠΎΡ‚ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρƒ нас Π΅ΡΡ‚ΡŒ для дСсятичного ΠΊΠ»ΡŽΡ‡Π°:

  if (action === 'decimal') {
  Ссли (! отобраТаСтсяНум.Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя('.')) {
    display.textContent = displayNum + '.'
  } ΠΈΠ½Π°Ρ‡Π΅, Ссли (
    previousKeyType === 'ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€' ||
    previousKeyType === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ'
  ) {
    display.textContent = '0'.
  }
  
  Calculator.dataset.previousKeyType = 'дСсятичный'
}  

Как ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ всС, Ρ‡Ρ‚ΠΎ измСняСт display.textContent , Π² createResultString .

  const createResultString = () => {
  // ...
  
  if (action === 'decimal') {
    Ссли (! отобраТаСтсяНум.Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя('.')) {
      return = displayNum + '.'
    } else if (previousKeyType === 'operator' || previousKeyType === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ') {
      return = '0'.
    }
  }
}  

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ всС значСния, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² else if Π² Ρ€Π°Π½Π½ΠΈΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚.

  const createResultString = () => {
  // ...
  
  if (action === 'decimal') {
    if (! DisplayNum.includes ('.')) Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ DisplayNum + '.'
    if (previousKeyType === 'operator' || previousKeyType === 'calculate') return '0.'
  }
}  

РаспространСнной ошибкой здСсь являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π·Π°Π±Ρ‹Π²Π°ΡŽΡ‚ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€, Ссли Π½ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ· условий Π½Π΅ соотвСтствуСт. Нам это Π½ΡƒΠΆΠ½ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ display.textContent Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΌ ΠΈΠ· createResultString . Если ΠΌΡ‹ Π΅Π³ΠΎ пропустили, createResultString Π²Π΅Ρ€Π½Π΅Ρ‚ undefined , Ρ‡Π΅Π³ΠΎ ΠΌΡ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΠΌ.

  const createResultString = () => {
  // ...
  
  if (action === 'decimal') {
    Ссли (! отобраТаСтсяНум.Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ('.')) return displayNum + '.'
    if (previousKeyType === 'operator' || previousKeyType === 'calculate') Π²Π΅Ρ€Π½Π΅Ρ‚ '0.'
    Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ отобраТаСтсяNum
  }
}  

Как всСгда, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. На этом этапС Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅:

  const createResultString = () => {
  // НСобходимыС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅:
  // 1. keyContent
  // 2. displayNum
  // 3. previousKeyType
  // 4. дСйствиС
}  

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ строки Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° для клавиш ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°

Π’ΠΎΡ‚ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ написали для клавиш ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°.

  Ссли (
  дСйствиС === 'Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ' ||
  дСйствиС === 'Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅' ||
  дСйствиС === 'ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ' ||
  дСйствиС === 'Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ'
) {
  const firstValue = Calculator.dataset.firstValue
  ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ const = Calculator.dataset.operator
  const secondValue = displayNum
  
  Ссли (
    firstValue &&
    ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ &&
    previousKeyType! == 'ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€' &&
    previousKeyType! == 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ'
  ) {
    const calcValue = Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ (firstValue, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, secondValue)
    display.textContent = calcValue
    ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€.dataset.firstValue = calcValue
  } Π΅Ρ‰Π΅ {
    Calculator.dataset.firstValue = displayNum
  }
  
  key.classList.add ('Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚')
  Calculator.dataset.previousKeyType = 'ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€'
  Calculator.dataset.operator = дСйствиС
}  

Π’Ρ‹ ΡƒΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с подробностями: ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ всС, Ρ‡Ρ‚ΠΎ измСняСт display.textContent , Π² createResultString . Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ:

  const createResultString = () => {
  // ...
  Ссли (
    дСйствиС === 'Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ' ||
    дСйствиС === 'Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅' ||
    дСйствиС === 'ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ' ||
    дСйствиС === 'Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ'
  ) {
    const firstValue = ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€.dataset.firstValue
    ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ const = Calculator.dataset.operator
    const secondValue = displayNum
    
    Ссли (
      firstValue &&
      ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ &&
      previousKeyType! == 'ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€' &&
      previousKeyType! == 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ'
    ) {
      Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ (firstValue, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, secondValue)
    }
  }
}  

ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, createResultString Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π΅. Если условиС if Π½Π΅ соотвСтствуСт, ΠΌΡ‹ всС Ρ€Π°Π²Π½ΠΎ Ρ…ΠΎΡ‚ΠΈΠΌ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ΅ число.

  const createResultString = () => {
  // ...
  Ссли (
    дСйствиС === 'Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ' ||
    дСйствиС === 'Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅' ||
    дСйствиС === 'ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ' ||
    дСйствиС === 'Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ'
  ) {
    const firstValue = Calculator.dataset.firstValue
    ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ const = Calculator.dataset.operator
    const secondValue = displayNum
    
    Ссли (
      firstValue &&
      ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ &&
      previousKeyType! == 'ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€' &&
      previousKeyType! == 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ'
    ) {
      Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ (firstValue, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, secondValue)
    } Π΅Ρ‰Π΅ {
      Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ отобраТаСтсяNum
    }
  }
}  

Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ if / else Π² Ρ‚Π΅Ρ€Π½Π°Ρ€Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€:

  const createResultString = () => {
  //...
  Ссли (
    дСйствиС === 'Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ' ||
    дСйствиС === 'Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅' ||
    дСйствиС === 'ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ' ||
    дСйствиС === 'Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ'
  ) {
    const firstValue = Calculator.dataset.firstValue
    ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ const = Calculator.dataset.operator
    const secondValue = displayNum
    
    Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ firstValue &&
      ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ &&
      previousKeyType! == 'ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€' &&
      previousKeyType! == 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ'
      ? Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ (ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, Π²Ρ‚ΠΎΡ€ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅)
      : DisplayNum
  }
}  

Если Π²Ρ‹ ΠΏΡ€ΠΈΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ΡΡŒ, Ρ‚ΠΎ ΠΏΠΎΠΉΠΌΠ΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚ нСобходимости Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ secondValue .ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ DisplayNum нСпосрСдствСнно Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ calculate .

  const createResultString = () => {
  // ...
  Ссли (
    дСйствиС === 'Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ' ||
    дСйствиС === 'Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅' ||
    дСйствиС === 'ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ' ||
    дСйствиС === 'Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ'
  ) {
    const firstValue = Calculator.dataset.firstValue
    ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ const = Calculator.dataset.operator
    
    Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ firstValue &&
      ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ &&
      previousKeyType! == 'ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€' &&
      previousKeyType! == 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ'
      ? Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ (firstValue, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, displayNum)
      : DisplayNum
  }
}  

НаконСц, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ свойства.На этот Ρ€Π°Π· Π½Π°ΠΌ понадобится Calculator.dataset.firstValue ΠΈ Calculator.dataset.operator .

  const createResultString = () => {
  // НСобходимыС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ свойства:
  // 1. keyContent
  // 2. displayNum
  // 3. previousKeyType
  // 4. дСйствиС
  // 5. Calculator.dataset.firstValue
  // 6. Calculator.dataset.operator
}  

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ строки Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° для ΠΊΠ»ΡŽΡ‡Π° очистки

ΠœΡ‹ написали ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠ»ΡŽΡ‡Π° очистки .

  if (action === 'clear') {
  if (key.textContent === 'AC') {
    Calculator.dataset.firstValue = ''
    Calculator.dataset.modValue = ''
    Calculator.dataset.operator = ''
    Calculator.dataset.previousKeyType = ''
  } Π΅Ρ‰Π΅ {
    key.textContent = 'AC'
  }
  
  display.textContent = 0
  Calculator.dataset.previousKeyType = 'ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ'
}  

Как ΠΈ Π²Ρ‹ΡˆΠ΅, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ всС, Ρ‡Ρ‚ΠΎ измСняСт display.textContent , Π² createResultString .

  const createResultString = () => {
  //...
  Ссли (дСйствиС === 'ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ') Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ 0
}  

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ строки Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° для ΠΊΠ»ΡŽΡ‡Π° равСнства

Π’ΠΎΡ‚ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ написали для ΠΊΠ»ΡŽΡ‡Π° равСнства:

  if (action === 'calculate') {
  ΠΏΡƒΡΡ‚ΡŒ firstValue = Calculator.dataset.firstValue
  ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ const = Calculator.dataset.operator
  ΠΏΡƒΡΡ‚ΡŒ secondValue = отобраТаСтсяNum
  
  if (firstValue) {
    if (previousKeyType === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ') {
      firstValue = displayNum
      secondValue = Calculator.dataset.modValue
    }
    
    ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ.textContent = Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ (firstValue, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, secondValue)
  }
  
  Calculator.dataset.modValue = secondValue
  Calculator.dataset.previousKeyType = 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ'
}  

Как ΠΈ Π²Ρ‹ΡˆΠ΅, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС, Ρ‡Ρ‚ΠΎ измСняСт display.textContent , Π² createResultString . Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ:

  if (action === 'calculate') {
  ΠΏΡƒΡΡ‚ΡŒ firstValue = Calculator.dataset.firstValue
  ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ const = Calculator.dataset.operator
  ΠΏΡƒΡΡ‚ΡŒ secondValue = отобраТаСтсяNum
  
  if (firstValue) {
    if (previousKeyType === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ') {
      firstValue = displayNum
      secondValue = ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€.dataset.modValue
    }
    display.textContent = Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ (firstValue, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, secondValue)
  }
}  

ΠŸΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π° Π² createResultString ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚Π΅ значСния для всСх Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… сцСнариСв:

  const createResultString = () => {
  // ...
  
  if (action === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ') {
    ΠΏΡƒΡΡ‚ΡŒ firstValue = Calculator.dataset.firstValue
    ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ const = Calculator.dataset.operator
    ΠΏΡƒΡΡ‚ΡŒ secondValue = отобраТаСтсяNum
    
    if (firstValue) {
      if (previousKeyType === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ') {
        firstValue = displayNum
        secondValue = ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€.dataset.modValue
      }
      Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ (firstValue, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, secondValue)
    } Π΅Ρ‰Π΅ {
      Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ отобраТаСтсяNum
    }
  }
}  

Π”Π°Π»Π΅Π΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ количСство ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, ΠΏΠ΅Ρ€Π΅Π΄Π°Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ значСния Π² calculate Ρ‡Π΅Ρ€Π΅Π· Ρ‚Π΅Ρ€Π½Π°Ρ€Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€.

  const createResultString = () => {
  // ...
  
  if (action === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ') {
    const firstValue = Calculator.dataset.firstValue
    ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ const = Calculator.dataset.operator
    const modValue = ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€.dataset.modValue
    
    if (firstValue) {
      Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉKeyType === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ'
        ? Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ (отобраТаСтся число, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, modValue)
        : Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ (firstValue, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, displayNum)
    } Π΅Ρ‰Π΅ {
      Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ отобраТаСтсяNum
    }
  }
}  

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΅Ρ‰Π΅ большС ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‚Π΅Ρ€Π½Π°Ρ€Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, Ссли Π²Π°ΠΌ это ΡƒΠ΄ΠΎΠ±Π½ΠΎ:

  const createResultString = () => {
  // ...
  
  if (action === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ') {
    const firstValue = ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€.dataset.firstValue
    ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ const = Calculator.dataset.operator
    const modValue = Calculator.dataset.modValue
    
    Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ firstValue
      ? previousKeyType === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ'
        ? Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ (отобраТаСтся число, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, modValue)
        : Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ (firstValue, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, displayNum)
      : DisplayNum
  }
}  

На этом этапС ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ снова ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ свойства ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅:

  const createResultString = () => {
  // НСобходимыС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ свойства:
  // 1.keyContent
  // 2. displayNum
  // 3. previousKeyType
  // 4. дСйствиС
  // 5. Calculator.dataset.firstValue
  // 6. Calculator.dataset.operator
  // 7. Calculator.dataset.modValue
}  

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Нам Π½ΡƒΠΆΠ½Ρ‹ сСмь свойств / ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² createResultString :

  1. keyContent
  2. displayNum
  3. previousKeyType
  4. 5000
  5. 5000 modValue
  6. operator

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ keyContent ΠΈ action ΠΈΠ· key .ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ firstValue , modValue , operator ΠΈ previousKeyType ΠΈΠ· Calculator.dataset .

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ createResultString Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Ρ‚Ρ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅: key , displayNum ΠΈ Calculator.dataset . ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Calculator.dataset прСдставляСт состояниС ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π°, Π΄Π°Π²Π°ΠΉΡ‚Π΅ вмСсто этого Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ с ΠΈΠΌΠ΅Π½Π΅ΠΌ state .

  const createResultString = (ΠΊΠ»ΡŽΡ‡, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ΅ число, состояниС) => {
  const keyContent = ΠΊΠ»ΡŽΡ‡.textContent
  const дСйствиС = key.dataset.action
  const firstValue = state.firstValue
  const modValue = state.modValue
  const ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ = состояниС. ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€
  const previousKeyType = state.previousKeyType
  // ... Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости
}

// ИспользованиС createResultString
keys.addEventListener ('ΠΊΠ»ΠΈΠΊ', e => {
  Ссли (e.target.matches ('button')) return
  const displayNum = display.textContent
  const resultString = createResultString (e.target, displayNum, Calculator.dataset)
  
  // ...
})  

НС ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ Π΄Π΅ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Ссли Ρ…ΠΎΡ‚ΠΈΡ‚Π΅:

  const createResultString = (key, displayNum, state) => {
  const keyContent = ΠΊΠ»ΡŽΡ‡.textContent
  const {дСйствиС} = key.dataset
  const {
    firstValue,
    modValue,
    ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€
    previousKeyType
  } = состояниС
  
  // ...
}  

Π‘ΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² if

Π’ createResultString ΠΌΡ‹ использовали ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ условия для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΈΠΏΠ° Π½Π°ΠΆΠ°Ρ‚Ρ‹Ρ… клавиш:

  // Если ΠΊΠ»ΡŽΡ‡ - это число
Ссли (! дСйствиС) {/ * ... * /}

// Если ΠΊΠ»ΡŽΡ‡ дСсятичный
if (дСйствиС === 'дСсятичноС') {/ * ... * /}

// Если ΠΊΠ»ΡŽΡ‡ - ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€
Ссли (
  дСйствиС === 'Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ' ||
  дСйствиС === 'Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅' ||
  дСйствиС === 'ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ' ||
  дСйствиС === 'Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ'
) {/ *... * /}

// Если ΠΊΠ»ΡŽΡ‡ ΠΎΡ‡ΠΈΡ‰Π΅Π½
if (action === 'clear') {/ * ... * /}

// Если ΠΊΠ»ΡŽΡ‡ вычислСн
if (action === 'calculate') {/ * ... * /}  

Они Π½Π΅ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹, поэтому ΠΈΡ… Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ. Если Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΡ… согласованными, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ этого:

  if (keyType === 'number') {/ * ... * /}
if (keyType === 'дСсятичный') {/ * ... * /}
if (keyType === 'ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€') {/ * ... * /}
if (keyType === 'clear') {/ * ... * /}
if (keyType === 'calculate') {/ * ... * /}  

Для этого ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ с ΠΈΠΌΠ΅Π½Π΅ΠΌ getKeyType .Π­Ρ‚Π° функция Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ клавиши.

  const getKeyType = (ΠΊΠ»ΡŽΡ‡) => {
  const {дСйствиС} = key.dataset
  Ссли (! дСйствиС) Π²Π΅Ρ€Π½Π΅Ρ‚ "число"
  Ссли (
    дСйствиС === 'Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ' ||
    дСйствиС === 'Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅' ||
    дСйствиС === 'ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ' ||
    дСйствиС === 'Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ'
  ) return 'ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€'
  // Для всСго ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ дСйствиС
  ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅ дСйствиС
}  

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

  const createResultString = (key, displayNum, state) => {
  const keyType = getKeyType (ΠΊΠ»ΡŽΡ‡)
  
  if (keyType === 'число') {/ *... * /}
  if (keyType === 'дСсятичный') {/ * ... * /}
  if (keyType === 'ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€') {/ * ... * /}
  if (keyType === 'clear') {/ * ... * /}
  if (keyType === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ') {/ * ... * /}
}  

ΠœΡ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΈ с createResultString . ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ updateCalculatorState .

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ updateCalculatorState

updateCalculatorState - это функция, которая измСняСт внСшний Π²ΠΈΠ΄ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π° ΠΈ настраиваСмыС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹.

Как ΠΈ Π² случаС с createResultString , Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ клавиши.Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ getKeyType .

  const updateCalculatorState = (ΠΊΠ»ΡŽΡ‡) => {
  const keyType = getKeyType (ΠΊΠ»ΡŽΡ‡)
  
  if (keyType === 'число') {/ * ... * /}
  if (keyType === 'дСсятичный') {/ * ... * /}
  if (keyType === 'ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€') {/ * ... * /}
  if (keyType === 'clear') {/ * ... * /}
  if (keyType === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ') {/ * ... * /}
}  

Если Π²Ρ‹ посмотритС Π½Π° ΠΎΡΡ‚Π°Π²ΡˆΠΈΠΉΡΡ ΠΊΠΎΠ΄, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ data-previous-key-type для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΊΠ»ΡŽΡ‡Π°.Π’ΠΎΡ‚ ΠΊΠ°ΠΊ выглядит ΠΊΠΎΠ΄:

  const updateCalculatorState = (ΠΊΠ»ΡŽΡ‡, ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€) => {
  const keyType = getKeyType (ΠΊΠ»ΡŽΡ‡)
  
  if (! action) {
    // ...
    Calculator.dataset.previousKeyType = 'число'
  }
  
  if (action === 'decimal') {
    // ...
    Calculator.dataset.previousKeyType = 'дСсятичный'
  }
  
  Ссли (
    дСйствиС === 'Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ' ||
    дСйствиС === 'Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅' ||
    дСйствиС === 'ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ' ||
    дСйствиС === 'Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ'
  ) {
    // ...
    Calculator.dataset.previousKeyType = 'ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€'
  }
  
  if (action === 'clear') {
    //...
    Calculator.dataset.previousKeyType = 'ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ'
  }
  
  if (action === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ') {
    Calculator.dataset.previousKeyType = 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ'
  }
}  

Π­Ρ‚ΠΎ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΡƒΠΆΠ΅ Π·Π½Π°Π΅ΠΌ Ρ‚ΠΈΠΏ ΠΊΠ»ΡŽΡ‡Π° с getKeyType . ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π°:

  const updateCalculatorState = (key, Calculator) => {
  const keyType = getKeyType (ΠΊΠ»ΡŽΡ‡)
  Calculator.dataset.previousKeyType = keyType
    
  if (keyType === 'число') {/ * ... * /}
  if (keyType === 'decimal') {/ *... * /}
  if (keyType === 'ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€') {/ * ... * /}
  if (keyType === 'clear') {/ * ... * /}
  if (keyType === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ') {/ * ... * /}
}  

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅

updateCalculatorState для клавиш ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°

Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ всС клавиши выходят ΠΈΠ· своСго Π½Π°ΠΆΠ°Ρ‚ΠΎΠ³ΠΎ состояния. Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρƒ нас Π±Ρ‹Π» Ρ€Π°Π½ΡŒΡˆΠ΅:

  const updateCalculatorState = (ΠΊΠ»ΡŽΡ‡, ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€) => {
  const keyType = getKeyType (ΠΊΠ»ΡŽΡ‡)
  Calculator.dataset.previousKeyType = keyType
  
  ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ.from (key.parentNode.children) .forEach (k => k.classList.remove ('находится Π² дСпрСссии'))
}  

Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ написали для клавиш ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, послС пСрСмСщСния частСй, связанных с display.textContent , Π² createResultString .

  if (keyType === 'operator') {
  Ссли (firstValue &&
      ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ &&
      previousKeyType! == 'ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€' &&
      previousKeyType! == 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ'
  ) {
    Calculator.dataset.firstValue = CalculatorValue
  } Π΅Ρ‰Π΅ {
    ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€.dataset.firstValue = displayNum
  }
  
  key.classList.add ('Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚')
  Calculator.dataset.operator = key.dataset.action
}  

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π΅Ρ€Π½Π°Ρ€Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°:

  if (keyType === 'operator') {
  key.classList.add ('Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚')
  Calculator.dataset.operator = key.dataset.action
  Calculator.dataset.firstValue = firstValue &&
    ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ &&
    previousKeyType! == 'ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€' &&
    previousKeyType! == 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ'
    ? CalculatedValue
    : DisplayNum
}  

Как ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ свойства.Π—Π΄Π΅ΡΡŒ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ CalculatedValue ΠΈ DisplayNum .

  const updateCalculatorState = (ΠΊΠ»ΡŽΡ‡, ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€) => {
  // НСобходимыС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ свойства
  // 1. ΠΊΠ»ΡŽΡ‡
  // 2. ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€
  // 3. CalculatedValue
  // 4. displayNum
}  

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅

updateCalculatorState для ΠΊΠ»ΡŽΡ‡Π° очистки

Π’ΠΎΡ‚ ΠΎΡΡ‚Π°Π²ΡˆΠΈΠΉΡΡ ΠΊΠΎΠ΄ для ΠΊΠ»ΡŽΡ‡Π° очистки:

  if (action === 'clear') {
  if (key.textContent === 'AC') {
    ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€.dataset.firstValue = ''
    Calculator.dataset.modValue = ''
    Calculator.dataset.operator = ''
    Calculator.dataset.previousKeyType = ''
  } Π΅Ρ‰Π΅ {
    key.textContent = 'AC'
  }
}

if (action! == 'clear') {
  const clearButton = Calculator.querySelector ('[data-action = clear]')
  clearButton.textContent = 'CE'
}  

Π—Π΄Π΅ΡΡŒ Π½Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Ρ€Π΅ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ. НС ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ / Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ всС Π² updateCalculatorState .

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅

updateCalculatorState для ΠΊΠ»ΡŽΡ‡Π° равСнства

Π’ΠΎΡ‚ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ написали для ΠΊΠ»ΡŽΡ‡Π° равСнства:

  if (action === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ') {
  ΠΏΡƒΡΡ‚ΡŒ firstValue = ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€.dataset.firstValue
  ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ const = Calculator.dataset.operator
  ΠΏΡƒΡΡ‚ΡŒ secondValue = отобраТаСтсяNum
  
  if (firstValue) {
    if (previousKeyType === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ') {
      firstValue = displayNum
      secondValue = Calculator.dataset.modValue
    }
    
    display.textContent = Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ (firstValue, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, secondValue)
  }
  
  Calculator.dataset.modValue = secondValue
  Calculator.dataset.previousKeyType = 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ'
}  

Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Ρƒ нас останСтся, Ссли ΠΌΡ‹ ΡƒΠ΄Π°Π»ΠΈΠΌ всС, Ρ‡Ρ‚ΠΎ касаСтся дисплСя .textContent .

  if (action === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ') {
  ΠΏΡƒΡΡ‚ΡŒ secondValue = отобраТаСтсяNum
  
  if (firstValue) {
    if (previousKeyType === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ') {
      secondValue = Calculator.dataset.modValue
    }
  }
  
  Calculator.dataset.modValue = secondValue
}  

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ это Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

  if (keyType === 'calculate') {
  Calculator.dataset.modValue = firstValue && previousKeyType === 'Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ'
    ? modValue
    : DisplayNum
}  

Как всСгда, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ свойства ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅:

  const updateCalculatorState = (key, Calculator) => {
  // НСобходимыС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ свойства
  // 1.ΠΊΠ»ΡŽΡ‡
  // 2. ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€
  // 3. CalculatedValue
  // 4. displayNum
  // 5. modValue
}  

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

ΠœΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ ΠΏΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… / свойств для updateCalculatorState :

  1. ΠΊΠ»ΡŽΡ‡
  2. ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€
  3. РасчСтноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
  4. 9

Начиная с , modValue ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π° .Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… , Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ значСния:

  const updateCalculatorState = (ΠΊΠ»ΡŽΡ‡, ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€, вычислСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ΅ число) => {
  // ...
}

keys.addEventListener ('ΠΊΠ»ΠΈΠΊ', e => {
  Ссли (e.target.matches ('button')) return
  
  константный ΠΊΠ»ΡŽΡ‡ = e.target
  const displayNum = display.textContent
  const resultString = createResultString (ΠΊΠ»ΡŽΡ‡, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ΅ число, Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π°)
  
  display.textContent = resultString
  
  // ΠŸΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ значСния
  updateCalculatorState (ΠΊΠ»ΡŽΡ‡, ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€, resultString, displayNum)
})  

Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ updateCalculatorState снова

ΠœΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ Ρ‚Ρ€ΠΈ Π²ΠΈΠ΄Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π΅ updateCalculatorState :

  1. .Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ…
  2. Класс для наТатия / наТатия ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²
  3. AC vs CE тСкст

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ чистым, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ (2) ΠΈ (3) Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ - updateVisualState . Π’ΠΎΡ‚ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ updateVisualState :

  const updateVisualState = (ΠΊΠ»ΡŽΡ‡, ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€) => {
  const keyType = getKeyType (ΠΊΠ»ΡŽΡ‡)
  Array.from (key.parentNode.children) .forEach (k => k.classList.remove ('находится Π² дСпрСссии'))
  
  if (keyType === 'operator') ΠΊΠ»ΡŽΡ‡.classList.add ('Π² дСпрСссии')
  
  if (keyType === 'clear' && key.textContent! == 'AC') {
    key.textContent = 'AC'
  }
  
  if (keyType! == 'clear') {
    const clearButton = Calculator.querySelector ('[data-action = clear]')
    clearButton.textContent = 'CE'
  }
}  

Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅

ПослС Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΊΠΎΠ΄ стал Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Ρ‡ΠΈΡ‰Π΅. Если Π²Ρ‹ посмотритС Π² ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚Π΅Π»ΡŒ событий, Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ каТдая функция. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ выглядит ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Ρ‚Π΅Π»ΡŒ событий Π² ΠΊΠΎΠ½Ρ†Π΅:

  ΠΊΠ»ΡŽΡ‡Π΅ΠΉ.addEventListener ('ΠΊΠ»ΠΈΠΊ', e => {
  Ссли (e.target.matches ('button')) return
  константный ΠΊΠ»ΡŽΡ‡ = e.target
  const displayNum = display.textContent
  
  // ЧистыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
  const resultString = createResultString (ΠΊΠ»ΡŽΡ‡, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ΅ число, Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π°)
  
  // ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ состояния
  display.textContent = resultString
  updateCalculatorState (ΠΊΠ»ΡŽΡ‡, ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€, resultString, displayNum)
  updateVisualState (ΠΊΠ»ΡŽΡ‡, ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€)
})  

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ исходный ΠΊΠΎΠ΄ для части Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΏΠΎ этой ссылкС (ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠ· ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ свой адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ Π² ΠΏΠΎΠ»Π΅, ΠΈ я ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡŽ исходныС ΠΊΠΎΠ΄Ρ‹ прямо Π² ваш ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΉ ящик).

НадСюсь, Π²Π°ΠΌ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»Π°ΡΡŒ эта ΡΡ‚Π°Ρ‚ΡŒΡ. Если Π΄Π°, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°ΠΌ понравится Learn JavaScript - курс, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ я ΠΏΠΎΠΊΠ°ΠΆΡƒ Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ 20 ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², шаг Π·Π° шагом, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ ΠΌΡ‹ создали этот ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ сСгодня.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ возмоТности, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΆΠΈΠ²Ρ‹Π΅ Ρ€Π΅Π³ΠΈΠΎΠ½Ρ‹. Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ? ΠŸΠΎΠΉΠ΄ΠΈΡ‚Π΅, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Learn JavaScript πŸ™‚

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ-ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ Π½Π° Python 3

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π―Π·Ρ‹ΠΊ программирования Python - ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ инструмСнт для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с числами ΠΈ вычислСния матСматичСских Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.Π­Ρ‚ΠΎ качСство ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

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

ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ матСматичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, условныС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ для создания нашСго ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π°.

ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ трСбования

Для этого руководства Ρƒ вас Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ установлСн Python 3 Π½Π° локальном ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ ΠΈ Π½Π° Π½Π΅ΠΌ настроСна срСда программирования.Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Python ΠΈΠ»ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ срСду, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, слСдуя ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ руководству для вашСй ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы.

Π¨Π°Π³ 1. Π—Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ Π²Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ… Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ

ΠšΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Ρ‹

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

Для этого ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Π² Python Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ input () , которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹.Π’Π½ΡƒΡ‚Ρ€ΠΈ скобок Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ input () ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ строку для запроса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. ΠœΡ‹ Π½Π°Π·Π½Π°Ρ‡ΠΈΠΌ Π²Π²ΠΎΠ΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

Для этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΠ» Π΄Π²Π° числа, поэтому Π΄Π°Π²Π°ΠΉΡ‚Π΅ запишСм подсказку ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для Π΄Π²ΡƒΡ… чисСл. ΠŸΡ€ΠΈ запросС Π²Π²ΠΎΠ΄Π° ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π» Π² ΠΊΠΎΠ½Π΅Ρ† нашСй строки, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π²ΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ строкой запроса Π±Ρ‹Π» ΠΏΡ€ΠΎΠ±Π΅Π».

  число_1 = Π²Π²ΠΎΠ΄ ('Π’Π²Π΅Π΄ΠΈΡ‚Π΅ свой ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€:')
number_2 = input ('Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ число:')
  

ПослС написания Π΄Π²ΡƒΡ… Π½Π°ΡˆΠΈΡ… строк ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π΅ запуском.ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°Π·Π²Π°Ρ‚ΡŒ эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Calculator.py , Π° Π² ΠΎΠΊΠ½Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² нашСй срСдС программирования с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ python Calculator.py . Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ тСкст Π² ΠΎΠΊΠ½Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅.

  

Π’Ρ‹Ρ…ΠΎΠ΄

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ вашС ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число: 5 Π’Π²Π΅Π΄ΠΈΡ‚Π΅ свой Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π½ΠΎΠΌΠ΅Ρ€: 7

Если Π²Ρ‹ запуститС эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ нСсколько Ρ€Π°Π· ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ свой Π²Π²ΠΎΠ΄, Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ всС, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, ΠΊΠΎΠ³Π΄Π° вас попросят, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ слова, символы, ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΈΠ»ΠΈ просто ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Π²Π²ΠΎΠ΄Π°.Π­Ρ‚ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ input () ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π² Π²ΠΈΠ΄Π΅ строк ΠΈ Π½Π΅ Π·Π½Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈΡ‰Π΅ΠΌ число.

ΠœΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ число Π² этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΏΠΎ Π΄Π²ΡƒΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ: 1) Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠ³Π»Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ матСматичСскиС вычислСния, ΠΈ 2) для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ числовой строкой.

Π’ зависимости ΠΎΡ‚ Π½Π°ΡˆΠΈΡ… потрСбностСй Π² ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ строку, ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΡƒΡŽ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ input () , Π² Ρ†Π΅Π»ΠΎΠ΅ число ΠΈΠ»ΠΈ число с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой. Для нас Ρ†Π΅Π»Ρ‹Π΅ числа подходят для нашСй Ρ†Π΅Π»ΠΈ, поэтому ΠΌΡ‹ ΠΎΠ±Π΅Ρ€Π½Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ input () Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ int () , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π²ΠΎΠ΄ Π² цСлочислСнный Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ….

Calculator.py

  number_1 = int (input ('Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число:'))
number_2 = int (input ('Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ число:'))
  

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли ΠΌΡ‹ Π²Π²Π΅Π΄Π΅ΠΌ Π΄Π²Π° Ρ†Π΅Π»Ρ‹Ρ… числа, ΠΌΡ‹ Π½Π΅ столкнСмся с ошибкой:

  

Π’Ρ‹Ρ…ΠΎΠ΄

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ вашС ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число: 23 Π’Π²Π΅Π΄ΠΈΡ‚Π΅ свой Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π½ΠΎΠΌΠ΅Ρ€: 674

Но Ссли ΠΌΡ‹ Π²Π²Π΅Π΄Π΅ΠΌ Π±ΡƒΠΊΠ²Ρ‹, символы ΠΈΠ»ΠΈ Π»ΡŽΠ±Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π½Π΅Ρ†Π΅Π»Ρ‹Π΅ числа, ΠΌΡ‹ столкнСмся со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ошибкой:

  

Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ вашС ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число: sammy ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ (послСдний Π²Ρ‹Π·ΠΎΠ² послСдний): Π€Π°ΠΉΠ» "тСстированиС.py ", строка 1, Π² number_1 = int (input ('Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число:')) ValueError: нСдопустимый Π»ΠΈΡ‚Π΅Ρ€Π°Π» для int () с Π±Π°Π·ΠΎΠΉ 10: 'sammy'

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ настроили Π΄Π²Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ для хранСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° Π² Π²ΠΈΠ΄Π΅ цСлочислСнных Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π² числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой.

Π¨Π°Π³ 2 - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ наша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°, ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² ΠΎΠ±Ρ‰Π΅ΠΉ слоТности 4 матСматичСских ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°: + для слоТСния, – для вычитания, * для умноТСния ΠΈ / для дСлСния.

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

Calculator.py

  number_1 = int (input ('Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число:'))
number_2 = int (input ('Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ число:'))

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (число_1 + число_2)
  

Π”Π°Π²Π°ΠΉΡ‚Π΅ запустим ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ ΠΏΡ€ΠΈ появлСнии запроса Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Π΄Π²Π° числа, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΎΠΆΠΈΠ΄Π°Π»ΠΈ:

  

Π’Ρ‹Ρ…ΠΎΠ΄

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ вашС ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число: 8 Π’Π²Π΅Π΄ΠΈΡ‚Π΅ свой Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π½ΠΎΠΌΠ΅Ρ€: 3 11

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

Calculator.py

  number_1 = int (input ('Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число:'))
number_2 = int (input ('Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ число:'))

print ('{} + {} =' .format (число_1, число_2))
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (число_1 + число_2)
  

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ запустим ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρƒ нас Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ матСматичСскоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, выполняСмоС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ.

  

Π’Ρ‹Ρ…ΠΎΠ΄

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ вашС ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число: 90 Π’Π²Π΅Π΄ΠΈΡ‚Π΅ свой Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π½ΠΎΠΌΠ΅Ρ€: 717 90 + 717 = 807

ИспользованиС срСдств форматирования строк Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ большС ΠΎΡ‚Π·Ρ‹Π²ΠΎΠ².

На этом этапС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ использовали для добавлСния:

Calculator.py

  number_1 = int (input ('Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число:'))
number_2 = int (input ('Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ число:'))

# Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅
print ('{} + {} ='.Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ (число_1, число_2))
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (число_1 + число_2)

# Π’Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅
print ('{} - {} =' .format (число_1, число_2))
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (число_1 - число_2)

# Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅
print ('{} * {} =' .format (число_1, число_2))
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (число_1 * число_2)

# Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅
print ('{} / {} =' .format (число_1, число_2))
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (число_1 / число_2)
  

ΠœΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ - , * ΠΈ / Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π²Ρ‹ΡˆΠ΅. Если ΠΌΡ‹ запустим ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° этом этапС, ΠΎΠ½Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ всС описанныС Π²Ρ‹ΡˆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.Однако ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π° Ρ€Π°Π·. Для этого ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ условныС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹.

Π¨Π°Π³ 3 - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ условных ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²

Π’ нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Calculator.py ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠ³ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ срСди Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². Π˜Ρ‚Π°ΠΊ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°Ρ‡Π½Π΅ΠΌ с добавлСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² Π½Π°Ρ‡Π°Π»ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ вмСстС с Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ Π·Π½Π°Π», Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ.

ΠœΡ‹ запишСм строку Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ€Π°Π·Π½Ρ‹Ρ… строках, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚Ρ€ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ:

  ''
Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ:
+ для слоТСния
- Π½Π° Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅
* для умноТСния
/ для дСлСния
'' '
  

ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· символов ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ свой Π²Ρ‹Π±ΠΎΡ€, поэтому, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ…ΠΎΡ‡Π΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅, ΠΎΠ½ Π½Π°Π±Π΅Ρ€Π΅Ρ‚ /.Однако ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ символы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Ρ…ΠΎΡ‚ΠΈΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 1 для слоТСния ΠΈΠ»ΠΈ b для вычитания .

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π²Π²ΠΎΠ΄, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ input () . ΠœΡ‹ помСстим строку Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ input () ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΄ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этого Π²Π²ΠΎΠ΄Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ Π½Π°Π·ΠΎΠ²Π΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ .

Calculator.py

  опСрация = Π²Π²ΠΎΠ΄ ('' '
Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ:
+ для слоТСния
- Π½Π° Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅
* для умноТСния
/ для дСлСния
'' ')

number_1 = int (input ('Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число:'))
number_2 = int (input ('Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ число:'))

print ('{} + {} ='.Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ (число_1, число_2))
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (число_1 + число_2)

print ('{} - {} =' .format (число_1, число_2))
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (число_1 - число_2)

print ('{} * {} =' .format (число_1, число_2))
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (число_1 * число_2)

print ('{} / {} =' .format (число_1, число_2))
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (число_1 / число_2)
  

На этом этапС, Ссли ΠΌΡ‹ запускаСм Π½Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ значСния, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π²Π²ΠΎΠ΄ΠΈΠΌ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠΈ, поэтому Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ наши условныС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹. Из-Π·Π° Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ структурировали Π½Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ if Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΌ, Π³Π΄Π΅ выполняСтся Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅, Π±ΡƒΠ΄Π΅Ρ‚ 3 ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° else-if ΠΈΠ»ΠΈ elif для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ else Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ Π½Π° мСстС для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибки, Ссли Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ Π½Π΅ Π²Π²Π΅Π» символ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°.

Calculator.py

  опСрация = Π²Π²ΠΎΠ΄ ('' '
Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ:
+ для слоТСния
- Π½Π° Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅
* для умноТСния
/ для дСлСния
'' ')

number_1 = int (input ('Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число:'))
number_2 = int (input ('Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ число:'))

Ссли опСрация == '+':
    print ('{} + {} =' .format (число_1, число_2))
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (число_1 + число_2)

elif operation == '-':
    print ('{} - {} =' .format (число_1, число_2))
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (число_1 - число_2)

elif operation == '*':
    print ('{} * {} ='.Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ (число_1, число_2))
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (число_1 * число_2)

elif operation == '/':
    print ('{} / {} =' .format (число_1, число_2))
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (число_1 / число_2)

Π΅Ρ‰Π΅:
    print ('Π’Ρ‹ Π½Π΅ Π²Π²Π΅Π»ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, запуститС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π΅Ρ‰Π΅ Ρ€Π°Π·.')
  

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ Ρ‡Π΅Ρ€Π΅Π· эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, сначала ΠΎΠ½Π° ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ввСсти символ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π‘ΠΊΠ°ΠΆΠ΅ΠΌ, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ * для умноТСния. Π—Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ 2 числа, ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ 58 ΠΈ 40 .На этом этапС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠ΅ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚.

  

Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ: + для слоТСния - Π½Π° Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ * для умноТСния / для дСлСния * ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число: 58 ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ число: 40 58 * 40 = 2320

Из-Π·Π° Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ структурируСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ % ΠΏΡ€ΠΈ запросС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ запросС, ΠΎΠ½ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΡƒ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π²Π²Π΅Π΄Π΅Ρ‚ числа.Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ситуаций.

На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Π½ΠΎ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π²Ρ‚ΠΎΡ€ΡƒΡŽ ΠΈΠ»ΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, Π½Π΅ запустив ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ снова, поэтому Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π¨Π°Π³ 4 - ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·, сколько Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π”Π°Π²Π°ΠΉΡ‚Π΅ сначала помСстим наш ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π° Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ.НазовСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ calculate () ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ отступа Π²Π½ΡƒΡ‚Ρ€ΠΈ самой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π»Π°, ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹Π·ΠΎΠ²Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π²Π½ΠΈΠ·Ρƒ нашСго Ρ„Π°ΠΉΠ»Π°.

Calculator.py

  # ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Π½Π°ΡˆΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ
def Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ():
    опСрация = Π²Ρ…ΠΎΠ΄ ('' '
Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ:
+ для слоТСния
- Π½Π° Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅
* для умноТСния
/ для дСлСния
'' ')

    number_1 = int (input ('ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число:'))
    number_2 = int (input ('ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ число:'))

    Ссли опСрация == '+':
        print ('{} + {} ='.Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ (число_1, число_2))
        ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (число_1 + число_2)

    elif operation == '-':
        print ('{} - {} =' .format (число_1, число_2))
        ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (число_1 - число_2)

    elif operation == '*':
        print ('{} * {} =' .format (число_1, число_2))
        ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (число_1 * число_2)

    elif operation == '/':
        print ('{} / {} =' .format (число_1, число_2))
        ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (число_1 / число_2)

    Π΅Ρ‰Π΅:
        print ('Π’Ρ‹ Π½Π΅ Π²Π²Π΅Π»ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, запуститС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π΅Ρ‰Π΅ Ρ€Π°Π·.')

# Π’Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° calculate () Π²Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ()
  

Π—Π°Ρ‚Π΅ΠΌ Π΄Π°Π²Π°ΠΉΡ‚Π΅ создадим Π²Ρ‚ΠΎΡ€ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΡΠΎΡΡ‚ΠΎΡΡ‰ΡƒΡŽ ΠΈΠ· большСго количСства условных ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². Π’ этом Π±Π»ΠΎΠΊΠ΅ ΠΊΠΎΠ΄Π° ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ, хотят Π»ΠΈ ΠΎΠ½ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ снова ΠΈΠ»ΠΈ Π½Π΅Ρ‚. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ это Π½Π° условных ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ… нашСго ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π°, Π½ΠΎ Π² этом случаС Ρƒ нас Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ if , ΠΎΠ΄ΠΈΠ½ elif ΠΈ ΠΎΠ΄ΠΈΠ½ else для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок.

ΠœΡ‹ снова Π½Π°Π·ΠΎΠ²Π΅ΠΌ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ () ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΅Π΅ ΠΏΠΎΠ΄ нашим Π±Π»ΠΎΠΊΠΎΠΌ ΠΊΠΎΠ΄Π° def calculate (): .

Calculator.py

  ...
# ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ again (), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, хотят Π»ΠΈ ΠΎΠ½ΠΈ снова ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€
def снова ():

    # ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π²Π²ΠΎΠ΄ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
    calc_again = input ('' '
Π₯ΠΎΡ‚ΠΈΡ‚Π΅ Π΅Ρ‰Π΅ Ρ€Π°Π· ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ?
ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Y для ДА ΠΈΠ»ΠΈ N для НЕВ.
'' ')

    # Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ Y, запускаСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ calculate ()
    Ссли calc_again == 'Y':
        Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ()

    # Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ N, ΠΏΠΎΠΏΡ€ΠΎΡ‰Π°ΠΉΡ‚Π΅ΡΡŒ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ
    elif calc_again == 'N':
        print ('Увидимся позТС.')

    # Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠ»ΡŽΡ‡, снова запуститС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ
    Π΅Ρ‰Π΅:
        ΠΎΠΏΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈ()

# Π’Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° calculate () Π²Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ()
  

Π₯отя Π΅ΡΡ‚ΡŒ нСкоторая ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° else, ΠΌΡ‹, вСроятно, ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ, скаТСм, строчныС y ΠΈ n Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ прописным Y ΠΈ N .Для этого Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΡ‚Ρ€ΠΎΠΊΠΎΠ²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ str.upper () :

.

Calculator.py

  ...
def снова ():
    calc_again = input ('' '
Π₯ΠΎΡ‚ΠΈΡ‚Π΅ Π΅Ρ‰Π΅ Ρ€Π°Π· ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ?
ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Y для ДА ΠΈΠ»ΠΈ N для НЕВ.
'' ')

    # ΠŸΡ€ΠΈΠΌΠΈΡ‚Π΅ 'y' ΠΈΠ»ΠΈ 'Y', Π΄ΠΎΠ±Π°Π²ΠΈΠ² str.upper ()
    Ссли calc_again.upper () == 'Y':
        Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ()

    # ΠŸΡ€ΠΈΠΌΠΈΡ‚Π΅ 'n' ΠΈΠ»ΠΈ 'N', Π΄ΠΎΠ±Π°Π²ΠΈΠ² str.upper ()
    elif calc_again.upper () == 'N':
        print ('Увидимся позТС.')

    Π΅Ρ‰Π΅:
        ΠΎΠΏΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈ()
...
  

На этом этапС ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ again () Π² ΠΊΠΎΠ½Π΅Ρ† Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ calculate () , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, хотят Π»ΠΈ ΠΎΠ½ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ.

Calculator.py

  def calculate ():
    опСрация = Π²Ρ…ΠΎΠ΄ ('' '
Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ:
+ для слоТСния
- Π½Π° Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅
* для умноТСния
/ для дСлСния
'' ')

    number_1 = int (input ('ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число:'))
    number_2 = int (input ('ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ число:'))

    Ссли опСрация == '+':
        print ('{} + {} =' .format (число_1, число_2))
        ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (число_1 + число_2)

    elif operation == '-':
        print ('{} - {} ='.Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ (число_1, число_2))
        ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (число_1 - число_2)

    elif operation == '*':
        print ('{} * {} =' .format (число_1, число_2))
        ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (число_1 * число_2)

    elif operation == '/':
        print ('{} / {} =' .format (число_1, число_2))
        ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (число_1 / число_2)

    Π΅Ρ‰Π΅:
        print ('Π’Ρ‹ Π½Π΅ Π²Π²Π΅Π»ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, запуститС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π΅Ρ‰Π΅ Ρ€Π°Π·.')

    # Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ again () Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ calculate ()
    ΠΎΠΏΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈ()

def снова ():
    calc_again = input ('' '
Π₯ΠΎΡ‚ΠΈΡ‚Π΅ Π΅Ρ‰Π΅ Ρ€Π°Π· ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ?
ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Y для ДА ΠΈΠ»ΠΈ N для НЕВ.'' ')

    Ссли calc_again.upper () == 'Y':
        Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ()
    elif calc_again.upper () == 'N':
        print ('Увидимся позТС.')
    Π΅Ρ‰Π΅:
        ΠΎΠΏΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈ()

Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ()
  

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ свою ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ с python Calculator.py Π² ΠΎΠΊΠ½Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°, ΠΈ Π²Ρ‹ смоТСтС Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·, сколько Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅.

Π¨Π°Π³ 5 - Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°

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

  def welcome ():
    Π Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ('''
Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€
'' ')
...
# НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ
Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ()
Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ()
  

Π•ΡΡ‚ΡŒ возмоТности ввСсти большС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок Π²ΠΎ всСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ, Π΄Π°ΠΆΠ΅ Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°Π±Π΅Ρ€Π΅Ρ‚ ΠΏΠ»Π°Π½ΠΊΡ‚ΠΎΠ½ ΠΏΡ€ΠΈ запросС числа.ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° находится прямо сСйчас, Ссли число_1 ΠΈ число_2 Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ†Π΅Π»Ρ‹ΠΌΠΈ числами, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ сообщСниС ΠΎΠ± ошибкС ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° пСрСстанСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² случаях, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ дСлСния (/) ΠΈ Π²Π²ΠΎΠ΄ΠΈΡ‚ 0 Π² качСствС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ числа ( number_2 ), ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ ZeroDivisionError: Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ноль . Для этого Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ try ... except .

ΠœΡ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ»ΠΈΡΡŒ 4 ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ, Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

 ...
    опСрация = Π²Ρ…ΠΎΠ΄ ('' '
Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ:
+ для слоТСния
- Π½Π° Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅
* для умноТСния
/ для дСлСния
** для мощности
% ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ
'' ')
...
# НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ условныС выраТСния для вычислСния мощности ΠΈ ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ
  

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Ρ†ΠΈΠΊΠ»Π°.

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

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

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

Нам интСрСсно ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ваши Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для этого простого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки! ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π½Π΅ ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ свои ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ΠΎΠ² Π² коммСнтариях Π½ΠΈΠΆΠ΅.

Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡΡ‚ΠΎΠ²ΡƒΡŽ ΠΈΠ³Ρ€Ρƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ крСстики-Π½ΠΎΠ»ΠΈΠΊΠΈ ΠΈΠ»ΠΈ камСнь-Π½ΠΎΠΆΠ½ΠΈΡ†Ρ‹-Π±ΡƒΠΌΠ°Π³Π°.

IC3 - Лаборатория энСргСтичСских систСм

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы

ΠœΠΎΠ³Ρƒ Π»ΠΈ я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ RESCheck для подтвСрТдСния соотвСтствия IECC 2006 Π³. Π² ВСхасС?

НСт. RESCheck - это Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ эффСктивности ΠΎΠ³Ρ€Π°ΠΆΠ΄Π°ΡŽΡ‰ΠΈΡ… конструкций Π·Π΄Π°Π½ΠΈΠΉ. ВСрсия 2006 Π³ΠΎΠ΄Π° ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для использования с вСрсиСй IECC 2006 Π³ΠΎΠ΄Π°.

Государство ΠΏΠΎΡ€ΡƒΡ‡ΠΈΠ»ΠΎ Π›Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΈΠΈ энСргСтичСских систСм (ESL) ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ соотвСтствиС ΠΌΠ΅ΠΆΠ΄Ρƒ вСрсиСй ΠœΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½ΠΎΠ³ΠΎ кодСкса энСргосбСрСТСния (IECC) 2000 Π³ΠΎΠ΄Π° с ΠΏΠΎΠΏΡ€Π°Π²ΠΊΠ°ΠΌΠΈ 2001 Π³ΠΎΠ΄Π° ΠΈ Π»ΡŽΠ±Ρ‹ΠΌΠΈ вСрсиями, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠ·ΠΆΠ΅.Для сравнСния, ΠΆΠΈΠ»ΠΈΡ‰Π½Ρ‹Π΅ полоТСния 2006 Π³ΠΎΠ΄Π° Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΈΠ·Π½Π°Π½Ρ‹ ΠΌΠ΅Π½Π΅Π΅ строгими. Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Π‘ΠΎΠ²Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»ΡŒΡΡ‚Π² Π‘Π΅Π²Π΅Ρ€Π½ΠΎΠ³ΠΎ ΠΈ Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ВСхаса (NCTCOG) Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π» ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΏΠΎΠΏΡ€Π°Π²ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ климатичСскиС Π·ΠΎΠ½Ρ‹ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ значСния тСплоизоляции для характСристик здания Π² соотвСтствии с этими климатичСскими Π·ΠΎΠ½Π°ΠΌΠΈ. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΠΎΠΏΡ€Π°Π²ΠΊΠΈ ΠΊ ΠœΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½ΠΎΠΌΡƒ кодСксу энСргосбСрСТСния 2006 Π³. ΠΊΠΎΠΌΠΏΠ΅Π½ΡΠΈΡ€ΡƒΡŽΡ‚ различия.

Если ΠΌΡƒΠ½ΠΈΡ†ΠΈΠΏΠ°Π»ΠΈΡ‚Π΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ IECC 2006 Π³ΠΎΠ΄Π° вмСстС с ΠΏΠΎΠΏΡ€Π°Π²ΠΊΠ°ΠΌΠΈ NCTCOG, ΠΎΠ½ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π·Π°ΠΊΠΎΠ½Π°ΠΌ ΡˆΡ‚Π°Ρ‚Π°.IC3 - это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ инструмСнт, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ для использования вмСстС с ΠΏΠΎΠΏΡ€Π°Π²ΠΊΠ°ΠΌΠΈ IECC ΠΈ NCTCOG 2006 Π³ΠΎΠ΄Π°. IC3 - это ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ инструмСнт, основанный Π½Π° Β«ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈΒ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ значСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ конструкции, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π³Π°Π±Π°Ρ€ΠΈΡ‚Ρ‹, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ оборудования, Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ источники питания, располоТСниС оборудования ΠΈ Ρ‚. Π”. Π­Ρ‚ΠΎ позволяСт Π²Π°ΠΌ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ ваш Β«ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉΒ» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с Β« стандартный Β»Π΄ΠΈΠ·Π°ΠΉΠ½ ΡƒΠΆΠ΅ смодСлирован Π² ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π΅. ИспользованиС IC3 позволяСт ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, сколько ΠΊΠΎΠ΄Π° Π²Ρ‹ΡˆΠ΅ ΠΈΠ»ΠΈ Π½ΠΈΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ваша «прСдлагаСмая» конструкция.

Π“Π΄Π΅ Π² Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌΡΡ спискС находятся ΠΏΠΎΠΏΡ€Π°Π²ΠΊΠΈ 2006 IECC w / NCTCOG?

Π§Ρ‚ΠΎ касаСтся строгости, Лаборатория энСргСтичСских систСм (ESL) ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»Π°, Ρ‡Ρ‚ΠΎ ΠœΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½Ρ‹ΠΉ кодСкс энСргосбСрСТСния 2006 Π³ΠΎΠ΄Π° (IECC) ΠΌΠ΅Π½Π΅Π΅ строг, Ρ‡Π΅ΠΌ IECC 2000 Π³ΠΎΠ΄Π° с Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ 2001 Π³ΠΎΠ΄Π°. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ лаборатория тСсно сотрудничала с Π‘ΠΎΠ²Π΅Ρ‚ΠΎΠΌ ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»ΡŒΡΡ‚Π² Π‘Π΅Π²Π΅Ρ€Π½ΠΎΠ³ΠΎ ΠΈ Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ВСхаса (NCTCOG) Π½Π°Π΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Π½Π°Π±ΠΎΡ€Π° ΠΏΠΎΠΏΡ€Π°Π²ΠΎΠΊ ΠΊ IECC 2006 Π³ΠΎΠ΄Π°. IECC 2006 Π³. с ΠΏΠΎΠΏΡ€Π°Π²ΠΊΠ°ΠΌΠΈ ΠΊ NTCOG Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρƒ IECC 2000–2001 Π³Π³.

Π― Π·Π°ΠΏΡƒΡ‚Π°Π»Π°ΡΡŒ.Как ΠΌΠ½Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΊΠΎΠ΄Π° Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ?

ΠžΠΏΡ†ΠΈΡŽ Β«IECC 2000/2001Β» слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Ссли Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ соотвСтствиС ΠœΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½ΠΎΠΌΡƒ кодСксу энСргосбСрСТСния 2000 Π³ΠΎΠ΄Π° (IECC) ΠΈΠ»ΠΈ IECC 2006 Π³ΠΎΠ΄Π° с ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ ΠΏΠΎΠΏΡ€Π°Π²ΠΎΠΊ Π‘ΠΎΠ²Π΅Ρ‚Π° ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»ΡŒΡΡ‚Π²Π° Π‘Π΅Π²Π΅Ρ€Π½ΠΎΠ³ΠΎ ΠΈ Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ВСхаса.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ Β«IECC 2006 HoustonΒ» слСдуСт Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ соотвСтствия с ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²ΠΎΠΉ Π₯ΡŒΡŽΡΡ‚ΠΎΠ½Π° Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ 15% ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΡ Π½ΠΎΡ€ΠΌ.

Β«IECC 2009Β» - это ваш Π²Ρ‹Π±ΠΎΡ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ соотвСтствиС IECC 2009 Π³ΠΎΠ΄Π°.

Каким ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ IC3 ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ доступ ΠΊ старым ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌ Π² IC3?

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ своим старым ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌ Π½Π° «МоСй страницС».Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ IC3 ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ послСдниС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π² IC3. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ сохраняСмыС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΡΡ‚Π°Ρ€ΡˆΠ΅ послСдних дСсяти ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², просто Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ «Поиск» (Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π² Π² ΠΏΠΎΠ»Π΅ поиска). Π­Ρ‚ΠΎ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ Β«Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Β» ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°Ρ‚ΡŒ всС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Ρƒ вас Π΅ΡΡ‚ΡŒ доступ. Π’ вСрсии 3.10 (Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΉ Π² 2011 Π³ΠΎΠ΄Ρƒ) Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ количСство ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹Ρ… Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π½ΠΈΠΆΠ½Π΅ΠΌ ΡƒΠ³Π»Ρƒ экрана, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ сортировку ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

Как ΠΌΠ½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Β«ΠšΠΎΠΌΠΏΡ€ΠΎΠΌΠΈΡΡΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π²ΠΎΠ·Π΄ΡƒΡ…ΠΎΠ²ΠΎΠ΄Π° Texas A&MΒ» Π² IC3?

НСдавниС ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΡ IC3 ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π»Π΅Π³Ρ‡Π΅, Ρ‡Π΅ΠΌ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ, ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π° использованиС Β«ΠšΠΎΠΌΠΏΡ€ΠΎΠΌΠΈΡΡΠ½ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π²ΠΎΠ·Π΄ΡƒΡ…ΠΎΠ²ΠΎΠ΄Π° Texas A&MΒ». ΠŸΡ€ΠΎΡΡ‚ΠΎ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ значСния ΠΏΠΎΠ΄Π°Ρ‡ΠΈ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… полях Π½Π° страницС Β«Π˜Π·ΠΎΠ»ΡΡ†ΠΈΡ / ΠœΠ΅Ρ…Π°Π½ΠΈΠΊΠ°Β» ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ SEER Π½Π° страницС ΠžΠ’Πš / Π“Π’Π‘. ** ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Β«ΠšΠΎΠΌΠΏΡ€ΠΎΠΌΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²ΠΎΠ·Π΄ΡƒΡ…ΠΎΠ²ΠΎΠ΄Π°ΠΌΠΈΒ» Π½Π΅ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Β«IECC 2009Β».

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ рассчитываСт ΠΏΡ€ΠΈΠ±Π°Π²ΠΊΡƒ Π½Π° Π·Π°Π΄Π½Π΅ΠΉ части Π΄ΠΎΠΌΠ°?

IC3 Π² настоящСС врСмя Π½Π΅ сконфигурирован для пристройки, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΠΎΠ²Ρ‹Π΅ Π΄ΠΎΠΌΠ° для ΠΎΠ΄Π½ΠΎΠΉ сСмьи.

IC3 допускаСт коэффициСнт увСличСния солнСчного Ρ‚Π΅ΠΏΠ»Π° ΠΈ U-Ρ„Π°ΠΊΡ‚ΠΎΡ€ большС, Ρ‡Π΅ΠΌ это Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ для климатичСской Π·ΠΎΠ½Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ располоТСн ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Π­Ρ‚ΠΎ Π΄Π΅Ρ„Π΅ΠΊΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния?

НСт, это Π½Π΅ Π΄Π΅Ρ„Π΅ΠΊΡ‚. IC3 Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ значСния SHGC ΠΈ U-Ρ„Π°ΠΊΡ‚ΠΎΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ соотвСтствовали Π±Ρ‹ трСбованиям энСргСтичСского кодСкса ΡˆΡ‚Π°Ρ‚Π° ВСхас. Он Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для дСмонстрации нашСй ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°, основанного Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. IC3 позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ значСния SHGC ΠΈ U-Value, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ области, Π½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ всС Π·Π΄Π°Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² соотвСтствии с Π²Π²ΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ значСния SHGC ΠΈ U-Value ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΠΈΠΊΡ‚ΠΎΠ²Π°Π½Ρ‹ принятым Π² настоящСС врСмя энСргСтичСским кодСксом ΡŽΡ€ΠΈΡΠ΄ΠΈΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠΏΡ€Π°Π²ΠΊΠ°ΠΌΠΈ, принятыми ΡŽΡ€ΠΈΡΠ΄ΠΈΠΊΡ†ΠΈΠ΅ΠΉ. ΠžΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π° соблюдСниС Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠΎΠ² Π»Π΅ΠΆΠΈΡ‚ Π½Π° ΡŽΡ€ΠΈΡΠ΄ΠΈΠΊΡ†ΠΈΠΈ, Π΅Π΅ инспСкторах ΠΈ Ρ€Π΅Ρ†Π΅Π½Π·Π΅Π½Ρ‚Π°Ρ… ΠΏΠ»Π°Π½ΠΎΠ²; ΠΊΠ°ΠΊ Π½Π° этапС рассмотрСния ΠΏΠ»Π°Π½Π°, Ρ‚Π°ΠΊ ΠΈ Π½Π° этапС ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΡΡ‚Π²Π° / инспСкции.

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ выбросов?

Наша систСма сочСтаСт Π² сСбС распрСдСлСниС поставщиков элСктроэнСргии для Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΡ€ΡƒΠ³Π° ΠΈ ΡΠ΅Ρ€ΠΈΡŽ «поисков» ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… eGrid АгСнтства ΠΏΠΎ ΠΎΡ…Ρ€Π°Π½Π΅ ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅ΠΉ срСды.Π—Π°Ρ‚Π΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊ экономии энСргии ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ.

Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ сокращСниС выбросов CO2 Π² Ρ‚ΠΎΠ½Π½Π°Ρ…?

ΠšΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ эквивалСнтов ΠΏΠ°Ρ€Π½ΠΈΠΊΠΎΠ²Ρ‹Ρ… Π³Π°Π·ΠΎΠ² АгСнтства ΠΏΠΎ ΠΎΡ…Ρ€Π°Π½Π΅ ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅ΠΉ срСды - Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ Π½Π°Ρ‡Π°Π»ΠΎ. Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²Π΅Π±-поиска ΠΏΠΎ Β«ΡΠΎΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΡŽ эквивалСнта углСкислого Π³Π°Π·Π°Β» Π½Π° Π²Π΅Π±-сайтС EPA Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π°Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ объяснСния ΠΈΠ· Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… источников. Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ сокращСния выбросов CO2 с автомобилями, снятыми с Π΄ΠΎΡ€ΠΎΠ³ΠΈ, ΠΈΠ½ΠΎΠ³Π΄Π° являСтся ΠΏΠ»ΠΎΡ…ΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ, Π½ΠΎ для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

ΠšΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ пособий ΠΏΠΎ ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄

БущСствуСт Π΄Π²Π΅ вСрсии ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π° ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… пособий: ΠΎΠ΄Π½Π° для Windows.

ΠΈ ΠΎΠ΄ΠΈΠ½ для MacOS.Π’

вСрсия для Windows скомпилирована с использованиСм компилятора Microsoft Visual C / C ++

(ВСрсия 2015 Π³.). ВСрсия для MacOS скомпилирована с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Metrowerks.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ CodeWarrior (вСрсия 9.0)

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π°

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСт фактичСскиС расчСты Π²Ρ‹Π³ΠΎΠ΄, хранится Π²

ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ oactobjs (для MacOS) ΠΈ oactobjs32 (для

Windows).ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Π΅ΡΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, сохранСнныС

компилятор, ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‰ΠΈΠΉ компилятору ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ; эти Ρ„Π°ΠΉΠ»Ρ‹ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚

ΠžΡ‚ Windows Π΄ΠΎ MacOS.

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ хранится

Π² ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ… anypiamacprojOSX (для MacOS) ΠΈ

anypia32 (для Windows). Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³

anypiab с исходным ΠΊΠΎΠ΄ΠΎΠΌ для создания консольного прилоТСния;

ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ расчСтный ΠΊΠΎΠ΄ Windows.(Π’ΠΈΠ΄Π΅Ρ‚ΡŒ

ΠŸΠ°ΠΊΠ΅Ρ‚Π½Π°Ρ вСрсия ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π° для

ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.)

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ расчСтный ΠΈ ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ MacOS

(ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ oactobjs ΠΈ anypiamacOSXproj ),

ΠΈ / ΠΈΠ»ΠΈ расчСтный ΠΊΠΎΠ΄ Windows ΠΈ ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ (ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ

oactobjs32 , anypia32 ΠΈ anypiab ). Π’

ΠΊΠΎΠ΄ для MacOS доступСн ΠΊΠ°ΠΊ.ситСкс Π°Ρ€Ρ…ΠΈΠ²Ρ‹. Π’

Код Windows доступСн Π² Π²ΠΈΠ΄Π΅ ΡΠ°ΠΌΠΎΡ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π·Π°Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ².

(исполняСмый Π½Π° машинС Windows) ΠΈΠ»ΠΈ Π² Π²ΠΈΠ΄Π΅ простых zip-Ρ„Π°ΠΉΠ»ΠΎΠ² (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚

Π±Ρ‹Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΌ Π² любой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ распаковки).

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° исходного ΠΊΠΎΠ΄Π° Windows

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Windows, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ элСмСнту Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… строк:

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° исходного ΠΊΠΎΠ΄Π° MacOS

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ MacOS, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… элСмСнтов:

Π’ 2006 Π³.2 ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… вСрсиях ΠΊΠΎΠ΄Π° ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Boost, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅

Π½Π°Π±ΠΎΡ€ бСсплатных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΠΎΠ±Ρ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹

Π² стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ C ++. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ наш исходный ΠΊΠΎΠ΄, Ρƒ вас Π±ΡƒΠ΄Π΅Ρ‚

ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠ·

www.boost.org.

На этом Π²Π΅Π±-сайтС Π΅ΡΡ‚ΡŒ инструкции ΠΏΠΎ установкС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π½Π° ваш ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.

Π’ ΠΊΠΎΠ΄Π΅ Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ 1.64.0 вСрсии Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Boost ΠΈ

ВСрсия для Mac ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ 1.33.1.

Π’ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… C ++ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π² нашСм исходном ΠΊΠΎΠ΄Π΅ ΠΈ

основной ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡƒΡ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π΅ вашСго Boost

установочный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³. Π’ΠΎΡ‚ Π³Π΄Π΅ Ρƒ нас установлСн буст Π² Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΌ

ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π² наш исходный ΠΊΠΎΠ΄:

На ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ с Windows Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ находятся Π² ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅

ΠΈΠ· oactobjs32 с ΠΈΠΌΠ΅Π½Π΅ΠΌ "boost_1_64_0".На Mac Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ находятся Π²

ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΉ oactobjs ΠΈ anypiamacprojOSX, с ΠΈΠΌΠ΅Π½Π΅ΠΌ "boost_1_33_1".

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ это Π±ΡƒΠ΄Π΅Ρ‚ сдСлано, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ наши ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ для создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ oactobjs (для MacOS)

oactobjs содСрТит 183 Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»Π° (с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .h) ΠΈ

Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° с исходным ΠΊΠΎΠ΄ΠΎΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, miscproj ,

содСрТит 38 Ρ„Π°ΠΉΠ»ΠΎΠ² (с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ.cpp) для классов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π½Π΅ привязаны

ΠΊ расчСтам пособия ΠΏΠΎ ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ. Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, piadataproj ,

содСрТит 149 Ρ„Π°ΠΉΠ»ΠΎΠ² (с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .cpp) для классов, связанных с расчСтами пособий.

Π’Ρ€Π΅Ρ‚ΠΈΠΉ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, piaoutproj , содСрТит 38 Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² (Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π½Π°

.h) ΠΈ 38 Ρ„Π°ΠΉΠ»ΠΎΠ² (Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π½Π° .cpp) для классов, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΡ… распСчатку

Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ расчСта пособия.Π§Π΅Ρ‚Π²Π΅Ρ€Ρ‚Ρ‹ΠΉ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, mac ,

содСрТит ΡˆΠ΅ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² (Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π½Π° .h) ΠΈ ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» (Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉΡΡ Π½Π° .cpp)

для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нСдоступны Π² MacOS ΠΈΠ»ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Ρ…

Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах. Код Π²ΠΎ всСх Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ… содСрТит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ

Π±Ρ‹Π» протСстирован с компилятором Metrowerks Π² срСдС MacOS.

ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ oactobjs32 (для Windows)

oactobjs32 содСрТит ΠΏΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² с исходными ΠΊΠΎΠ΄Π°ΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

ΠΊΠΎΠ΄.ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, windows , содСрТит 15 Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ…

Ρ„Π°ΠΉΠ»ΠΎΠ² (Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π½Π° .h), 6 Ρ„Π°ΠΉΠ»ΠΎΠ² C (Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π½Π° .c) ΠΈ 4 Ρ„Π°ΠΉΠ»ΠΎΠ² C ++ (Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π½Π°

.cpp) для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нСдоступны Π² Windows.

ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, ΠΈΠ»ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ…

ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы. Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Ρ€Π°Π·Π½ΠΎΠ΅ ,

содСрТит 31 Ρ„Π°ΠΉΠ» (Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉΡΡ Π½Π° .cpp) для классов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ связаны

Π² частности, для расчСтов пособий ΠΏΠΎ ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ.Π’Ρ€Π΅Ρ‚ΠΈΠΉ

ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ piadata , содСрТащий 152 Ρ„Π°ΠΉΠ»Π° (Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π°

.cpp) для классов, связанных с расчСтом пособий. Π§Π΅Ρ‚Π²Π΅Ρ€Ρ‚Ρ‹ΠΉ

ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, piaout , содСрТит 40 Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² (ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠ΅

Π² .h) ΠΈ 40 Ρ„Π°ΠΉΠ»ΠΎΠ² (Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π½Π° .cpp) для классов, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΡ…

распСчатка Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² расчСта пособия. ΠŸΡΡ‚Ρ‹ΠΉ

ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ , содСрТит 182 Ρ„Π°ΠΉΠ»Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ²

(ΠΊΠΎΠ½Ρ‡Π°ΡŽΡ‰ΠΈΠΉΡΡ Π½Π° .час). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΠΊΡ€ΠΎΠΌΠ΅ include

содСрТит Ρ„Π°ΠΉΠ» Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ (Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉΡΡ Π½Π° .sln) ΠΈ

Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉΡΡ Π½Π° .vcxproj), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Microsoft

компилятор вСрсии 2015 Π³ΠΎΠ΄Π° для создания ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Однако

ΠΊΠΎΠ΄ Π² Ρ‚Ρ€Π΅Ρ… ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ… ΠΊΡ€ΠΎΠΌΠ΅ Windows ΠΈΠΌΠ΅Π΅Ρ‚

Π±Ρ‹Π» скомпилирован Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС Linux с использованиСм

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ GNU C ++, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ linux Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ мСсто

ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° windows .

ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ anypiamacprojOSX

anypiamacprojOSX содСрТит ΠΏΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²: ΠΎΠ΄ΠΈΠ½ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ интСрфСйсом

ΠΊΠΎΠ΄ для MacOS вСрсии ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ расчСта пособий, ΠΎΠ΄ΠΈΠ½ с

Ρ„Π°ΠΉΠ»Ρ‹ рСсурсов, ΠΎΠ΄ΠΈΠ½ с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ для ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ сборки Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΎΠ΄ΠΈΠ½ для Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ

информация ΠΈ ΠΎΠ΄ΠΈΠ½ для Π²Ρ‹Π²ΠΎΠ΄Π°. ΠŸΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Source содСрТит 33 Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»Π°.

(ΠΊΠΎΠ½Ρ‡Π°ΡŽΡ‰ΠΈΠΉΡΡ Π½Π° .h), 31 Ρ„Π°ΠΉΠ» с функциями класса (Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π° .cp ΠΈΠ»ΠΈ .cpp) ΠΈ 1 Ρ„Π°ΠΉΠ»

с слуТСбными функциями (Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΠΈΡΡ Π½Π° .c). ΠŸΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Resources содСрТит

10 Ρ„Π°ΠΉΠ»ΠΎΠ² для Π·Π½Π°Ρ‡ΠΊΠΎΠ² ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΌΠ°ΠΊΠ΅Ρ‚Π΅. ΠŸΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Prefix

содСрТит 3 Ρ„Π°ΠΉΠ»Π° для ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ сборки Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ anypiamacData являСтся

пусто, Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ†Π΅Π»Π΅Π²ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ послС открытия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² CodeWarrior.ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ Output Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ исполняСмый Ρ„Π°ΠΉΠ», ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ построСна.

anypiab содСрТит Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ для создания консоли

ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (исполняСмый Ρ„Π°ΠΉΠ» ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» с

нСсколько случаСв ΠΈΠ»ΠΈ нСсколько ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ вычисляСт

Π²Ρ‹Π³ΠΎΠ΄Π° для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ случая (см. ΠŸΠ°ΠΊΠ΅Ρ‚

ВСрсия ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π°).Π•ΡΡ‚ΡŒ 3 Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»Π°

(Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉΡΡ Π½Π° .h), 3 Ρ„Π°ΠΉΠ»Π° с ΠΊΠΎΠ΄ΠΎΠΌ C ++ (Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉΡΡ Π½Π° .cpp),

Ρ„Π°ΠΉΠ» Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ (anypiab.sln) ΠΈ Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (anypiab.vcxproj)

для компиляции с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ компилятора Microsoft, вСрсия 2015 Π³., ΠΈ Π΄Π²Π°

Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… (anypiab.pia ΠΈ anypiac.dat). Π’

Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ссылаСтся Π½Π° Ρ‚Ρ€ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² oactobjs32

ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ( ΠΎΠΊΠ½Π° , Ρ€Π°Π·Π½ΠΎΠ΅ ΠΈ piadata ), поэтому

эти Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ компиляциСй Ρ„Π°ΠΉΠ»ΠΎΠ² Π²

этот ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³.БущСствуСт макрос с ΠΈΠΌΠ΅Π½Π΅ΠΌ DETAILS, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ

ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ anypiab ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄. Если

ΠΎΠ½ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½, чСтвСртая Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ( piaout ) Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ

сдСлано ΠΏΠ΅Ρ€Π΅Π΄ компиляциСй Ρ„Π°ΠΉΠ»ΠΎΠ² Π² этом ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅. Π’

Anypiab ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° скомпилирована Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ…

систСм, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Linux с использованиСм компилятора Gnu C ++ с

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° linux , Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‰Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ windows .

anypia32 содСрТит ΠΊΠΎΠ΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса для Windows

вСрсия ΠšΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π° ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с рСсурсом

Ρ„Π°ΠΉΠ»Ρ‹. ВсСго 40 Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² (с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .h), 39 Ρ„Π°ΠΉΠ»ΠΎΠ² с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ.

Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ класса (Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π° .cpp), Ρ„Π°ΠΉΠ» рСсурсов (anypia32.rc),

Ρ„Π°ΠΉΠ» Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ (anypia32.sln), Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

(Anypia32.vcxproj) ΠΈ Ρ„Π°ΠΉΠ» макроса справки (resource.hm). Π’

ΠŸΠΎΠ΄Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ res содСрТит 4 Ρ„Π°ΠΉΠ»Π° для Π·Π½Π°Ρ‡ΠΊΠΎΠ² ΠΈ растровых ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

РСшСниС ссылаСтся Π½Π° Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π²

oactobjs32 ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Boost, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Ρ‚Π΅

Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ созданы ΠΏΠ΅Ρ€Π΅Π΄ компиляциСй Ρ„Π°ΠΉΠ»ΠΎΠ² Π² этом

ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³.

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π² Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ распространяСтся, ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с компиляторами.

ΠΊΡ€ΠΎΠΌΠ΅ упомянутых Π²Ρ‹ΡˆΠ΅.Автор ΠΎΠΊΠ°ΠΆΠ΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΡƒΡŽ ΠΏΠΎΠΌΠΎΡ‰ΡŒ

любой, ΠΊΡ‚ΠΎ пытаСтся ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π΄Ρ€ΡƒΠ³ΠΈΠΌ компилятором ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ

опСрационная систСма.

ΠœΡ‹ прСдоставляСм описания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, доступных Π²

oactobjs32 Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² скомпилированном Ρ„Π°ΠΉΠ»Π΅ справки для Windows ΠΈ Π½Π°Π±ΠΎΡ€

HTML-Ρ„Π°ΠΉΠ»Ρ‹ Π² ситкс-Π°Ρ€Ρ…ΠΈΠ²Π΅ для Mac OSX.

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт:

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с измСнСниями настоящСго Π·Π°ΠΊΠΎΠ½Π°

ВСрсия ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΈΠ»ΠΈ консольной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ измСнСния.

ΠΈΠ· настоящСго Π·Π°ΠΊΠΎΠ½Π° ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ созданы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ LawChangeArray, созданного Π² строкС 69

ΠΈΠ· anypiabdoc.cpp (для консольной вСрсии) ΠΈΠ»ΠΈ строка 195 AnypiaDoc.cpp (для

интСрактивная вСрсия для Windows). ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· 40 пСрСчислСнных

измСнСния настоящСго Π·Π°ΠΊΠΎΠ½Π° фактичСски Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΌ

Π΅Ρ‰Π΅ Π½Π΅Ρ‚ ΠΊΠΎΠ΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ с

Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π·Π°ΠΊΠΎΠ½.

Π£ нас Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ обСспСчСния Π² Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π΅,

Ρ€Π°Π±ΠΎΡ‚Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° вСрсии C ++.Π€ΠΎΡ€Ρ‚Ρ€Π°Π½

исходный ΠΊΠΎΠ΄ структурирован Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ вСрсии C ++, Π½ΠΎ Π½Π΅ Π±Ρ‹Π»

обновлялся нСсколько Π»Π΅Ρ‚. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

скомпилирован для MS-DOS, доступСн Π² ΡΠ°ΠΌΠΎΡ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌΡΡ Π°Ρ€Ρ…ΠΈΠ²Π΅.

sourcef.exe

(384 000 Π±Π°ΠΉΡ‚) ΠΈΠ»ΠΈ Π² простом Π·Π°Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅,

sourcef.zip

(358 085 Π±Π°ΠΉΡ‚).

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° компилируСтся Π² Windows 98 ΠΈΠ»ΠΈ NT с использованиСм Compaq Fortran.Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅

ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² систСмС Unix

ΠΈΠ»ΠΈ Π½Π° мэйнфрСймС IBM. Однако Π² скомпилированной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ…

возмоТности ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ экрана вСрсии C ++; поэтому ΠΌΡ‹ распространяСм

ВСрсия C ++, Π° Π½Π΅ вСрсия Fortran, Π² качСствС ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π°.

Если Ρƒ вас Π΅ΡΡ‚ΡŒ вопросы ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π°, посСтитС наш

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ Π² Π‘Π»ΡƒΠΆΠ±Ρƒ ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ обСспСчСния

страницу, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ с Π½Π°ΠΌΠΈ ΡΠ²ΡΠ·Π°Ρ‚ΡŒΡΡ.НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² качСствС Ρ‚Π΅ΠΌΡ‹ Β«ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Β»

Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ Π·Π½Π°Π»ΠΈ, ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Ρƒ относится ваш вопрос ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ.

.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *