ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ Π½Π° ΠΏΠ°ΡΠ΅ΡΠ½. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Ρ Π½ΡΠ»Ρ. ΠΡΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ ΠΏΠ°ΡΡ Π·Π°Π΄Π°Ρ Π½Π° ΠΏΠ°ΡΠ΅ΡΠ½Ρ Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΏΠΈΡΠΎΠ½ ΠΈΠ· Π·Π°Π΄Π°ΡΠ½ΠΈΠΊΠ° ΠΠ±ΡΠ°ΠΌΡΠ½ ΡΠΎΠ»ΡΡΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ ΠΎΠΈΠ΅ΠΌ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ(ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ) ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· OOP1Creat8Β°. Prototype (ΠΡΠΎΡΠΎΡΠΈΠΏ) β ΠΏΠΎΡΠΎΠΆΠ΄Π°ΡΡΠΈΠΉ ΠΏΠ°ΡΡΠ΅ΡΠ½. ΠΠ°Π΄Π°Π½ΠΈΠ΅ 2. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ΅ΡΠ°ΡΡ
ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΡΠ²ΡΠ·Π°Π½Π½ΡΡ
Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π°ΠΌΠΈ: AbstractGraphic (Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ ΠΏΡΠ΅Π΄ΠΎΠΊ), Ellip, Line ΠΈ Rect (ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ). ΠΠ»Π°ΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΌΠ΅ΡΠΎΠ΄ Clone Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠΉ ΠΊΠΎΠΏΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π²ΡΠ·Π²Π°Π²ΡΠ΅Π³ΠΎ Π΄Π°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠ΅ΡΠΎΠ΄ ChangeLocation(x1, y1, x2, y2) Ρ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ x1, y1, x2, y2, Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΈ ΠΌΠ΅ΡΠΎΠ΄ Draw Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠΉ ΡΡΡΠΎΠΊΡ. Π ΠΊΠ»Π°ΡΡΠ΅ AbstractGraphic ΠΌΠ΅ΡΠΎΠ΄Ρ Clone, ChangeLocation ΠΈ Draw ΡΠ²Π»ΡΡΡΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΌΠΈ. ΠΠ»Π°ΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ
ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ² ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΠΏΠΎΠ»Ρ x1, y1, x2, y2; ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΠ½ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ Π½ΡΠ»ΡΠΌΠΈ. ΠΠ΅ΡΠΎΠ΄ ChangeLocation ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΡΠΈ ΠΏΠΎΠ»Ρ, Π° ΠΌΠ΅ΡΠΎΠ΄ Draw Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ° ΠΈ ΡΠ΅ΠΊΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ Π±Π΅Π· ΠΏΡΠΎΠ±Π΅Π»ΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, “Line(1,3,-1,5)“). ΠΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° Clone ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈΠ»ΠΈ ΠΎΠ±ΡΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°. Π’Π°ΠΊΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡ GraphEditor, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ. Π ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠ»Π°ΡΡΠ° GraphEditor ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π΄Π²Π° ΡΡΡΠ»ΠΎΡΠ½ΡΡ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° p0, p1 ΡΠΈΠΏΠ° AbstractGraphic, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΡ
ΠΏΡΠΎΡΠΎΡΠΈΠΏΡ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΡ
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²-ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ². ΠΠ»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ· Π΄Π²ΡΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ² ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΡΡ ΡΡΡΡΠΊΡΡΡΡ. ΠΠ»Π°ΡΡ GraphEditor Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π΄Π²Π° ΠΌΠ΅ΡΠΎΠ΄Π°. ΠΠ΅ΡΠΎΠ΄ AddGraphic(ind, x1, y1, x2, y2) Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π² Π½Π°Π±ΠΎΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠ° Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ ind (0 ΠΈΠ»ΠΈ 1) ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π΄Π»Ρ Π½Π΅Π³ΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ. ΠΠ΅ΡΠΎΠ΄ DrawAll Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²ΡΠ΅Ρ
Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΡ
Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΡ
ΠΌΠ΅ΡΠΎΠ΄ Draw (ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠ°Π·Π΄Π΅Π»ΡΡΡΡΡ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠΌ). Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠ»Π°ΡΡΠΎΠ². ΠΠ°Π½Π° Π΄Π²ΡΡ
ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½Π°Ρ ΡΡΡΠΎΠΊΠ° P, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ Π΄Π²Π΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π±ΡΠΊΠ²Ρ ΠΈΠ· Π½Π°Π±ΠΎΡΠ° “E“, “L“, “R“. Π’Π°ΠΊΠΆΠ΅ Π΄Π°Π½ΠΎ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ N (≤ 5) ΠΈ Π½Π°Π±ΠΎΡ ΠΈΠ· N ΠΏΡΡΠ΅ΡΠΎΠΊ ΡΠ΅Π»ΡΡ
ΡΠΈΡΠ΅Π» Π²ΠΈΠ΄Π° (ind, x1, y1, x2, y2), Π³Π΄Π΅ ind ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0 ΠΈΠ»ΠΈ 1, Π° ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π° ΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌΠΈ. Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ GraphEditor, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π² Π΅Π³ΠΎ Π΄Π²ΡΠΌΡ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌ ΡΡΡΠΎΠΊΠΈ P (“E“ β Ellip, “L“ β Line, “R“ β Rect); ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΎΠ² ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² ΡΡΡΠΎΠΊΠ΅ P. ΠΠΎΠ±Π°Π²ΠΈΡΡ Π² Π½Π°Π±ΠΎΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ² N ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²ΡΠ·ΠΎΠ²Ρ ΠΌΠ΅ΡΠΎΠ΄Π° AddGraphic Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠΌΠΈ ΠΏΡΡΠ΅ΡΠΊΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ
ΡΠΈΡΠ΅Π», ΠΈ Π²ΡΠ²Π΅ΡΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ DrawAll. class Ellip: def __init__(self): pass # Implement the “constructor“ def changeLocation(self, x1, y1, x2, y2): pass # Implement the method def draw(self): pass # Implement the method # Implement the Line and Rect classes class GraphEditor: def __init__(self, p0, p1): pass # Implement the “constructor“ def addGraphic(self, ind, x1, y1, x2, y2): pass # Implement the method def drawAll(self): pass # Implement the method.