class POINT inherit
ARITHMETIC
feature
... ΠΡΡΠ°Π»ΡΠ½Π°Ρ ΡΠ°ΡΡΡ ΠΊΠΎΠ΄Π° Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ...
end
ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΡΠΈΠ»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ
ΠΠ±ΡΠ°ΡΠΈΠΌΡΡ ΡΠ΅ΠΏΠ΅ΡΡ ΠΊ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΌ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌ ΠΊΠ»Π°ΡΡΠ° POINT ΠΈ ΠΏΠΎΠΏΡΡΠ°Π΅ΠΌΡΡ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½ΠΎ ΡΠΈΠΏΠΈΡΠ½ΠΎΠ΅ ΡΠ΅Π»ΠΎ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ Π΅Π³ΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ. ΠΠ°Π»Π΅Π΅ Π²ΡΡΡΠ½ΠΈΠΌ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΊΠ»Π°ΡΡ ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ - ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ.
Π’Π΅ΠΊΡΡΠΈΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ
ΠΠ±ΡΠ°ΡΠΈΠΌΡΡ ΠΎΠΏΡΡΡ ΠΊ ΡΠ΅ΠΊΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ translate:
translate (a, b: REAL) is
-- ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° a ΠΏΠΎ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΠΈ, b ΠΏΠΎ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΠΈ
do
x:= x + a
y:= y + b
end
ΠΠ° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄ ΡΡΠΎΡ ΡΠ΅ΠΊΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΠΏΠΎΠ½ΡΡΠ΅Π½ - Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΎΡΠΊΠΈ Π½Π° ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ a ΠΏΠΎ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΠΈ ΠΈ b ΠΏΠΎ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ a ΠΏΡΠΈΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΠΊ x, Π° b ΠΊ y. ΠΡΠΈ Π±ΠΎΠ»Π΅Π΅ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΌ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠΈ Π²ΡΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π΅ ΡΡΠΎΠ»Ρ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠΌ. ΠΠ· ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΠΎ ΠΊΠ°ΠΊΠΎΠΉ ΡΠΎΡΠΊΠ΅ ΠΈΠ΄Π΅Ρ ΡΠ΅ΡΡ. ΠΠ°ΠΊΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ x ΠΈ y, ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΡΠΈΠ±Π°Π²Π»ΡΡΡΡΡ a ΠΈ b? ΠΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ ΡΠ²ΡΠ·Π°Π½ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΡΡ Π°ΡΠΏΠ΅ΠΊΡΠΎΠ² ΠΠ-ΡΡΠΈΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΡΠ²Π΅Ρ, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ Π΄Π΅ΡΠ°Π»ΡΡ .
Π’Π΅ΠΊΡΡ ΠΊΠ»Π°ΡΡΠ° ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΎΡΠ΅ΠΊ. ΠΡΠΎ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ² ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΠΏΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. ΠΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π½Π°Π·Π²Π°ΡΡ ΡΡΠΎΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ "ΡΠΎΡΠΊΠΎΠΉ Π½Π° ΡΠ»ΠΈΡΠ΅" ΠΏΠΎ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π³Π°Π·Π΅ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΌΠ½Π΅Π½ΠΈΠ΅ "ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° Ρ ΡΠ»ΠΈΡΡ". ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈΠΌΡ - ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ°.
ΠΠ½ΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΠ²Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ. ΠΠ°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ
Current
ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ. Π ΡΠ΅ΠΊΡΡΠ΅ ΠΊΠ»Π°ΡΡΠ° Current ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Current ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ distance ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ»Π°ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°, Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Π»ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ p Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ; Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π²Π½ΡΠ»ΡΡ Π±Ρ Π½ΡΠ»Ρ Π±Π΅Π· ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ. ΠΡΠ° Π²Π΅ΡΡΠΈΡ distance Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
distance (p: POINT): REAL is
-- Π Π°ΡΡΡΠΎΡΠ½ΠΈΠ΅ Π΄ΠΎ ΡΠΎΡΠΊΠΈ p
do
if p /= Current then
Result := sqrt ((x - p.x)^2 + (y- p.y)^2)
end
end
ΠΠ΄Π΅ΡΡ /= ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π½Π΅ΡΠ°Π²Π΅Π½ΡΡΠ²Π°. Π ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ°Π½Π΅Π΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎΠΌ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ»ΠΎΠ²Π½Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π½Π΅ Π½ΡΠΆΠ΄Π°Π΅ΡΡΡ Π² ΡΠ°ΡΡΠΈ else, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π²Π΅Π½ Π½ΡΠ»Ρ ΠΏΡΠΈ p = Current.
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ, ΠΈ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Current ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ. Π’Π°ΠΊ ΡΡΡΠ»ΠΊΠ° Π½Π° x Π² ΡΠ΅Π»Π΅ translate ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ "Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ x ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°" Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΡΠ½Π΅Π½ΠΈΡ.
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΎΡΡΠ°Π΅ΡΡΡ Π·Π°Π³Π°Π΄ΠΊΠΎΠΉ, ΠΊΡΠΎ ΠΆΠ΅ ΠΎΠ½ - "Current"? ΠΡΠ²Π΅Ρ ΠΏΡΠΈΠ΄Π΅Ρ ΠΏΠΎΠ·ΠΆΠ΅ ΠΏΡΠΈ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΏΠΎΠΊΠ° ΠΆΠ΅ ΠΏΡΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠΈ ΡΠ΅ΠΊΡΡΠ° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠ»Π°Π³Π°ΡΡ, ΡΡΠΎ Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π΅ΡΠ²Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° - ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°.
ΠΠ»ΠΈΠ΅Π½ΡΡ ΠΈ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠΈ
ΠΠ³Π½ΠΎΡΠΈΡΡΡ ΡΡΠ΄ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ², ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ Π·Π°Π³Π°Π΄ΠΊΠΎΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Current, ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ Π²ΡΡΡΠ½Π΅Π½Π½ΡΠΌ, ΠΊΠ°ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΏΡΠΎΡΡΡΠ΅ ΠΊΠ»Π°ΡΡΡ. Π’Π΅ΠΏΠ΅ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡΡΠ΄ΠΈΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ, - ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² Π΄ΡΡΠ³ΠΈΡ ΠΊΠ»Π°ΡΡΠ°Ρ . ΠΡΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΌ ΠΠ-ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ.
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ Π»ΠΈΡΡ Π΄Π²Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, POINT. ΠΠ΅ΡΠ²ΡΠΉ ΡΠΏΠΎΡΠΎΠ± - Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅, Π±ΡΠ΄Π΅Ρ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ ΠΏΠΎΠ·Π΄Π½Π΅Π΅. ΠΠ»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΠΎΡΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ»Π°ΡΡ, ΡΠ²Π»ΡΡΡΠΈΠΉΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ (client) ΠΊΠ»Π°ΡΡΠ° POINT. (ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΡΠ²ΡΡΠ΅Π½Ρ Π»Π΅ΠΊΡΠΈΠΈ 14-16.)
Π§ΡΠΎΠ±Ρ ΡΡΠ°ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ° S, ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΠΈΠΉ ΠΏΡΡΡ - ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΡΡΡΠ½ΠΎΡΡΡ ΡΠΈΠΏΠ° S.
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅: ΠΊΠ»ΠΈΠ΅Π½Ρ, ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊ
ΠΡΡΡΡ S Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠ»Π°ΡΡ. ΠΠ»Π°ΡΡ C Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ (client) S, Π΅ΡΠ»ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡΡΠ½ΠΎΡΡΠΈ a: S. ΠΠ»Π°ΡΡ S Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠΎΠΌ (supplier) C.
Π ΡΡΠΎΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ a ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠΌ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΊΠ»Π°ΡΡΠ° C, ΠΈΠ»ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ½ΠΎΡΡΡΡ, ΠΈΠ»ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΠΊΠ»Π°ΡΡΠ΅ C.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π°Π»ΠΈΡΠΈΠ΅ Π² ΠΊΠ»Π°ΡΡΠ΅ POINT ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ x, y, rho, theta ΠΈ distance Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎΡ ΠΊΠ»Π°ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ° REAL. ΠΠ°ΠΏΡΠΎΡΠΈΠ², Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΌΠΎΠ³ΡΡ ΡΡΠ°ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ POINT. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
class GRAPHICS feature
p1: POINT
...
some_routine is
-- ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Ρ p1.
do
... Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° POINT ΠΈ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ ΠΊ p1 ...
p1.translate (4.0, -1.5) --**
...
end
...
end
ΠΠ΅ΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠΉ "--**" Π°ΡΡΠΈΠ±ΡΡ p1 ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΊΠ»Π°ΡΡΠ° POINT. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΡΠΊΡ, ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡΡΡ Ρ Π½Π°ΡΠ°Π»ΠΎΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ x = 0, y = 0:
Π ΠΈΡ. 7.6. ΠΠ°ΡΠ°Π»ΠΎ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ
Π ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Π³ΠΎΠ²ΠΎΡΡΡ, ΡΡΠΎ ΡΡΡΠ½ΠΎΡΡΡ p1 ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π° (attached) ΠΊ Π΄Π°Π½Π½ΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ (ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠ²ΡΠ·Π°Π½ Ρ ΡΡΡΠ½ΠΎΡΡΡΡ). ΠΠ° Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡΡΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ ΠΎΠ±ΡΠ΅ΠΊΡ (ΡΡΡΠΎΠΊΠ° "... Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° POINT ..." Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° Π½Π΅ ΡΠ°ΡΠΊΡΡΡΠ°). Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π»Π΅ΠΊΡΠΈΠΈ ΡΡΠΈ Π²ΠΎΠΏΡΠΎΡΡ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠ±ΡΡΠΆΠ΄Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ. ΠΠΎΠΊΠ° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π·Π½Π°ΡΡ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΈ ΡΠ²ΡΠ·Π°Π½ Ρ ΡΡΡΠ½ΠΎΡΡΡΡ p1 (ΠΎΠ½Π° ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π° ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ).
ΠΡΠ·ΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°
ΠΡΠΌΠ΅ΡΠ΅Π½Π½Π°Ρ Π·Π²Π΅Π·Π΄ΠΎΡΠΊΠ°ΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ
p1.translate (4.0, -1.5)
Π·Π°ΡΠ»ΡΠΆΠΈΠ²Π°Π΅Ρ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΠΠ-Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ (basic mechanism of object-oriented computation). ΠΡΠΎ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈΠ»ΠΈ Π²ΡΠ·ΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° (feature call). Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΠ-ΡΠΈΡΡΠ΅ΠΌΡ Π²ΡΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΡΡ ΠΏΡΡΠ΅ΠΌ Π²ΡΠ·ΠΎΠ²Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π²ΡΠ·ΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° translate ΠΊΠ»Π°ΡΡΠ° POINT ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ p1 Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ 4.0 ΠΈ -1.5, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ a ΠΈ b Π² ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ translate Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅. Π ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡ Π΄Π²Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠΎΡΠΌΡ Π·Π°ΠΏΠΈΡΠΈ Π²ΡΠ·ΠΎΠ²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°.
x.f
x.f (u, v, ...)
ΠΠ΄Π΅ΡΡ x Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ΅Π»ΡΡ (target) Π²ΡΠ·ΠΎΠ²Π° ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΡΠ½ΠΎΡΡΡΡ ΠΈΠ»ΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Ρ ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ. Π¦Π΅Π»Ρ x, ΠΊΠ°ΠΊ Π»ΡΠ±Π°Ρ ΡΡΡΠ½ΠΎΡΡΡ ΠΈΠ»ΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΈΠΌΠ΅Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΠΈΠΏ, Π·Π°Π΄Π°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡΠΎΠΌ C, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, f Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ° C. Π’ΠΎΡΠ½Π΅Π΅ Π³ΠΎΠ²ΠΎΡΡ, Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ f Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠΌ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ Π±Π΅Π· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², Π° Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ - ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ. ΠΠ½Π°ΡΠ΅Π½ΠΈΡ u, v, ... Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ (actual arguments) Π²ΡΠ·ΠΎΠ²Π° ΠΈ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΡΠΈΡΠ»ΠΎ ΠΈ ΡΠΈΠΏ ΠΊΠΎΡΠΎΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π² ΡΠΎΡΠ½ΠΎΡΡΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠΈΡΠ»Ρ ΠΈ ΡΠΈΠΏΡ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² (formal arguments) ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΡ Π΄Π»Ρ f Π² ΠΊΠ»Π°ΡΡΠ΅ C.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ f Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ΅Π½ (ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½) ΠΊΠ»ΠΈΠ΅Π½ΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΌΡ Π΄Π°Π½Π½ΡΠΉ Π²ΡΠ·ΠΎΠ². ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ° ΠΏΠΎΡΠ²ΡΡΠ΅Π½ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π·Π΄Π΅Π» (ΡΠΌ. Π»Π΅ΠΊΡΠΈΡ 7), ΠΏΠΎΠΊΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π²ΡΠ΅ΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ.