ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΠΎΠΏ: ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ / Π₯Π°Π±Ρ
ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ. Π£ΡΠΎΠΊ 5 ΠΊΡΡΡΠ° «ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Python»
ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ β ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ°Π·Π½ΡΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ , Ρ. Π΅. ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΡ ΠΊ ΡΠ°Π·Π½ΡΠΌ ΠΊΠ»Π°ΡΡΠ°ΠΌ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ «ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎΠΉ ΠΆΠ΅» ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Π°, Π΅Π³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠ»Π°ΡΡΠ°. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΌΠΎΠ³ΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ. ΠΠΎΡΡΠΎΠΌΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΏΠΎΠ΄ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠΎΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΎΡΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ»ΠΎΠ²Π° β ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π²Π° ΡΠ°Π·Π½ΡΡ ΠΊΠ»Π°ΡΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΌΠ΅ΡΠΎΠ΄ total, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΡΠ°Π·Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. Π’Π°ΠΊ Π² ΠΊΠ»Π°ΡΡΠ΅ T1 β ΡΡΠΎ ΠΏΡΠΈΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ 10 ΠΊ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, Π² T2 β ΠΏΠΎΠ΄ΡΡΠ΅Ρ Π΄Π»ΠΈΠ½Ρ ΡΡΡΠΎΠΊΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ total, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠ΅ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ.
class T1: def __init__(self): self.n = 10 Β def total(self, a): return self.n + int(a) Β Β class T2: def __init__(self): self.string = 'Hi' Β def total(self, a): return len(self.string + str(a)) Β Β t1 = T1() t2 = T2() Β print(t1.total(35)) # ΠΡΠ²ΠΎΠ΄: 45 print(t2.total(35)) # ΠΡΠ²ΠΎΠ΄: 4
Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΡΠΎΠΊΠ΅ ΠΌΡ ΡΠΆΠ΅ Π½Π°Π±Π»ΡΠ΄Π°Π»ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ²ΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ __init__() ΠΈΠ»ΠΈ square() ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ Π΄ΡΡΠ³ΠΎΠΉ. ΠΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² square() Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ, ΠΈ ΡΡΠΎ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ, Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊ ΡΠΎΠΌΡ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΌΡ ΠΊΠ»Π°ΡΡΡ.
ΠΠ΄Π½Π°ΠΊΠΎ ΠΊΠ»Π°ΡΡΡ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ²ΡΠ·Π°Π½Π½Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΠΠ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ. ΠΠ»Π°ΡΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π΅ ΡΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ, Π½ΠΎ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΊΠ°ΠΊ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅.
ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ Π΅Π΄ΠΈΠ½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°Π·Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΌΠΎΠ³ΡΡ ΠΏΡΠ΅Π΄ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π²ΡΠ²ΠΎΠ΄Π° ΡΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° Π²ΡΠ²ΠΎΠ΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π΅ Π·Π°ΠΏΡΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ½ΡΠΌ.
Π Python ΡΡΠ΅Π΄ΠΈ ΠΏΡΠΎΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ Π½Π°Ρ ΠΎΠ΄ΠΈΡ ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΌΠ΅ΡΠΎΠ΄Π°Ρ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ². ΠΠ²Π° ΠΈΠ· Π½ΠΈΡ ΠΌΡ ΡΠΆΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ. ΠΡΠΎ __init__() ΠΈ __del__(), ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈ Π΅Π³ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ. ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΈΠΏΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π΅Π³ΠΎ ΡΡΠ°ΡΡΠΈΠ΅ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ. Π ΡΠ»ΡΡΠ°Π΅ __init()__ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ΅ΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ° Π½Π° Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π΅, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ str(), ΠΊΠΎΡΠΎΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ print().
ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, Π° ΠΏΠΎΡΠΎΠΌ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΡΠ΅ Π²ΡΠ²Π΅ΡΡΠΈ Π΅Π³ΠΎ Π½Π° ΡΠΊΡΠ°Π½, ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠ»Π°ΡΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈ Π΅Π³ΠΎ Π°Π΄ΡΠ΅Ρ Π² ΠΏΠ°ΠΌΡΡΠΈ. Π’Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ str() ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΊΠ»Π°ΡΡΠ°ΠΌ Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π²Π΅ΡΡ Π½Π΅ΠΌ ΡΡΠΎΠ²Π½Π΅ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ, Π³Π΄Π΅-ΡΠΎ Π² ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ΅, ΠΎΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π΅ΡΠ²Π½ΠΎ Π½Π°ΡΠ»Π΅Π΄ΡΡΡΡΡ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅.
class A: def __init__(self, v1, v2): self.field1 = v1 self.field2 = v2 Β Β a = A(3, 4) b = str(a) print(a) print(b)
ΠΡΠ²ΠΎΠ΄:
<__main__.A object at 0x7f251ac2f8d0> <__main__.A object at 0x7f251ac2f8d0>
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ b
, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ print() Π²ΡΠ·ΡΠ²Π°Π΅Ρ str() Π½Π΅ΡΠ²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²ΡΠ²ΠΎΠ΄ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΎΠ±ΠΎΠΈΡ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ².
ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΌΡ Ρ ΠΎΡΠΈΠΌ, ΡΡΠΎΠ±Ρ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ print(), Π²ΡΠ²ΠΎΠ΄ΠΈΠ»Π°ΡΡ ΠΊΠ°ΠΊΠ°Ρ-Π½ΠΈΠ±ΡΠ΄Ρ Π΄ΡΡΠ³Π°Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΠΎ Π² ΠΊΠ»Π°ΡΡ Π½Π°Π΄ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ __str__(). ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΡΡΠΎΠΊΡ, ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ str(), Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΉ print():
<a name="__DdeLink__7352_2806398899"></a>class A: def __init__(self, v1, v2): self.field1 = v1 self.field2 = v2 Β def __str__(self): return str(self.field1) + " " + str(self.field2) Β Β a = A(3, 4) b = str(a) print(a) print(b)
ΠΡΠ²ΠΎΠ΄:
ΠΠ°ΠΊΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΡΠΎΠΊΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ __str__(), Π΄Π΅Π»ΠΎ Π΄Π΅ΡΡΡΠΎΠ΅. ΠΠ½ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠΎΠΈΡΡ ΠΊΠ²Π°Π΄ΡΠ°ΡΠΈΠΊ ΠΈΠ· ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²:
class Rectangle: def __init__(self, width, height, sign): self.w = int(width) self.h = int(height) self.s = str(sign) def __str__(self): rect = [] for i in range(self.h): # ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΠΊ rect.append(self.s * self.w) # Π·Π½Π°ΠΊ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΡΡΡ w ΡΠ°Π· rect = '\n'.join(rect) # ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅ΠΌ ΡΠΏΠΈΡΠΎΠΊ Π² ΡΡΡΠΎΠΊΡ return rect Β b = Rectangle(10, 3, '*') print(b)
ΠΡΠ²ΠΎΠ΄:
********** ********** **********
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ°Π±ΠΎΡΠ°. ΠΠ΅ΡΠΎΠ΄ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ»Ρ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ __add__(). ΠΠ½ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΊΠ»Π°ΡΡΠ°, ΠΈΠΌΠ΅ΡΡΠ΅Π³ΠΎ Π΄Π°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄, ΡΠΈΠ³ΡΡΠΈΡΡΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠΈΡΠ΅ΠΌ Ρ Π»Π΅Π²ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ a + b
Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° a
Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ __add__(). ΠΠ±ΡΠ΅ΠΊΡ b
ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΅ΠΌ ΡΠ³ΠΎΠ΄Π½ΠΎ, Π½ΠΎ ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΎΠ½ Π±ΡΠ²Π°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠ»Π°ΡΡΠ°. ΠΠ±ΡΠ΅ΠΊΡ b
Π±ΡΠ΄Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡΡΡ Π² ΠΌΠ΅ΡΠΎΠ΄ __add__() Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΡΠΎΡΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° (ΠΏΠ΅ΡΠ²ΡΠΉ β self).
ΠΡΠΌΠ΅ΡΠΈΠΌ, Π² Python ΡΠ°ΠΊΠΆΠ΅ Π΅ΡΡΡ ΠΏΡΠ°Π²ΠΎΡΡΠΎΡΠΎΠ½Π½ΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΈ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ — __radd__().
Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΡ ΠΠΠ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ __add__() ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ. ΠΠΎΠΆΠ΅Ρ Π²ΠΎΠΎΠ±ΡΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ, Π° «ΠΌΠΎΠ»ΡΠ°» Π²Π½ΠΎΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ. ΠΠΎΠΏΡΡΡΠΈΠΌ, Π² Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΈ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠ»Π°ΡΡΠ°.
ΠΡΡΡ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ°Π±ΠΎΡ ΠΈ Π²ΡΠ΅ΠΌΠΈ ΡΡΠΎΠΊΠ°ΠΌΠΈ: android-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, pdf-Π²Π΅ΡΡΠΈΡ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ Π² Java β’ Vertex Academy
ΠΠ°Π½Π½Π°Ρ ΡΡΠ°ΡΡΡ:
ΠΡΠΈΠ²Π΅Ρ! ΠΡΠΎ ΡΡΠ°ΡΡΡ ΠΎΠ± ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² ΠΠΠ — ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ.
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ° Π·Π²ΡΡΠΈΡ ΡΡΡΡΠ°ΡΠ°ΡΡΠ΅ π
ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ — ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ ΠΈΠ»ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ Π½Π°Π±ΠΎΡΠ°ΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ ΠΈΠ»ΠΈ Π² Π³ΡΡΠΏΠΏΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ², ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ΠΌ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ.
Π‘Π»ΠΎΠ²ΠΎ «ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ» ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠΌ — Π½ΠΎ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ. ΠΡΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠ°Π·Π±ΠΈΡΡ Π΄Π°Π½Π½ΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ°ΡΡΠΈ ΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ , ΡΡΠΎ ΠΈΠΌΠ΅Π΅ΡΡΡ Π² Π²ΠΈΠ΄Ρ. ΠΠΎΠ²Π΅ΡΡΡΠ΅, ΡΠΆΠ΅ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΠ°ΡΡΠΈ Π΄Π°Π½Π½ΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ° ΠΏΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΠ°ΠΌ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ π
ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ, Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ, — ΡΡΠΎ Π·Π½Π°ΡΠΈΡ «ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΎΡΠΌ». ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΡΠ΅Ρ Π² ΡΠ΅Π°ΡΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅ΡΡΡΡ Π½Π° ΡΠ΅Π±Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΎΠ»Π΅ΠΉ — ΠΈΠ»ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ «ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΎΡΠΌ».
Π’Π°ΠΊ ΠΆΠ΅Β ΠΈ Π½Π°Ρ ΠΊΠΎΠ΄ — Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΡ ΠΎΠ½ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΌ, ΡΠ΅ΠΌ Π² ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΠΠ.
Π’Π°ΠΊ ΠΎ ΠΊΠ°ΠΊΠΈΡ ΡΠΎΡΠΌΠ°Ρ ΠΈΠ΄Π΅Ρ ΡΠ΅ΡΡ? ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΡΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ, Π° ΠΏΠΎΡΠΎΠΌ ΡΠ½ΠΎΠ²Π° Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΠΊ Π΅Π³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ.
ΠΠ°ΠΊ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ
ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π±Ρ Π² Java Π½Π΅ Π±ΡΠ»ΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ°, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π±Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°Π» ΡΡΠΎ ΠΊΠ°ΠΊ ΠΎΡΠΈΠ±ΠΊΡ:
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΌΠ΅ΡΠΎΠ΄Ρ Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ:
- ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ int
- Π° Π²ΡΠΎΡΠΎΠΉ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΒ String
ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²Β Java ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ°, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΡΠΎ ΠΊΠ°ΠΊ ΠΎΡΠΈΠ±ΠΊΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ°ΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π±ΡΠ΄ΡΡ ΡΡΠΈΡΠ°ΡΡΡΡ ΡΠ°Π·Π½ΡΠΌΠΈ:
ΠΠ°Π·ΡΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ — ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ.Β ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠ΅Ρ ΠΊΠΎΡΠ΅Π½Ρ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΠΉ ΠΈΠ· ΡΠΈΡΠ»Π°, Π³ΠΎΡΠ°Π·Π΄ΠΎ Π»Π΅Π³ΡΠ΅ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΎΠ΄Π½ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, sqrt()), ΡΠ΅ΠΌ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌΡ Π½Π°Π·Π²Π°Π½ΠΈΡ Π½Π° ΡΡΠΎΡ ΠΆΠ΅ ΠΌΠ΅ΡΠΎΠ΄, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°:
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΌΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΈΠ΄ΡΠΌΡΠ²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° — Π° Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΈΡ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡ! ΠΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ½ΡΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ ΡΠ°ΡΡΠΎ ΡΡΠΎΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΡΡΠ°Π·ΠΎΠΉ:
ΠΠ΄ΠΈΠ½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ — ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²
ΠΡΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ, ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠ΄Π½ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ (ΠΎΠ΄ΠΈΠ½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ), ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ.
ΠΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²
Π’ΠΎ, ΡΡΠΎ ΠΌΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π»ΠΈ Π²ΡΡΠ΅ — Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Ρ ΠΎΠ΄Π½ΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΈ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ — Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΎΠΉ. ΠΠΎ ΡΡΠΎ Π±ΡΠ» ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅. ΠΠΎ Π±ΡΠ²Π°Π΅Ρ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠ»ΡΡΠ°ΠΉ — ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
ΠΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ
ΠΠΎΠ³Π΄Π° ΠΌΡ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΠΌ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΊΠ»Π°ΡΡ, ΠΌΡ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΠΌ ΠΈ Π²ΡΠ΅ Π΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ. ΠΠΎ Π΅ΡΠ»ΠΈ Π½Π°ΠΌ Ρ ΠΎΡΠ΅ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΠΌ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΠ΅Π³ΠΎ-Π½Π°Π²ΡΠ΅Π³ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π΅Π³ΠΎ. ΠΡ Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Ρ ΠΏΠΎΡ ΠΎΠΆΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ Π½Π°ΡΠΈΡ Π½ΡΠΆΠ΄, Π° ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π±ΡΠ΄Π΅Ρ «ΠΌΠ΅ΡΡΠ²ΡΠΌ Π³ΡΡΠ·ΠΎΠΌ» Π»Π΅ΠΆΠ°ΡΡ Π² Π½Π°ΡΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠ΅.
ΠΠΌΠ΅Π½Π½ΠΎ ΡΠΎ, ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ Π² ΠΊΠ»Π°ΡΡΠ΅-Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠ΅ ΠΊΠ»Π°ΡΡ Ρ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΈ ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π»ΠΈ ΠΎΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ, ΠΈ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ.
ΠΡΠΈΠΌΠ΅Ρ
ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠ°ΠΊΠ°Ρ ΡΡΡΡΠΊΡΡΡΠ°:
ΠΠ²Π΅ΡΡ Ρ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² ΡΡΠΎΠΈΡ ΠΊΠ»Π°ΡΡ Animal. ΠΠ³ΠΎ Π½Π°ΡΠ»Π΅Π΄ΡΡΡ ΡΡΠΈ ΠΊΠ»Π°ΡΡΠ° — Cat, Dog ΠΈ Cow.
Π£ ΠΊΠ»Π°ΡΡΠ° «Animal» Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ «Π³ΠΎΠ»ΠΎΡ» (voice). ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ «ΠΠΎΠ»ΠΎΡ». ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, Π½ΠΈ ΡΠΎΠ±Π°ΠΊΠ°, Π½ΠΈ ΠΊΠΎΡΠΊΠ° Π½Π΅ Π³ΠΎΠ²ΠΎΡΡΡ «ΠΠΎΠ»ΠΎΡ» π ΠΠ½ΠΈ Π³Π°Π²ΠΊΠ°ΡΡ ΠΈ ΠΌΡΡΠΊΠ°ΡΡ. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ² Cat, Dog ΠΈ CowΒ — ΡΡΠΎΠ±Ρ ΠΊΠΎΡΠΊΠ° ΠΌΡΡΠΊΠ°Π»Π°, ΡΠΎΠ±Π°ΠΊΠ° Π³Π°Π²ΠΊΠ°Π»Π°, Π° ΠΊΠΎΡΠΎΠ²Π° Π³ΠΎΠ²ΠΎΡΠΈΠ»Π° «ΠΡΡ».
ΠΠΎΡΡΠΎΠΌΡ, Π² ΠΊΠ»Π°ΡΡΠ°Ρ -Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠ°Ρ ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ voice(), ΡΡΠΎΠ±Ρ ΠΌΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π»ΠΈ «ΠΡΡ», «ΠΠ°Π²» ΠΈ «ΠΡΡ».
- ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΏΠ΅ΡΠ΅Π΄ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ, ΠΏΠΈΡΠ΅ΠΌ «@Override«. ΠΡΠΎ Π΄Π°Π΅Ρ ΠΏΠΎΠ½ΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ, ΡΡΠΎ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄.
Π’Π°ΠΊ ΡΡΠΎ ΠΆΠ΅ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ — ΡΡΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏ. ΠΡΠ΅ ΡΠ΅Π°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΏΡΠΈΠ²Π΅Π΄ΠΎΠ΄ΠΈΠ»ΠΈ Π²ΡΡΠ΅ — ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ°.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ½ΠΎΠ²Π° ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΡ Π΄Π°Π²Π°Π»ΠΈ Π² Π½Π°ΡΠ°Π»Π΅ ΡΡΠ°ΡΡΠΈ:
ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ — Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ ΠΈΠ»ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ Π½Π°Π±ΠΎΡΠ°ΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ ΠΈΠ»ΠΈ Π² Π³ΡΡΠΏΠΏΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ², ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ΠΌ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ.
ΠΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΠΎΠ½ΡΡΠ½Π΅Π΅, ΠΏΡΠ°Π²Π΄Π°? ΠΡ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ:
- ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ «ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ» Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ («ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²»)
- ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° («ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²»).
ΠΡΠ΅ ΡΡΠΎ — ΠΏΡΠΎΡΠ²Π»Π΅Π½ΠΈΡ «ΠΏΠΎΠ²ΡΡΠ΅Π½Π½ΠΎΠΉ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ» ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ·ΡΠΊΠΎΠ² Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΡ.
ΠΠ°Π΄Π΅Π΅ΠΌΡΡ, Π½Π°ΡΠ° ΡΡΠ°ΡΡΡ Π±ΡΠ»Π° ΠΠ°ΠΌ ΠΏΠΎΠ»Π΅Π·Π½Π°. ΠΠ°ΠΏΠΈΡΠ°ΡΡΡΡ Π½Π° Π½Π°ΡΠΈ ΠΊΡΡΡΡ ΠΏΠΎ Java ΠΌΠΎΠΆΠ½ΠΎΒ Ρ Π½Π°Ρ Π½Π° ΡΠ°ΠΉΡΠ΅.
ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ Π² ΠΠΠ Π½Π° Python
ΠΡΠΈΠ²Π΅ΡΡΡΠ²ΡΡ Π²ΡΠ΅Ρ
Π½Π° Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎΠΌ Π²Π½Π΅ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΌ Π·Π°Π½ΡΡΠΈΠΈ ΠΏΠΎ ΠΠΠ. Π Π·Π΄Π΅ΡΡ Ρ Ρ
ΠΎΡΡ Π·Π°ΡΡΠΎΠ½ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½
Π²ΠΎΠΏΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ»Π½ΡΠ΅Ρ ΠΌΠΎΠΈΡ
ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΎΠ²: ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ Π² ΠΠΠ Π½Π° Python? ΠΡΠ»ΠΈ
ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π² Π΄Π²ΡΡ
ΡΠ»ΠΎΠ²Π°Ρ
Π½Π° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ°ΠΊ:
ΠΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΡΠ·ΡΠΊΠ° Python Π΅Π΄ΠΈΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
ΠΠ°ΠΆΠ΅ΡΡΡ, Π½Π΅
ΠΎΡΠΎΠ±ΠΎ ΡΡΠ°Π»ΠΎ ΠΏΠΎΠ½ΡΡΠ½Π΅Π΅? ΠΠΎΡΡΠΎΠΌΡ Π΄Π°Π²Π°ΠΉΡΠ΅, ΠΊΠ°ΠΊ Π²ΡΠ΅Π³Π΄Π°, ΠΏΠΎΡΡΠΈΠ³Π½Π΅ΠΌ ΡΡΡΡ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π°
Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅.
ΠΠ½Π°ΡΠ°Π»Π΅ Ρ
ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡ ΠΏΡΠΈΠΌΠ΅Ρ, Π³Π΄Π΅ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΠΎΠ΄ΠΈΠ½ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠ°ΠΊ ΡΠ°Π·
ΠΈΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ°. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ Π½Π°Ρ Π΅ΡΡΡ Π΄Π²Π° ΠΊΠ»Π°ΡΡΠ° Rectangle ΠΈ Square:
class Rectangle: Β Β Β def __init__(self, w, h): Β Β Β Β Β Β Β self.w = w Β Β Β Β Β Β Β self.h = h Β Β Β Β def getPerRect(self): Β Β Β Β Β Β Β return 2*(self.w+self.h) Β Β class Square: Β Β Β def __init__(self, a): Β Β Β Β Β Β Β self.a = a Β Β Β Β def getPerSq(self): Β Β Β Β Β Β Β return 4*self.a
Π Π² Π½ΠΈΡ
ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ Π³Π΅ΡΡΠ΅ΡΡ getPerRect ΠΈ getPerSq Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ
ΠΏΠ΅ΡΠΈΠΌΠ΅ΡΡΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ
ΡΠΈΠ³ΡΡ: ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° ΠΈ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ°. ΠΠ°Π»Π΅Π΅, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ
ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΡΡΠΈΡ
ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ Π²ΡΠ²Π΅ΡΡΠΈ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠΈΠΌΠ΅ΡΡΠΎΠ²:
r1 = Rectangle(1, 2) r2 = Rectangle(3, 4) Β print(r1.getPerRect(), r2.getPerRect()) Β s1 = Square(10) s2 = Square(20) Β print(s1.getPerSq(), s2.getPerSq())
ΠΡΠ΅ ΠΎΡΠ»ΠΈΡΠ½ΠΎ, Π²ΡΠ΅
ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΠΎ, ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Π²ΡΠ΅ ΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ:
ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ
Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅ΡΠ΅Π±ΡΠ°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΊΠ»Π° for ΠΈ Π³Π΄Π΅ Π±Ρ ΠΌΡ Ρ
ΠΎΡΠ΅Π»ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
ΠΏΠ΅ΡΠΈΠΌΠ΅ΡΡΠ° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΈΠ³ΡΡΡ:
for g in geom: Β Β Β print( g.getPerRect() )
ΠΠ°ΠΊ Π²Ρ
ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅, ΠΊΠΎΠ³Π΄Π° Π² ΡΠΈΠΊΠ»Π΅ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π΄ΠΎΠΉΠ΄Π΅Ρ Π΄ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° s1, Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ
ΠΎΡΠΈΠ±ΠΊΠ°, Ρ.ΠΊ. Π² ΠΊΠ»Π°ΡΡΠ΅ Square ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ getPerRect. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π·Π½Π°Ρ,
ΡΡΠΎ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Rectangle ΠΈ Square, ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ
Π² ΡΠΈΠΊΠ»Π΅ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ:
for g in geom: Β Β Β if isinstance(g, Rectangle): Β Β Β Β Β Β Β print( g.getPerRect() ) Β Β Β else: Β Β Β Β Β Β Β print(g.getPerSq())
ΠΈ Π²ΡΠ΅
Π·Π°ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΠΎ Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΌΠ°Π»ΠΎ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π΅ΡΠ΅
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°:
class Triangle: Β Β Β def __init__(self, a, b, c): Β Β Β Β Β Β Β self.a = a Β Β Β Β Β Β Β self.b = b Β Β Β Β Β Β Β self.c = c Β Β Β Β def getPerTr(self): Β Β Β Β Β Β Β return self.a + self.b + self.c
ΠΠΎΠ»ΡΡΠΈΠΌ ΡΠ½ΠΎΠ²Π°
ΠΎΡΠΈΠ±ΠΊΡ:
t1 = Triangle(1,2,3) t2 = Triangle(4,5,6) geom = [r1, r2, s1, s2, t1, t2]
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π² ΡΠΈΠΊΠ»Π΅
for ΠΌΠΎΠΆΠ½ΠΎ
Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ°ΠΌ Square ΠΈ Triangle, Π½ΠΎ ΠΊΡΠ°ΡΠΎΡΡ ΠΈ
Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ Π½Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΡΡΠΎ Π½Π΅ ΠΏΡΠΈΠ΄Π°ΡΡ. ΠΠΎΡ ΠΊΠ°ΠΊ ΡΠ°Π· Π·Π΄Π΅ΡΡ ΠΎΡΠ΅Π½Ρ Ρ
ΠΎΡΠΎΡΠΎ
ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠΎΠΌ. ΠΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ
ΠΊΠ»Π°ΡΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
getPerimetr
Π’ΠΎΠ³Π΄Π° Π² ΡΠΈΠΊΠ»Π΅
Π±ΡΠ΄Π΅ΠΌ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΡΠΎΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΏΠ΅ΡΠΈΠΌΠ΅ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ
ΡΠΈΠ³ΡΡ:
for g in geom: Β Β Β print( g.getPerimetr() )
Π’ΠΎ Π΅ΡΡΡ, Python Β«ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΒ»
ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Ρ
ΡΠ°Π½ΠΈΡΡΡ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°
Π±Π΅ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ getPerimetr. ΠΡΠΎ ΠΈ Π΅ΡΡΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΊ ΡΠ°Π·Π½ΡΠΌ
ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈ ΡΠΎΠΌΡ ΠΆΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈ Π½Π° Π²ΡΡ
ΠΎΠ΄Π΅
ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠ°Π·Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ Π² ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ — ΡΡΠΎ… Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ Π² ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ?
ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΜΠ·ΠΌ (Π² ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ) β Π²Π·Π°ΠΈΠΌΠΎΠ·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ.
Π―Π·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ, Π΅ΡΠ»ΠΈ ΠΊΠ»Π°ΡΡΡ Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΒ β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π° Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ [1].
ΠΡΠ°ΡΠΊΠΎ ΡΠΌΡΡΠ» ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ° ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΠ°Π·ΠΈΡΡ ΡΡΠ°Π·ΠΎΠΉ: Β«ΠΠ΄ΠΈΠ½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉΒ».
ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ β ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ΅ΡΡΡΡΡ Π²Π°ΠΆΠ½Π΅ΠΉΡΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ (Π½Π°ΡΡΠ΄Ρ Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠ΅ΠΉ, ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΠ΅ΠΉ ΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ).
ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΈΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π°. ΠΠ±ΡΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠ³ΡΡ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ β ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΊΠ»Π°ΡΡ. ΠΠ±ΡΠ½ΠΎΡΡΡ ΠΈΠΌΠ΅Π΅Ρ Π²Π½Π΅ΡΠ½Π΅Π΅ ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. ΠΠ½Π΅ΡΠ½Π΅ ΠΎΠ±ΡΠ½ΠΎΡΡΡ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ Π½Π°Π±ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΈ ΡΠΈΠ³Π½Π°ΡΡΡΠ°ΠΌΠΈ (ΡΠΈΠΏΠ°ΠΌΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ²). ΠΠ½ΡΡΡΠ΅Π½Π½ΡΡ ΠΎΠ±ΡΠ½ΠΎΡΡΡ Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ². ΠΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎ ΠΈΠ»ΠΈ Π²ΡΡΠ°Π·ΠΈΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠ³ΠΈΡ Π·Π°ΠΊΠΎΠ½ΠΎΠ², ΠΏΡΠ°Π²ΠΈΠ», ΠΊΠΎΡΠΎΡΡΠΌ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ΄ΡΠΈΠ½ΡΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Ρ (ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ) Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄Π° (ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ).
ΠΡΠΈΠΌΠ΅ΡΡ
ΠΠ»Π°ΡΡ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΠ³ΡΡ (ΡΠ»Π»ΠΈΠΏΡ, ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ) ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΠΉ (ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ²ΠΎΡΠΎΡ, ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅).
ΠΠ»Π°ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ . ΠΠΎΡΠΎΠΊΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π²Π²ΠΎΠ΄ΠΈΠΌΠ°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Ρ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°, ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΏΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ, ΡΠ°ΠΉΠ» (Π΅ΡΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π΄Π°Π½Π½ΡΡ , Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΡΠ°Π·Π±ΠΎΡΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ).
Π ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ
Π ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ ΠΊΠ»Π°ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½ΡΡ . ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ². ΠΠ»Π°ΡΡ-ΠΏΠΎΡΠΎΠΌΠΎΠΊ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΈΠ³Π½Π°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΊΠ»Π°ΡΡΠ°-ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ, Π½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΡΡΠ³ΠΎΠΉ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ΅ ΠΊΠ»Π°ΡΡΠ°-ΠΏΠΎΡΠΎΠΌΠΊΠ°. ΠΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄Π°. ΠΡΡΠ³ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ°-ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ, ΠΏΡΠΈ ΡΡΠΎΠΌ Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄ΡΡΠ°Π²Π»ΡΡΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠ»Π°ΡΡΠΎΠ²-ΠΏΠΎΡΠΎΠΌΠΊΠΎΠ². ΠΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ·Π΄Π½ΠΈΠΌ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ΠΌ.
ΠΠ»Π°ΡΡ-ΠΏΠΎΡΠΎΠΌΠΎΠΊ ΡΠ°ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΌ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΠΎΠΈΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΡ Π΅ΠΌΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ β Π΄ΡΠ΅Π²ΠΎΠ²ΠΈΠ΄Π½ΡΠ΅ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π²ΠΈΠ΄Π½ΡΠ΅.
ΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅(ΠΈΠ»ΠΈ ΡΠΈΡΡΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅) ΠΌΠ΅ΡΠΎΠ΄Ρ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²ΠΎΠΎΠ±ΡΠ΅(ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ·ΡΠΊΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ C++, Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ — ΡΠΌ. Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡ). ΠΠ½ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ. ΠΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π² ΠΊΠ»Π°ΡΡΠ°Ρ -ΠΏΠΎΡΠΎΠΌΠΊΠ°Ρ .
ΠΠ»Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ². ΠΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ (Π² C++), ΠΊΠΎΠ³Π΄Π° ΠΊΠ»Π°ΡΡ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ ΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ²-ΠΏΠΎΡΡΠ΅Π΄Π½ΠΈΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π½Π°ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° (ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠ°Ρ Β«diamond problemΒ»). ΠΡΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΏΡΠ΅Π΄ΠΊΠ° Π±ΡΠ» ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ Π² ΠΏΠΎΡΡΠ΅Π΄Π½ΠΈΠΊΠ°Ρ , Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΠΊΠ°ΠΊΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠΈΠΉ ΠΏΠΎΡΠΎΠΌΠΎΠΊ. Π Π΅ΡΠ°Π΅ΡΡΡ ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΡΡΠΌ ΠΎΡΠΊΠ°Π·Π° ΠΎΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² (Ρ. Π΅. ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ²) (C#, Delphi, Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ (C++).
Π ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΡΠ·ΡΠΊΠ°Ρ
ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ Π² ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΡΠ·ΡΠΊΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ·ΡΠΊΠ° ad hoc (Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠ»Π°ΡΡΠΎΠ²). ΠΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ
Π ΡΠ»ΡΡΠ°Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ° ΡΡΠ½ΠΊΡΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ, ΠΈ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠΎΠ±ΡΠ΅ Π΄Π»Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Π° Π΄Π»Ρ Π΄Π°Π½Π½ΡΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, Π΅ΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π·Π°Π΄Π°Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ. Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅ ΠΠ΅ΡΠ°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ, ad hoc ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ
Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄Π»Ρ Π΄Π°Π½Π½ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ Π΄Π»Ρ ΡΠΈΡΠ΅Π», ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ, ΡΠΏΠΈΡΠΊΠΎΠ², Ρ.Β Π΅. ΠΎΠ½Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠ½ΠΎΠΉ.
Π Haskell Π΅ΡΡΡ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠ»Π°ΡΡΡ ΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ (instance), ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π΅Ρ Π² ΠΠΠ. ΠΠ»Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π½Π°Π±ΠΎΡ ΠΈ ΡΠΈΠ³Π½Π°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΈΡ . Π’. ΠΎ. Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΠΏΠ°Π΄Π°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ. ΠΠ»Π°ΡΡΡ Π½Π΅ Π½Π°ΡΠ»Π΅Π΄ΡΡΡ ΠΈ Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄ΡΡΠ³ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² β ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΊΠ»Π°ΡΡΡ. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΏΡΠΎΡΠ΅, ΡΠ΅ΠΌ ΡΠ»ΠΎΠΆΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° Π²Π·Π°ΠΈΠΌΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ ΠΊΠ»Π°ΡΡΠΎΠ² Π² ΠΠΠ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΊΠ»Π°ΡΡΠ°ΠΌ; ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ, ΡΡΠΎΠ±Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΅Π³ΠΎ ΡΠΈΠΏ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Π» ΠΊ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΊΠ»Π°ΡΡΡ, ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ; ΡΠ°ΠΊΠΎΠ΅ ΠΆΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ΄Π²ΠΈΠ³Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ. ΠΡΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ. ΠΡΡΡ ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°, Π½Π΅ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ² Π² ΠΠΠ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΏΠΈΡΠΊΠΎΠ² ΠΊΠ°ΠΊ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠ»Π°ΡΡΠ° ΡΡΠ°Π²Π½ΠΈΠΌΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½ ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΡΠΎΠ±Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΠΈΡΠΊΠ° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Π»ΠΈ ΠΊ ΠΊΠ»Π°ΡΡΡ ΡΡΠ°Π²Π½ΠΈΠΌΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌ, ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΡΡΠΈΠΌ ΠΎΡ ΠΠΠ ΠΊ Π€Π, ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π½Π°ΡΡ Π²Π°ΠΆΠ½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠ»Π°ΡΡΠΎΠ². ΠΡΠ»ΠΈ Π² ΠΠΠ ΠΊΠ»Π°ΡΡ Β«ΠΏΡΠΈΠ²ΡΠ·Π°Π½Β» ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Ρ.Β Π΅. ΠΊ Π΄Π°Π½Π½ΡΠΌ, ΡΠΎ Π² Π€Π β ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ. Π Π€Π ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΠΈ ΠΊ ΠΊΠ»Π°ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π° Π½Π΅ Ρ ΡΠ°Π½ΡΡΡΡ Π² ΠΏΠΎΠ»ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (Π² ΠΠΠ ΠΌΠ΅ΡΠΎΠ΄ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°). ΠΡΠΈΠΌΠ΅Ρ: ΠΌΠ΅ΡΠΎΠ΄ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΡΠΈΡΠ΅Π», ΡΡΡΠΎΠΊ) ΡΡΠ΅Π±ΡΠ΅Ρ Π΄Π²ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΠΏΡΠΈΡΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°.
ΠΠ΅ΡΠ²Π½Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Ruby) ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠ°Ρ ΡΡΠΈΠ½Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ (Π΄ΡΡΠ³ΠΈΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΡ: Π»Π°ΡΠ΅Π½ΡΠ½Π°Ρ, Π½Π΅ΡΠ²Π½Π°Ρ), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΡ ΡΠΈΠ³Π½Π°ΡΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠ·ΡΠΊΠ΅ Python ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ²ΡΠ·Π°Π½ Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π‘ΠΈΡΡΠ΅ΠΌΠ° ΠΊΠ»Π°ΡΡΠΎΠ² Π² Π€Π ΠΈ Π² ΠΠΠ ΡΡΡΡΠΎΠ΅Π½Ρ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΊ ΠΈΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡΡ ΠΎΡΠ΅Π½Ρ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎ.
ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΎΠ±ΠΎΡΠΎΠ±Π»Π΅Π½Π½ΡΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ»Π°ΡΡΡ Π² C++ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π±ΡΠ»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΠΊΠ°ΠΊ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π΄Π»Ρ C. ΠΠ»Ρ Haskell ΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ ΠΊΠ»Π°ΡΡΠΎΠ² Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠΎΠΌ.
ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠΎΠ² Π² Π€Π ΠΈ ΠΠΠ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΡΡ ΠΎΠ½ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ β Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°Π±Π»ΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ².
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅
Wikimedia Foundation.
2010.
ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ
Π² ΠΠΠ Java Ρ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ
- Home
Testing
- Back
- Agile Testing
- BugZilla
- Cucumber
- Database Testing
- JUnit
- LoadRunner
- Π ΡΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- ΠΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- Mantis
- ΠΠΎΡΡΠ°Π»ΡΠΎΠ½
- QTP
- ΠΠ°Π·Π°Π΄
- Π¦Π΅Π½ΡΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° (ALM)
- 000
- Π¦Π΅Π½ΡΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° (ALM)
000 Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ
- TestLink
SAP
- ΠΠ°Π·Π°Π΄
- ABAP 90 004
- APO
- ΠΠ°ΡΠΈΠ½Π°ΡΡΠΈΠΉ
- Basis
- BODS
- BI
- BPC
- CO
- ΠΠ°Π·Π°Π΄
- CRM
- Crystal Reports
- QM4
- 9000 HRM
- ΠΠ°ΡΠ°Π±ΠΎΡΠ½Π°Ρ ΠΏΠ»Π°ΡΠ°
- ΠΠ°Π·Π°Π΄
- PI / PO
- PP
- SD
- SAPUI5
- ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ
- ΠΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ
- Successfactors
- Π£ΡΠ΅Π±Π½ΠΈΠΊΠΈ SAP
- Apache
- ΠΠ°Π·Π°Π΄
- Java
- JSP
- Kotlin
- Linux
- Linux
- Kotlin
- Linux
- Perl
js
- ΠΠ°Π·Π°Π΄
- PHP
- PL / SQL
- PostgreSQL
- Python
- ReactJS
- Ruby & Rails
- Scala
- SQL
- SQL
- SQL
- UML
- VB.Net
- VBScript
- ΠΠ΅Π±-ΡΠ»ΡΠΆΠ±Ρ
- WPF
000
000
000
0003 SQL
000
ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΈΡΠ΅!
- ΠΠ°Π·Π°Π΄
- ΠΡΡ Π³Π°Π»ΡΠ΅ΡΡΠΊΠΈΠΉ ΡΡΠ΅Ρ
- ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ
- Android
- ΠΠ»ΠΎΠΊΡΠ΅ΠΉΠ½
- Business Analyst
- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π΅Π±-ΡΠ°ΠΉΡΠ°
- CCNA
- ΠΠ±Π»Π°ΡΠ½ΡΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ
- 0003 COBOL
- 000 Compiler
- 9000 ΠΡΡΡΠΎΠ΅Π½Π½ΡΠΉ
- 000 9000 Compiler
- Ethical Hacking
- Π£ΡΠ΅Π±Π½ΠΈΠΊΠΈ ΠΏΠΎ Excel
- ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Go
- IoT
- ITIL
- Jenkins
- MIS
- Π‘Π΅ΡΠΈ
- ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°
- ΠΠ°Π·Π°Π΄
- Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΠ±Π·ΠΎΡΡ
- Salesforce
- SEO
- Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ
- VB A
Big Data
- ΠΠ°Π·Π°Π΄
- AWS
- BigData
- Cassandra
- Cognos
- Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π΄Π°Π½Π½ΡΡ
- HBOps
- HBOps
- MicroStrategy
0003
0003
.
oop — ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ° Π² java
ΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ°
- ΠΠΊΠΎΠ»ΠΎ
ΠΡΠΎΠ΄ΡΠΊΡΡ
- ΠΠ»Ρ ΠΊΠΎΠΌΠ°Π½Π΄
ΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ°
ΠΠ±ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΈ ΠΎΡΠ²Π΅ΡΡΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ° Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄
ΠΠ΄Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈ Π΄Π΅Π»ΡΡΡΡ ΡΠ°ΡΡΠ½ΡΠΌΠΈ Π·Π½Π°Π½ΠΈΡΠΌΠΈ Ρ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈΠΠ°ΠΊΠ°Π½ΡΠΈΠΈ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½ΠΈΠΌ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠ°ΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠ°Π’Π°Π»Π°Π½Ρ
ΠΠ°Π½ΠΈΠΌΠ°ΠΉΡΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ² ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ²ΠΎΠΉ Π±ΡΠ΅Π½Π΄ ΡΠ°Π±ΠΎΡΠΎΠ΄Π°ΡΠ΅Π»ΡΠ Π΅ΠΊΠ»Π°ΠΌΠ°
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ ΡΠΎ Π²ΡΠ΅Π³ΠΎ ΠΌΠΈΡΠ°- Π ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ
.
ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ Π² Golang — ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Go
ΠΠΎΠ±ΡΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°ΡΡ Π² ΡΡΠ΅Π±Π½ΠΈΠΊ β. 28 Π² ΡΠ΅ΡΠΈΠΈ ΡΡΠ΅Π±Π½ΡΡ ΠΏΠΎΡΠΎΠ±ΠΈΠΉ ΠΏΠΎ ΠΠΎΠ»Π°Π½Π³Ρ.
ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ Π² Go Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ². ΠΠ°ΠΊ ΠΌΡ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ, ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π΅ΡΠ²Π½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π² Go. Π’ΠΈΠΏ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΡ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅. ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ Π² Go Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ².
ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°
Π‘ΡΠΈΡΠ°Π΅ΡΡΡ, ΡΡΠΎ Π»ΡΠ±ΠΎΠΉ ΡΠΈΠΏ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Π½Π΅ΡΠ²Π½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΡΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ.
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠΈΠΏΠ° interface ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π»ΡΠ±ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠ΅Π΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. ΠΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ° Π² Go.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΡΡ Ρ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠΎΠΌ Π² Go Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅Ρ ΡΠΈΡΡΡΠΉ Π΄ΠΎΡ
ΠΎΠ΄ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ»Ρ ΠΏΡΠΎΡΡΠΎΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ ΡΡΠ° Π²ΠΎΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠ°Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡ
ΠΎΠ΄ ΠΎΡ Π΄Π²ΡΡ
Π²ΠΈΠ΄ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², Π° ΠΈΠΌΠ΅Π½Π½ΠΎ. ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΡΠ΅Ρ ΠΈ Π²ΡΠ΅ΠΌΡ ΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» . Π§ΠΈΡΡΠ°Ρ ΠΏΡΠΈΠ±ΡΠ»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎ ΡΡΠΌΠΌΠ΅ Π΄ΠΎΡ
ΠΎΠ΄ΠΎΠ² ΠΎΡ ΡΡΠΈΡ
ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².Π§ΡΠΎΠ±Ρ Π½Π΅ ΡΡΠ»ΠΎΠΆΠ½ΡΡΡ ΡΡΠΎΡ ΡΡΠΎΠΊ, ΠΌΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Π²Π°Π»ΡΡΠ° — Π΄ΠΎΠ»Π»Π°ΡΡ, ΠΈ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΠΈΠΌΠ΅ΡΡ Π΄Π΅Π»ΠΎ Ρ ΡΠ΅Π½ΡΠ°ΠΌΠΈ. ΠΠ½ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ int
. (Π― ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ https://forum.golangbridge.org/t/what-is-the-proper-golang-equivalent-to-decimal-when-dealing-with-money/413, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠ΅Π½ΡΡ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΠ½Π΄ΡΠ΅Π°Ρ ΠΠ°ΡΡΡΠ΅ΠΊ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π², ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ Π½Π° ΡΡΠΎ.)
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΠΎΡ
ΠΎΠ΄
.
type Income interface {
Π²ΡΡΠΈΡΠ»ΠΈΡΡ () int
source () ΡΡΡΠΎΠΊΠ°
}
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Income
, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄Π²Π° ΠΌΠ΅ΡΠΎΠ΄Π°: calculate (),
, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄ΠΎΡ
ΠΎΠ΄ ΠΈΠ· ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°, ΠΈ source ()
, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠΌΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°.
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΡΡΡΡΠΊΡΡΡΡ Π΄Π»Ρ ΡΠΈΠΏΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ° FixedBilling
.
type FixedBilling struct {
projectName ΡΡΡΠΎΠΊΠ°
biddedAmount int
}
Π£ ΠΏΡΠΎΠ΅ΠΊΡΠ° FixedBilling
Π΅ΡΡΡ Π΄Π²Π° ΠΏΠΎΠ»Ρ: projectName
, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΈ biddedAmount
, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΡΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ»Π° Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
Π‘ΡΡΡΠΊΡΡΡΠ° TimeAndMaterial
Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΡ ΡΠΈΠΏΠ° Time ΠΈ Material.
type TimeAndMaterial struct {
projectName ΡΡΡΠΎΠΊΠ°
noOfHours int
hourlyRate int
}
Π‘ΡΡΡΠΊΡΡΡΠ° TimeAndMaterial
ΠΈΠΌΠ΅Π΅Ρ ΡΡΠΈ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»Π΅ΠΉ: projectName
, noOfHours
ΠΈ hourlyRate
.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠ°Π³ΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π΄Π»Ρ ΡΡΠΈΡ ΡΠΈΠΏΠΎΠ² ΡΡΡΡΠΊΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΡΠΈΡΠ»ΡΡΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π΄ΠΎΡ ΠΎΠ΄ ΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π΄ΠΎΡ ΠΎΠ΄Π°.
func (fb FixedBilling) calculate () int {
Π²Π΅ΡΠ½ΡΡΡ fb.biddedAmount
}
func (fb FixedBilling) source () string {
Π²Π΅ΡΠ½ΡΡΡ fb.projectName
}
func (tm TimeAndMaterial) calculate () int {
return tm.noOfHours * tm.hourlyRate
}
func (tm TimeAndMaterial) source () string {
Π²Π΅ΡΠ½ΡΡΡ tm.projectName
}
Π ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² FixedBilling
Π΄ΠΎΡ
ΠΎΠ΄ — ΡΡΠΎ ΠΊΠ°ΠΊ ΡΠ°Π· ΡΡΠΌΠΌΠ°, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Π°Ρ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΌΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ ΡΡΠΎ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄Π° calculate ()
ΡΠΈΠΏΠ° FixedBilling
.
Π ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² TimeAndMaterial
, Π΄ΠΎΡ
ΠΎΠ΄ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ noOfHours
ΠΈ hourlyRate
.ΠΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄Π° calculate ()
Ρ ΡΠΈΠΏΠΎΠΌ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ TimeAndMaterial
.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π΄ΠΎΡ
ΠΎΠ΄Π° ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄Π° source ()
.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ±Π΅ ΡΡΡΡΠΊΡΡΡΡ FixedBilling
ΠΈ TimeAndMaterial
ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π΄Π»Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² calculate (),
ΠΈ source ()
ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Income
, ΠΎΠ±Π΅ ΡΡΡΡΠΊΡΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Income
.
ΠΠ±ΡΡΠ²ΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡ calculateNetIncome
, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°ΡΡΡΠΈΡΠ°Π΅Ρ ΠΈ ΡΠ°ΡΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠΈΠΉ Π΄ΠΎΡ
ΠΎΠ΄.
func calculateNetIncome (ic [] Income) {
var netincome int = 0
Π΄Π»Ρ _, Π΄ΠΎΡ
ΠΎΠ΄: = Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ic {
fmt.Printf ("ΠΠΎΡ
ΠΎΠ΄ ΠΎΡ% s = $% d \ n", Π΄ΠΎΡ
ΠΎΠ΄.source (), Π΄ΠΎΡ
ΠΎΠ΄.calculate ())
ΡΠΈΡΡΡΠΉ Π΄ΠΎΡ
ΠΎΠ΄ + = Π΄ΠΎΡ
ΠΎΠ΄. Π²ΡΡΠΈΡΠ»ΠΈΡΡ ()
}
fmt.Printf ("Π§ΠΈΡΡΠ°Ρ ΠΏΡΠΈΠ±ΡΠ»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ = $% d", ΡΠΈΡΡΡΠΉ Π΄ΠΎΡ
ΠΎΠ΄)
}
ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ Π²ΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ calculateNetIncome
ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Income
.ΠΠ½ Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ ΠΎΠ±ΡΠΈΠΉ Π΄ΠΎΡ
ΠΎΠ΄, ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°Ρ ΡΡΠ΅Π· ΠΈ Π²ΡΠ·ΡΠ²Π°Ρ ΠΌΠ΅ΡΠΎΠ΄ calculate ()
Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π΄ΠΎΡ
ΠΎΠ΄Π°, Π²ΡΠ·ΡΠ²Π°Ρ ΠΌΠ΅ΡΠΎΠ΄ source ()
. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Income
Π±ΡΠ΄ΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ calculate ()
ΠΈ source ()
. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΡ Π΄ΠΎΡΡΠΈΠ³Π»ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ° Π² ΡΡΠ½ΠΊΡΠΈΠΈ calculateNetIncome
.
Π Π±ΡΠ΄ΡΡΠ΅ΠΌ, Π΅ΡΠ»ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Π΄ΠΎΠ±Π°Π²ΠΈΡ Π½ΠΎΠ²ΡΠΉ Π²ΠΈΠ΄ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π΄ΠΎΡ ΠΎΠ΄Π°, ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°ΡΡ ΠΎΠ±ΡΠΈΠΉ Π΄ΠΎΡ ΠΎΠ΄ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΅Π΄ΠΈΠ½ΠΎΠΉ ΡΡΡΠΎΡΠΊΠΈ ΠΊΠΎΠ΄Π° :).
ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ ΠΎΡΡΠ°Π²ΡΠ°ΡΡΡ ΡΠ°ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ — ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ.
func main () {
project1: = FixedBilling {projectName: "Project 1", biddedAmount: 5000}
project2: = FixedBilling {projectName: "Project 2", biddedAmount: 10000}
project3: = TimeAndMaterial {projectName: "Project 3", noOfHours: 160, hourlyRate: 25}
yieldStreams: = [] ΠΠΎΡ
ΠΎΠ΄ {ΠΏΡΠΎΠ΅ΠΊΡ1, ΠΏΡΠΎΠ΅ΠΊΡ2, ΠΏΡΠΎΠ΅ΠΊΡ3}
CalculateNetIncome (Π΄ΠΎΡ
ΠΎΠ΄Π½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ)
}
Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ
Π²ΡΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΡΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°: Π΄Π²Π° ΡΠΈΠΏΠ° FixedBilling
ΠΈ ΠΎΠ΄ΠΈΠ½ ΡΠΈΠΏΠ° TimeAndMaterial
.ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΡΠ΅Π· ΡΠΈΠΏΠ° Income
Ρ ΡΡΠΈΠΌΠΈ ΡΡΠ΅ΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΡΡΠΈΡ
ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Income
, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π²ΡΠ΅ ΡΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² ΡΡΠ΅Π· ΡΠΈΠΏΠ° Income
. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ calculateNetIncome
Ρ ΡΡΠΈΠΌ ΡΡΠ΅Π·ΠΎΠΌ, ΠΈ ΠΎΠ½Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ Π΄ΠΎΡ
ΠΎΠ΄Π° ΠΈ Π΄ΠΎΡ
ΠΎΠ΄ ΠΎΡ Π½ΠΈΡ
.
ΠΠΎΡ ΠΏΠΎΠ»Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π»Ρ ΡΠΏΡΠ°Π²ΠΊΠΈ.
ΠΏΠ°ΠΊΠ΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ
ΠΈΠΌΠΏΠΎΡΡ (
"fmt"
)
type Income interface {
Π²ΡΡΠΈΡΠ»ΠΈΡΡ () int
source () ΡΡΡΠΎΠΊΠ°
}
type FixedBilling struct {
projectName ΡΡΡΠΎΠΊΠ°
biddedAmount int
}
type TimeAndMaterial struct {
projectName ΡΡΡΠΎΠΊΠ°
noOfHours int
hourlyRate int
}
func (fb FixedBilling) calculate () int {
Π²Π΅ΡΠ½ΡΡΡ fb.biddedAmount
}
func (fb FixedBilling) source () string {
Π²Π΅ΡΠ½ΡΡΡ fb.projectName
}
func (tm TimeAndMaterial) calculate () int {
return tm.noOfHours * tm.hourlyRate
}
func (tm TimeAndMaterial) source () string {
Π²Π΅ΡΠ½ΡΡΡ tm.projectName
}
func calculateNetIncome (ic [] Income) {
var netincome int = 0
Π΄Π»Ρ _, Π΄ΠΎΡ
ΠΎΠ΄: = Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ic {
fmt.Printf ("ΠΠΎΡ
ΠΎΠ΄ ΠΎΡ% s = $% d \ n", Π΄ΠΎΡ
ΠΎΠ΄.source (), Π΄ΠΎΡ
ΠΎΠ΄.calculate ())
ΡΠΈΡΡΡΠΉ Π΄ΠΎΡ
ΠΎΠ΄ + = Π΄ΠΎΡ
ΠΎΠ΄. Π²ΡΡΠΈΡΠ»ΠΈΡΡ ()
}
fmt.Printf ("Π§ΠΈΡΡΠ°Ρ ΠΏΡΠΈΠ±ΡΠ»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ = $% d", ΡΠΈΡΡΡΠΉ Π΄ΠΎΡ
ΠΎΠ΄)
}
func main () {
project1: = FixedBilling {projectName: "Project 1", biddedAmount: 5000}
project2: = FixedBilling {projectName: "Project 2", biddedAmount: 10000}
project3: = TimeAndMaterial {projectName: "Project 3", noOfHours: 160, hourlyRate: 25}
yieldStreams: = [] ΠΠΎΡ
ΠΎΠ΄ {ΠΏΡΠΎΠ΅ΠΊΡ1, ΠΏΡΠΎΠ΅ΠΊΡ2, ΠΏΡΠΎΠ΅ΠΊΡ3}
CalculateNetIncome (Π΄ΠΎΡ
ΠΎΠ΄Π½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ)
}
ΠΠ΅Π³ Π½Π° Π΄Π΅ΡΡΠΊΠΎΠΉ ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠ΅
ΠΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠ²Π΅Π΄Π΅Ρ
ΠΠΎΡ
ΠΎΠ΄ ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° 1 = 5000 Π΄ΠΎΠ»Π»Π°ΡΠΎΠ² Π‘Π¨Π
ΠΠΎΡ
ΠΎΠ΄ ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° 2 = 10000 $
ΠΠΎΡ
ΠΎΠ΄ ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° 3 = 4000 $
Π§ΠΈΡΡΠ°Ρ ΠΏΡΠΈΠ±ΡΠ»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ = 19000 $
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π΄ΠΎΡ ΠΎΠ΄Π° ΠΊ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²ΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅
ΠΠΎΠΏΡΡΡΠΈΠΌ, ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Π½Π°ΡΠ»Π° Π½ΠΎΠ²ΡΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π΄ΠΎΡ
ΠΎΠ΄Π° ΡΠ΅ΡΠ΅Π· ΡΠ΅ΠΊΠ»Π°ΠΌΡ.ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠΎΡ Π½ΠΎΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π΄ΠΎΡ
ΠΎΠ΄ΠΎΠ² ΠΈ ΡΠ°ΡΡΡΠΈΡΠ°ΡΡ ΠΎΠ±ΡΠΈΠΉ Π΄ΠΎΡ
ΠΎΠ΄, Π½Π΅ Π²Π½ΠΎΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΡΠ½ΠΊΡΠΈΡ calculateNetIncome
. ΠΡΠΎ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΡ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΡΠΈΠΏ Advertising
ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ calculate (),
ΠΈ source ()
Π΄Π»Ρ ΡΠΈΠΏΠ° Advertising
.
ΡΠΈΠΏ Π Π΅ΠΊΠ»Π°ΠΌΠ½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° {
adName ΡΡΡΠΎΠΊΠ°
CPC int
noOfClicks int
}
func (a Advertising) calculate () int {
Π²Π΅ΡΠ½ΡΡΡ.Π¦Π΅Π½Π° Π·Π° ΠΊΠ»ΠΈΠΊ * a.noOfClicks
}
func (a Advertising) source () string {
Π²Π΅ΡΠ½ΡΡΡ a.adName
}
Π’ΠΈΠΏ Advertising
ΠΈΠΌΠ΅Π΅Ρ ΡΡΠΈ ΠΏΠΎΠ»Ρ: adName
, CPC
(ΡΠ΅Π½Π° Π·Π° ΠΊΠ»ΠΈΠΊ) ΠΈ noOfClicks
(ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠ»ΠΈΠΊΠΎΠ²). ΠΠ±ΡΠΈΠΉ Π΄ΠΎΡ
ΠΎΠ΄ ΠΎΡ ΡΠ΅ΠΊΠ»Π°ΠΌΡ — ΡΡΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ CPC
ΠΈ noOfClicks
.
ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡ main
, ΡΡΠΎΠ±Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΡΠΎΡ Π½ΠΎΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π΄ΠΎΡ
ΠΎΠ΄ΠΎΠ².
func main () {
project1: = FixedBilling {projectName: "Project 1", biddedAmount: 5000}
project2: = FixedBilling {projectName: "Project 2", biddedAmount: 10000}
project3: = TimeAndMaterial {projectName: "Project 3", noOfHours: 160, hourlyRate: 25}
bannerAd: = Π Π΅ΠΊΠ»Π°ΠΌΠ° {adName: "Banner Ad", CPC: 2, noOfClicks: 500}
popupAd: = Π Π΅ΠΊΠ»Π°ΠΌΠ° {adName: "Popup Ad", CPC: 5, noOfClicks: 750}
yieldStreams: = [] ΠΠΎΡ
ΠΎΠ΄ {project1, project2, project3, bannerAd, popupAd}
CalculateNetIncome (Π΄ΠΎΡ
ΠΎΠ΄Π½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ)
}
ΠΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ Π΄Π²Π° ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ: bannerAd
ΠΈ popupAd
.Π‘ΡΠ΅Π· yieldStreams
Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π΄Π²Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ
ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ.
ΠΠΎΡ ΠΏΠΎΠ»Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΠΊΠ»Π°ΠΌΡ.
ΠΏΠ°ΠΊΠ΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ
ΠΈΠΌΠΏΠΎΡΡ (
"fmt"
)
type Income interface {
Π²ΡΡΠΈΡΠ»ΠΈΡΡ () int
source () ΡΡΡΠΎΠΊΠ°
}
type FixedBilling struct {
projectName ΡΡΡΠΎΠΊΠ°
biddedAmount int
}
type TimeAndMaterial struct {
projectName ΡΡΡΠΎΠΊΠ°
noOfHours int
hourlyRate int
}
type Advertising struct {
adName ΡΡΡΠΎΠΊΠ°
CPC int
noOfClicks int
}
func (fb FixedBilling) calculate () int {
Π²Π΅ΡΠ½ΡΡΡ fb.biddedAmount
}
func (fb FixedBilling) source () string {
Π²Π΅ΡΠ½ΡΡΡ fb.projectName
}
func (tm TimeAndMaterial) calculate () int {
return tm.noOfHours * tm.hourlyRate
}
func (tm TimeAndMaterial) source () string {
Π²Π΅ΡΠ½ΡΡΡ tm.projectName
}
func (a Advertising) calculate () int {
Π²Π΅ΡΠ½ΡΡΡ a.CPC * a.noOfClicks
}
func (a Advertising) source () string {
Π²Π΅ΡΠ½ΡΡΡ a.adName
}
func calculateNetIncome (ic [] Income) {
var netincome int = 0
Π΄Π»Ρ _, Π΄ΠΎΡ
ΠΎΠ΄: = Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ic {
fmt.Printf ("ΠΠΎΡ
ΠΎΠ΄ ΠΎΡ% s = $% d \ n", Π΄ΠΎΡ
ΠΎΠ΄.source (), Π΄ΠΎΡ
ΠΎΠ΄.calculate ())
ΡΠΈΡΡΡΠΉ Π΄ΠΎΡ
ΠΎΠ΄ + = Π΄ΠΎΡ
ΠΎΠ΄. Π²ΡΡΠΈΡΠ»ΠΈΡΡ ()
}
fmt.Printf ("Π§ΠΈΡΡΠ°Ρ ΠΏΡΠΈΠ±ΡΠ»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ = $% d", ΡΠΈΡΡΡΠΉ Π΄ΠΎΡ
ΠΎΠ΄)
}
func main () {
project1: = FixedBilling {projectName: "Project 1", biddedAmount: 5000}
project2: = FixedBilling {projectName: "Project 2", biddedAmount: 10000}
project3: = TimeAndMaterial {projectName: "Project 3", noOfHours: 160, hourlyRate: 25}
bannerAd: = Π Π΅ΠΊΠ»Π°ΠΌΠ° {adName: "Banner Ad", CPC: 2, noOfClicks: 500}
popupAd: = Π Π΅ΠΊΠ»Π°ΠΌΠ° {adName: "Popup Ad", CPC: 5, noOfClicks: 750}
yieldStreams: = [] ΠΠΎΡ
ΠΎΠ΄ {project1, project2, project3, bannerAd, popupAd}
CalculateNetIncome (Π΄ΠΎΡ
ΠΎΠ΄Π½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ)
}
ΠΠ΅Π³ Π½Π° Π΄Π΅ΡΡΠΊΠΎΠΉ ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠ΅
ΠΡΡΠ΅ΡΠΏΠΎΠΌΡΠ½ΡΡΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠ²Π΅Π΄Π΅Ρ
ΠΠΎΡ
ΠΎΠ΄ ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° 1 = 5000 Π΄ΠΎΠ»Π»Π°ΡΠΎΠ² Π‘Π¨Π
ΠΠΎΡ
ΠΎΠ΄ ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° 2 = 10000 $
ΠΠΎΡ
ΠΎΠ΄ ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° 3 = 4000 $
ΠΠΎΡ
ΠΎΠ΄ ΠΎΡ Π±Π°Π½Π½Π΅ΡΠ½ΠΎΠΉ ΡΠ΅ΠΊΠ»Π°ΠΌΡ = 1000 Π΄ΠΎΠ»Π»Π°ΡΠΎΠ² Π‘Π¨Π.
ΠΠΎΡ
ΠΎΠ΄ ΠΎΡ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅ΠΉ ΡΠ΅ΠΊΠ»Π°ΠΌΡ = 3750 Π΄ΠΎΠ»Π»Π°ΡΠΎΠ² Π‘Π¨Π.
Π§ΠΈΡΡΠ°Ρ ΠΏΡΠΈΠ±ΡΠ»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ = 23750 $
ΠΡ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΌΡ Π½Π΅ Π²Π½Π΅ΡΠ»ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΡΠ½ΠΊΡΠΈΡ calculateNetIncome
, Ρ
ΠΎΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π½ΠΎΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π΄ΠΎΡ
ΠΎΠ΄ΠΎΠ².ΠΡΠΎΡΡΠΎ ΡΡΠΎ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ ΠΈΠ·-Π·Π° ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ°. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½ΠΎΠ²ΡΠΉ ΡΠΈΠΏ Advertising
ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π» ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Income
, ΠΌΡ ΡΠΌΠΎΠ³Π»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΅Π³ΠΎ Π² ΡΡΠ΅Π· yieldStreams
. Π€ΡΠ½ΠΊΡΠΈΡ calculateNetIncome
ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°Π»Π° Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ
-Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½Π° ΠΌΠΎΠ³Π»Π° Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ calculate ()
ΠΈ source ()
ΡΠΈΠΏΠ° Advertising
.
ΠΠ° ΡΡΠΎΠΌ ΠΌΡ ΠΏΠΎΠ΄ΠΎΡΠ»ΠΈ ΠΊ ΠΊΠΎΠ½ΡΡ ΡΡΠΎΠ³ΠΎ ΡΡΠΎΠΊΠ°. Π₯ΠΎΡΠΎΡΠ΅Π³ΠΎ Π΄Π½Ρ.
Π‘Π»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ — Defer
.