ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° β ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡ
Π‘ΠΈ ΡΠΎΡΠ΅ΡΠ°Π΅Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΠΈ ΠΌΠΎΡΠ½ΠΎΡΡΡ Π² ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠ°Π»ΠΎΠΌ ΠΏΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡ ΡΠ·ΡΠΊΠ΅. Π₯ΠΎΡΡ Π‘ΠΈ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΠ·ΡΠΊΠ°, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΡ Π²Π²ΠΎΠ΄-Π²ΡΠ²ΠΎΠ΄, ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ, ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΉ Ρ ΡΠΊΡΠ°Π½ΠΎΠΌ ΠΈΠ»ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ, ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Π‘ΠΈ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π±ΡΡΡΡΡ. Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° β ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΠΠΠΠ‘Π’ΠΠ Π‘Π’ΠΠ ΠΠΠ ΠΠΠΠΠΠΠΠ― Π ΠΠ‘Π‘ΠΠΠ‘ΠΠΠ Π€ΠΠΠΠ ΠΠ¦ΠΠ ΠΡΡΠ½ΡΠΊΠΈΠΉ ΠΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΡΠΉ Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠΉ Π£Π½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ ΠΠ°ΡΠ΅Π΄ΡΠ° «ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠ° ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅»
ΠΡΡΡΠΎΠ²Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ
«ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° — ΠΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡ»
ΠΡΠ΅Π³ΠΎ Π»ΠΈΡΡΠΎΠ² Π‘ΡΡΠ΄Π΅Π½Ρ Π³ΡΡΠΏΠΏΡ 00-ΠΠ2
ΠΠΎΠ»ΡΠ΄ΠΈΠ½ Π.Π.
ΠΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ ΠΠ·ΡΠ°ΠΈΠ»Π΅Π² Π.Π―.
ΠΡΡΠ½ΡΠΊ
- Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ 2
- ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ 3
- ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ 4
- ΠΠ΅ΡΠΎΠ΄ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ 4
- ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ 5
- Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ 6
- ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ 6
- Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΡ 7
- Π―Π·ΡΠΊ ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ Π½Π°Ρ ΡΠΏΠΎΡΠΎΠ± ΠΌΡΡΠ»Π΅Π½ΠΈΡ
- ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΎ ΡΠ΅ΠΌ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΌΡΡΠ»ΠΈΡΡ.
- Π.Π. ΠΠΎΡΡ
Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ Π²ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π²Π½Π΅Π΄ΡΡΡΡΡΡ Π² Π½Π°ΡΡ ΠΆΠΈΠ·Π½Ρ. ΠΠ»Ρ ΠΈΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ ΡΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π½Π° ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ Π‘ΠΈ.
Π‘ΠΈ — ΡΡΠΎ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Ρ ΠΎΡΠΎΡΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΡΠ²ΠΎΠ΅ΠΉ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΡ, ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΠ½ΠΎΡΡΡΡ, ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡΡ. Π£ΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π‘ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Ρ ΠΎΡΠΎΡΠ΅Π΅ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΡΡΠΈ Π»ΡΠ±ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π‘ΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π±ΡΡΡΡΡΠ΅ ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π½Π° Π‘ΠΈ, ΡΡΠ°Π²Π½ΠΈΠΌΡ ΠΏΠΎ ΡΠΊΠΎΡΠΎΡΡΠΈ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΌΠΈ Π½Π° ΡΠ·ΡΠΊΠ΅ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°. ΠΡΠΈ ΡΡΠΎΠΌ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡΡ Π»ΡΡΡΡΡ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡΡ ΠΈ ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡ.
Π‘ΠΈ ΡΠΎΡΠ΅ΡΠ°Π΅Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΠΈ ΠΌΠΎΡΠ½ΠΎΡΡΡ Π² ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠ°Π»ΠΎΠΌ ΠΏΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡ ΡΠ·ΡΠΊΠ΅. Π₯ΠΎΡΡ Π‘ΠΈ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΠ·ΡΠΊΠ°, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΡ Π²Π²ΠΎΠ΄-Π²ΡΠ²ΠΎΠ΄, ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ, ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΉ Ρ ΡΠΊΡΠ°Π½ΠΎΠΌ ΠΈΠ»ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ, ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Π‘ΠΈ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π±ΡΡΡΡΡ.
ΠΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ·ΡΠΊΠΎΠ²ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΎΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°. Π‘ΡΡΠΎΠ³ΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ·ΡΠΊΠ° Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌ ΠΎΡ Π»ΡΠ±ΡΡ Π΄Π΅ΡΠ°Π»Π΅ΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈΠ»ΠΈ ΠΌΠ°ΡΠΈΠ½Ρ. Π ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΠΌΠΎΠ³ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΡΠΎΠ±Ρ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΌΠ°ΡΠΈΠ½Ρ.
Π‘ΠΈ — Π³ΠΈΠ±ΠΊΠΈΠΉ ΡΠ·ΡΠΊ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ ΡΠ°ΠΌΡΠ΅ ΡΠ°Π·Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π‘ΠΈ Π½Π°Π»Π°Π³Π°Π΅Ρ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π² ΡΠ°ΠΊΠΈΡ , Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π΅ΠΉΡΡΠ²ΠΈΡΡ , ΠΊΠ°ΠΊ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ². ΠΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²ΠΎΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Ρ ΠΎΡΠΎΡΠΎ Π·Π½Π°ΡΡ ΡΠ·ΡΠΊ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ
ΠΠ°Π΄Π°ΡΠ° ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ — ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΠΈΡΠ°ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΡΠΎΡΡΠΎΡΡΠΈΠ΅ ΠΈΠ· ΡΠΈΡΠ΅Π», ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ Π΄ΠΎ 29 ΡΠΈΡΡ ΠΎΡ 0 Π΄ΠΎ 9, ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠ΅ ΡΠΈΡΠ»Π° pi=3,14 159 265 359 ΠΈ e=2.718 281 828 459, ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΈΠ½ΡΡ (sin), ΠΊΠΎΡΠΈΠ½ΡΡ (cos), Π°ΡΠΊΡΠΈΠ½ΡΡ (asin), Π°ΡΠΊΠΊΠΎΡΠΈΠ½ΡΡ (acos) ΠΈ Π½Π°ΡΡΡΠ°Π»ΡΠ½ΡΠΉ Π»ΠΎΠ³Π°ΡΠΈΡΠΌ (ln).
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ, Π° ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΡΠ½ΠΊΡ «ΠΠΎΠΌΠΎΡΡ» Π΄Π»Ρ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠ»Π΅Π½ΠΈΡ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΡΠ·ΡΠΊΠ΅ C Π² ΡΡΠ΅Π΄Π΅ Borland C++ V. 3.1
ΠΠ΅ΡΠΎΠ΄ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ
ΠΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π² ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π·Π°Π΄Π°ΡΡ, Ρ ΠΏΡΠΈΡΠ΅Π» ΠΊ Π²ΡΠ²ΠΎΠ΄Ρ, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ±ΠΎΡΠ°. ΠΡΠΈ ΡΠ°Π·Π±ΠΎΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° ΡΠΎΡΡΠ°Π²Π½ΡΠ΅ ΡΠ°ΡΡΠΈ — ΡΠ΅ΡΠΌΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ°ΠΊΡΠΎΡΠΎΠ². Π€Π°ΠΊΡΠΎΡΠ°ΠΌΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠΈΡΠ»Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΡΠΎΡΡΠΎΡΡΠ΅Π³ΠΎ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ ΡΠ°ΠΊΡΠΎΡΠΎΠ². Π’Π΅ΡΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΊΡΠΎΡΠΎΠ². ΠΠΎΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎ, Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π²Π²Π΅Π΄Π΅Π½Π½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ», ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΠΈΡ Π² ΡΠ°ΠΊΡΠΎΡΡ, Π° Π³ΠΎΡΠΎΠ²ΡΠ΅ ΡΠ°ΠΊΡΠΎΡΡ Π² ΡΠ΅ΡΠΌΡ, ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ΄ΡΡΠ΅ΡΠ° ΠΊΠΎΡΠΎΡΡΡ Π²ΡΠ΄Π°Π΅ΡΡΡ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ. ΠΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡΡΡ ΡΡΡΠΎΠ³ΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΡΠΎ Π΅ΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ. Π‘Π½Π°ΡΠ°Π»Π°, Π΅ΡΠ»ΠΈ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. Π£ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ: ΡΠ½Π°ΡΠ°Π»Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π²ΠΎΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΡΠ΅ΠΏΠ΅Π½Ρ, Π·Π°ΡΠ΅ΠΌ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π΄Π΅Π»Π΅Π½ΠΈΠ΅, ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²ΡΡΠΈΡΠ°Π½ΠΈΠ΅. ΠΡΠ»ΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΊΠΎΠ±ΠΊΠΈ, ΡΠΎ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ ΡΡΠΎΠ²Π½Ρ.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΠ°Π½Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΡΠΈΡΠ»ΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π² Π°Π»Π³ΠΎΡΠΈΡΠΌΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π½Π° Π½Π΅Π²Π΅ΡΠ½ΠΎ Π²Π²Π΅Π΄Π΅Π½Π½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΈ ΠΎΡΠΈΠ±ΠΎΡΠ½ΠΎ Π½Π°ΠΆΠ°ΡΡΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ. Π’Π°ΠΊ ΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠ΅ΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΡΠΊΡΡΡΡΡ ΠΈ Π·Π°ΠΊΡΡΡΡΡ ΡΠΊΠΎΠ±ΠΎΠΊ. ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ: Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ get_token (), Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π²Π²ΠΎΠ΄ΠΈΠΌΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΎΠ½ Π²ΡΡ ΠΎΠ΄ΠΎΠΌ, Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ ΠΎΡΠ²Π΅ΡΠ°, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ «+», «-», «*», «/», «^», ΡΠΈΡΡΠΎΠΉ ΠΈΠ»ΠΈ Π±ΡΠΊΠ²ΠΎΠΉ, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΡΡΠΈΡ ΡΠ»ΡΡΠ°Π΅Π² ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΠΉ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ ΡΠ°Π·Π±ΠΎΡ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ.
token_value get_token ()
{
char ch;
do
{
if ((ch = getch ()) = = ESC) return curr_tok = END;
} while (ch = = ' ');
switch (ch)
{
case ';':
putch (ch);
ps = 'x0';
return curr_tok = PRINT;
case 'r':
ps = 'x0';
gotoxy (1,wherey ()+1);
return curr_tok = NEXT;
case '*': case '/': case '+': case '-':
case '(': case ')': case '=': case '^':
dupl_oper_verify (ps, ch);
return curr_tok = ch;
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9': case '.':
ps = 'x0';
ungetch (ch);
get_number ();
return curr_tok = NUMBER;
default:
ps = 'x0';
if (isalpha (ch))
{
ungetch (ch);
get_name ();
return curr_tok = NAME;
}
error («Invalid symbol»);
return curr_tok = PRINT;
}
}
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ΅ΠΉ ΠΏΡΠΈ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠΈ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΡΠΎ Π΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²ΠΎΠΏΠΎΠ»Π°Π³Π°ΡΡΠ΅ΠΉ ΠΏΡΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΈ ΠΎΡΠ²Π΅ΡΠ°.
Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° IBM PC/XT Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ MS-DOS. Π ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π΄Π»Ρ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠ»Π΅Π½ΠΈΡ Ρ ΠΠΎΠΌΠΎΡΡΡ. ΠΠ±ΡΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ 640 ΠΠ±Π°ΠΉΡ. ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ΅ΠΊΡΡΠΈΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ Cal_kur.exe ΠΈ Π²ΡΠ·Π²Π°ΡΡ Π΅Ρ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ
Π€ΡΠ½ΠΊΡΠΈΡ get_token () — ΡΡΠ½ΠΊΡΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ°Π·Π±ΠΎΡΠ° Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ.
Π€ΡΠ½ΠΊΡΠΈΡ get_number () — ΡΡΠ½ΠΊΡΠΈΡ Π²Π²ΠΎΠ΄Π° ΡΠΈΡΠ»Π°.
Π€ΡΠ½ΠΊΡΠΈΡ get_name () — ΡΡΠ½ΠΊΡΠΈΡ Π²Π²ΠΎΠ΄Π° ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ.
Π€ΡΠ½ΠΊΡΠΈΡ expr () — ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ.
Π€ΡΠ½ΠΊΡΠΈΡ term () — ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΡΠ»Π°Π³Π°Π΅ΠΌΠΎΠ³ΠΎ.
Π€ΡΠ½ΠΊΡΠΈΡ prim () — ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ.
Π€ΡΠ½ΠΊΡΠΈΡ function_value () — ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΡΠ²ΠΎΠ΄ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅
Π€ΡΠ½ΠΊΡΠΈΡ error () — ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ²ΠΎΠ΄ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅.
Π€ΡΠ½ΠΊΡΠΈΡ term_sym () — ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ».
Π€ΡΠ½ΠΊΡΠΈΡ void back_space () — ΡΡΠ½ΠΊΡΠΈΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π²Π²ΠΎΠ΄Π° ΠΊΠ»Π°Π²ΠΈΡΠ΅ΠΉ BACKSPACE.
Π€ΡΠ½ΠΊΡΠΈΡ dupl_oper_verify () — ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π·Π½Π°ΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
Π€ΡΠ½ΠΊΡΠΈΡ menu () — ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΠ΅Ρ ΠΌΠ΅Π½Ρ.
Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΡ
1. Π. Π. Π¨ΠΎΠ»ΠΌΠΎΠ². Π―Π·ΡΠΊ Π‘ΠΈ. 1988 Π³.
2. Π. Π¨ΠΈΠ»Π΄Ρ. C Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ². 1989 Π³.
3. Π. Π. ΠΠ΅ΡΠ½ΠΈΠ³Π°Π½, Π. Π. Π ΠΈΡΠΈ. Π―Π·ΡΠΊ Π‘ΠΈ. 1995 Π³.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
#include
#include
#include
#include
#include
#include
#include
#define PI 3.14 159 265 359
#define E 2.718 281 828 459
#define ENTER 13
#define ESC 27
#define BACKSPACE 'b'
// ΠΠ°ΡΡΠΈΠ², ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΡΠΌ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌ
enum token_value
NAME, NUMBER, END,
PRINT=';', NEXT='r',
PLUS='+', MINUS='-', MUL='*', DIV='/', POWER='^',
ASSIGN='=', LP='(', RP=')';
token_value curr_tok;
// Π§ΠΈΡΠ»Π΅Π½Π½Π°Ρ Π²Π΅Π»ΠΈΡΠΈΠ½Π°
double number_value;
// Π‘ΡΡΠΎΠΊΠ° Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ
char *func_name;
// ΠΠΎΠΌΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠ»ΠΎΠ²Π°ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ
int function_number;
// Π‘Π»ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ
char funcs[43] = «sin cos ln asin acos e pi «;
int sch_ch = 0;
// ΠΡΠ΅Π΄ΡΠ΄ΡΡΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ
char ps = 'x0';
// ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π΅Ρ Π²Π°ΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ
void *Malloc (size_t size);
// Π€ΡΠ½ΠΊΡΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ°Π·Π±ΠΎΡΠ° Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
token_value get_token (void);
// ΠΠ²ΠΎΠ΄ ΡΠΈΡΠ»Π°
void get_number (void);
// ΠΠ²ΠΎΠ΄ ΠΈΠΌΠ΅Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ
void get_name (void);
// ΠΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
double expr (void);
// ΠΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΡΠ»Π°Π³Π°Π΅ΠΌΠΎΠ³ΠΎ
double term (void);
// ΠΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
double prim (void);
// ΠΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ
double function_value (void);
// ΠΡΠ²ΠΎΠ΄ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅
double error (char *);
// ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ»
int term_sym (char);
// ΠΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΊΠ»Π°Π²ΠΈΡΠ΅ΠΉ BACKSPACE
void back_space (int *);
// ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π·Π½Π°ΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ
void dupl_oper_verify (char, char);
// ΠΠΊΠ½ΠΎ Π²ΡΠ²ΠΎΠ΄Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ
void message ();
// Π Π°ΠΌΠΊΠ° ΠΎΠΊΠ½Π°
void ramka ();
// ΠΠΊΠ½ΠΎ Π²Π²ΠΎΠ΄Π° Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
void screen_input ();
// ΠΠΊΠ½ΠΎ Π²Π²ΠΎΠ΄Π° ΠΎΡΠ²Π΅ΡΠ°
void screen_output ();
// ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ
void info ();
// ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ΅Π½Ρ
void menu (int n);
// ΠΡΠ·ΡΠΊΠ° ΠΏΡΠΈ Π²ΡΡ ΠΎΠ΄Π΅
void sound_exit ();
//ΠΠ²Π° Π½Π° Π΄Π²Π°
void dva_x_dva ();
/*===============================ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ°ΡΡΡ============================*/ void main ()
FILE *help, *about; int m=1,loop=1,i, pr;
double x;
char s[255], key = -1,*put,*empty_str;
clrscr ();
textbackground (0);
textcolor (15);
while (loop)
clrscr ();
menu (m);
do
key = getch ();
if (key==72 && m>1)
m—;
menu (m);
sound (220);
delay (50);
nosound ();
;
if (key==80 && m<4)
m++;
menu (m);
sound (220);
delay (50);
nosound ();
;
while (key≠13);
switch (m)
case 1:
clrscr (); if ((help=fopen (put="d:\univer\langs\bc\work\Help.txt" ," r"))==NULL)
printf («Imposible open file %s!n», put);
getch ();
break;
return;
i=0;
while (!feof (help))
putchar (getc (help));
i++;
_setcursortype (_NOCURSOR);
getch ();
break;
case 2:
clrscr ();
ramka ();
screen_input ();
screen_output ();
message ();
info ();
dva_x_dva ();
_setcursortype (_NORMALCURSOR);
textcolor (15);
gotoxy (6,4);
func_name = (char*) Malloc (5);
while (1)
get_token ();
if (curr_tok == END) break;
if (curr_tok ≠ PRINT && curr_tok ≠ NEXT)
pr=printf («%fn», expr ());
if (pr≠0)
gotoxy (6,4);
printf (««
" «);
gotoxy (6,4);
free (func_name);
break;
case 3:
clrscr (); if ((about=fopen (put="d:\univer\langs\bc\work\Credits.txt" ," r"))==NULL)
printf («Imposible open file %s!n», put);
getch ();
break;
return;
i=0;
while (!feof (about))
putchar (getc (about));
i++;
_setcursortype (_NOCURSOR);
getch ();
break;
case 4:
sound_exit ();
loop = 0;break;
default:
continue;
/*=========================ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π΅Ρ Π²Π°ΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ========================*/
void *Malloc (size_t size)
void *p;
if ((p=malloc (size))==NULL)
printf («No memoryn»);
exit (1);
return p;
/*==================Π€ΡΠ½ΠΊΡΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ°Π·Π±ΠΎΡΠ° Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ==============*/
token_value get_token ()
char ch;
do
if ((ch = getch ()) == ESC) return curr_tok = END;
while (ch == ' ');
switch (ch)
case ';':
putch (ch);
ps = 'x0';
return curr_tok = PRINT;
case 'r':
ps = 'x0';
gotoxy (1,wherey ()+1);
return curr_tok = NEXT;
case '*': case '/': case '+': case '-':
case '(': case ')': case '=': case '^':
dupl_oper_verify (ps, ch);
return curr_tok = ch;
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9': case '.':
ps = 'x0';
ungetch (ch);
get_number ();
return curr_tok = NUMBER;
default:
ps = 'x0';
if (isalpha (ch))
ungetch (ch);
get_name ();
return curr_tok = NAME;
error («Invalid symbol»);
return curr_tok = PRINT;
/*=====================ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π·Π½Π°ΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ================*/
void dupl_oper_verify (char ps, char ch)
if (ps=='*' || ps=='/' || ps=='+' || ps=='-' || ps=='^')
error («Operation is duplicated»);
ch = ps;
else
putch (ch);
if (ps=='*' || ps=='/' || ps=='+' || ps=='-' || ps=='^') ps = ch;
/*====================================ΠΠ²ΠΎΠ΄ ΡΠΈΡΠ»Π°===========================*/
void get_number ()
char ch, dec_flag=0;
char *anum;
int i=0;
anum = (char*) Malloc (32);
do
ch=getch ();
if (isdigit (ch))
putch (ch);
*(anum+i) = ch;
i++;
else
if (ch == '.')
if (dec_flag) error («Second decimal point is forbidden»);
else
dec_flag = 1;
putch (ch);
*(anum+i) = ch;
i++;
else
if (ch == BACKSPACE) back_space (&i);
else
if (!term_sym (ch))
error («Invalid symbol»);
ch = BACKSPACE;
while (i < 31 && (isdigit (ch) || ch == '.' || ch == BACKSPACE));
anum[i] = 'x0';
number_value = _atold (anum);
ungetch (ch);
free (anum);
/*=====================ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ»=====================*/
int term_sym (char ch)
if (ch == '*' || ch == '/' || ch == '+' || ch == '-' ||
ch == '(' || ch == ')' || ch == '=' || ch == '^' ||
ch == ESC || ch == ';' || ch == 'r') return 1;
else return 0;
/*================ΠΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΊΠ»Π°Π²ΠΈΡΠ΅ΠΉ BACKSPACE====================*/
void back_space (int *i)
if (i)
gotoxy (wherex ()-1,wherey ());
putch (' ');
gotoxy (wherex ()-1,wherey ());
i—;
/*========================ΠΠ²ΠΎΠ΄ ΠΈΠΌΠ΅Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ==============================*/
void get_name ()
char ch;
int i=0, j;
do
ch = getch ();
if (isalnum (ch))
putch (ch);
*(func_name+i) = ch;
i++;
for (j = 0; j < 42 && strncmp (funcs+j, func_name, i); j += 6);
if (j >= 42)
error («Invalid function»);
i—;
else
if (ch == BACKSPACE) back_space (&i);
else
if (!term_sym (ch))
error («Invalid symbol»);
ch = BACKSPACE;
while (i < 5 && (isalnum (ch) || ch == BACKSPACE));
*(func_name+i) = 'x0';
function_number = j/6;
ungetch (ch);
/*=====================ΠΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ========================*/
double expr ()
double left = term ();
while (1)
switch (curr_tok)
case PLUS:
get_token ();
left += term ();
break;
case MINUS:
get_token ();
left -= term ();
break;
default:
if (curr_tok ≠ RP)
// gotoxy (31,8);
gotoxy (23,8);
printf (««);
gotoxy (23,8);
return left;
/*===========================ΠΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΡΠ»Π°Π³Π°Π΅ΠΌΠΎΠ³ΠΎ=========================*/
double term ()
double left = prim ();
while (1)
switch (curr_tok)
case MUL:
get_token ();
left *= term ();
break;
case DIV:
get_token ();
float d = prim ();
if (!d) return error («Division by zero»);
left /= d;
break;
case POWER:
get_token ();
left = pow (left, term ());
default:
return left;
/*==================ΠΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ===================*/
double prim ()
switch (curr_tok)
case NUMBER:
get_token ();
return number_value;
case NAME:
get_token ();
return function_value ();
case MINUS:
get_token ();
returnprim ();
case LP:
get_token ();
double e = expr ();
if (curr_tok ≠ RP) return error («Rigth parentsis expected»);
get_token ();
return e;
case END:
return 1;
default:
return number_value;
/*=====================ΠΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ========================*/
double function_value ()
switch (function_number)
case 0:
return sin (expr ());
case 1:
return cos (expr ());
case 2:
return log (expr ());
case 3:
return asin (expr ());
case 4:
return acos (expr ());
case 5:
return E;
case 6:
return PI;
/*========================ΠΡΠ²ΠΎΠ΄ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅========================*/
double error (char *s)
int sx, sy;
char *empty_str, *err_message;
err_message = (char*) Malloc (strlen (s)+29);
strcpy (err_message, s);
strcat (err_message,". Press any key to continue!");
empty_str = (char*) Malloc (strlen (s)+29);
memset (empty_str,' ', strlen (s)+28);
empty_str[strlen (s)+28] = 'x0';
sx = wherex ();
sy = wherey ();
gotoxy (16,22);
textcolor (10);
cprintf («%s», err_message);
sound (440);
delay (550);
nosound ();
getch ();
gotoxy (16,22);
cprintf («%s», empty_str);
gotoxy (sx, sy);
textcolor (15);
free (err_message);
free (empty_str);
/*==============================ΠΠΊΠ½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ============================*/
void message ()
textcolor (RED);
gotoxy (15,21);
cprintf («-»);
for (int x=16;x<70;x++)
cprintf («-»);
cprintf («-»);
gotoxy (15,22);
cprintf («|»);
gotoxy (70,22);
cprintf («|»);
gotoxy (15,23);
cprintf («-»);
for (int x1=16;x1<70;x1++)
cprintf («-»);
cprintf («-»);
gotoxy (3,22);
cprintf («Message:»);
/*==================================Π Π°ΠΌΠΊΠ°=================================*/
void ramka ()
textcolor (10);
cprintf («=»);
for (int x=2;x<80;x++)
cprintf («=»);
cprintf («=»);
for (int y=2;y<24;y++)
cprintf («|nb»);
cprintf («=»);
for (int x1=2;x1<80;x1++)
cprintf («=»);
cprintf («=»);
gotoxy (80,2);
for (int y1=2;y1<24;y1++)
gotoxy (80,y1);
cprintf («|»);
/*=================================ΠΠΊΠ½ΠΎ Π²Π²ΠΎΠ΄Π°=============================*/
void screen_input ()
textcolor (10);
gotoxy (5,3);
cprintf («-»);
for (int x=6;x<76;x++)
cprintf («-»);
cprintf («-»);
gotoxy (5,4);
cprintf («|»);
gotoxy (76,4);
cprintf («|»);
gotoxy (5,5);
cprintf («-»);
for (int x1=6;x1<76;x1++)
cprintf («-»);
cprintf («-»);
textcolor (15);
gotoxy (35,2);
cprintf («Input expression»);
/*=================================ΠΠΊΠ½ΠΎ Π²ΡΠ²ΠΎΠ΄Π°=============================*/
void screen_output ()
textcolor (10);
gotoxy (22,7);
cprintf («-»);
for (int x=22;x<58;x++)
cprintf («-»);
cprintf («-»);
gotoxy (22,8);
cprintf («|»);
gotoxy (59,8);
cprintf («|»);
gotoxy (22,9);
cprintf («-»);
for (int x1=22;x1<58;x1++)
cprintf («-»);
cprintf («-»);
textcolor (15);
gotoxy (39,6);
cprintf («Answer»);
/*================================ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ===============================*/
void info ()
textcolor (10);
gotoxy (13,11);
cprintf («Input expression, used ±*/()^ sin, cos, asin, acos, ln, pi, e»);
gotoxy (22,12);
cprintf («Enter; = output answer Esc exit»);
/*====================================ΠΠ΅Π½Ρ================================*/
void menu (int n)
clrscr ();
textcolor (3); gotoxy (31,9);
cprintf («Program calculatorn»);
textcolor (15);
if (n == 1) textcolor (12); else
textcolor (15);
gotoxy (37,12);
cprintf («Helpn»);
if (n == 2) textcolor (12); else
textcolor (15);
gotoxy (34,14);
cprintf («Calculatorn»);
if (n == 3) textcolor (12); else
textcolor (15);
gotoxy (33,16);
cprintf («About authorn»);
if (n == 4) textcolor (12); else
textcolor (15);
gotoxy (37,18);
cprintf («Exitn»);
_setcursortype (_NOCURSOR);
/*===========================ΠΡΠ·ΡΠΊΠ° ΠΏΡΠΈ Π²ΡΡ ΠΎΠ΄Π΅===========================*/
void sound_exit ()
sound (659.3);
delay (310);
sound (784);
delay (310);
sound (721.65);
delay (310);
sound (659.3);
delay (310);
sound (495.9);
delay (310);
sound (587.3);
delay (310);
sound (513.65);
delay (310);
sound (440);
delay (310);
nosound ();
/*=================================ΠΠ²Π° Π½Π° Π΄Π²Π°=============================*/
void dva_x_dva ()
textcolor (1);
gotoxy (32,15);
cprintf («—— ——»);
gotoxy (34,16);
cprintf («— —- — ——»);
gotoxy (32,17);
cprintf («— - - — ——»);
gotoxy (32,18);
cprintf («—— ——»);