ΠΠ°ΡΡΠΈΠ²Ρ Π΄Π΅Π»Π΅Π³Π°ΡΠΎΠ².
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΊΡΡΡ Ρ#
Π ΡΠΈΠΊΠ»Π΅ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π° (trace) ΡΠΎ ΡΡΡΠ»ΠΊΠ°ΠΌΠΈ Π½Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ Π΄Π΅Π»Π΅Π³Π°ΡΠ° ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ Π²ΡΠ²ΠΎΠ΄ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΌΠ΅ΡΠΎΠ΄Π°, Π°Π΄ΡΠ΅ΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π°. Π’ΡΡ ΠΆΠ΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΈΠΌΡ ΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΡΡΠΎΡ Π½Π΅ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΈ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΆΠ΅ ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΊΠ»Π°ΡΡΠ° Π΄Π΅Π»Π΅Π³Π°ΡΠΎΠ² (Method ΠΈ Target). ΠΠ΅Π»Π΅Π³Π°ΡΡ, ΡΠΎΡΠ½Π΅Π΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠ°ΡΡΠΈΠ²Ρ Π΄Π΅Π»Π΅Π³Π°ΡΠΎΠ². ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΊΡΡΡ Ρ# (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΠ΅Π»Π΅Π³Π°ΡΡ, ΡΠΎΡΠ½Π΅Π΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ Π΄Π΅Π»Π΅Π³Π°ΡΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Ρ. Π’Π°ΠΊΠ°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π·Π°Π΄Π°Π²Π°ΡΡ Π½Π°Π±ΠΎΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ (ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΉ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ), ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΡΠ΅ΠΌ Π±ΡΠ΄ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΎΠ±ΠΎΡΠ° ΠΏΠΎ ΠΏΠ»ΠΎΡΠΊΠΎΠΉ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠΈ. ΠΡΡΡΡ ΡΠΎΠ±ΠΎΡ ΡΠΌΠ΅Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ΅ΡΡΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ (Π²ΠΏΠ΅ΡΠ΅Π΄, Π½Π°Π·Π°Π΄, Π½Π°ΠΏΡΠ°Π²ΠΎ, Π½Π°Π»Π΅Π²ΠΎ), ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ Π΅Π³ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ΄ΠΈΠ½ ΡΠ°Π³. Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΠ±ΠΎΡΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ±ΠΎΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ΡΠΎΠ±ΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΠ±ΡΠΈΡΡ ΠΎ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡΠΎΠΌ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΡΡΠ»ΠΎΠΊ Π½Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ Π΄Π΅Π»Π΅Π³Π°ΡΠ°. ΠΠ΅ΡΠ΅Π±ΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π²ΡΡ ΡΠ΅ΠΏΠΎΡΠΊΡ ΠΊΠΎΠΌΠ°Π½Π΄.
Π’Π°ΠΊ ΠΊΠ°ΠΊ Π½Π°ΡΠ΅ΠΉ ΡΠ΅Π»ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ»Π»ΡΡΡΡΠ°ΡΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π΄Π΅Π»Π΅Π³Π°ΡΠΎΠ², ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΡΠΈΠΌ Π·Π°Π΄Π°ΡΡ. ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΠΊΠ»Π°ΡΡ ΡΠΎΠ±ΠΎΡΠΎΠ² Robot Ρ ΡΠ΅ΡΡΡΡΠΌΡ ΡΠΆΠ΅ Π½Π°Π·Π²Π°Π½Π½ΡΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ (ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ) ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Π΄Π»Ρ Π²ΡΠ΄Π°ΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΡΠΎΠ±ΠΎΡΠ°. ΠΠ½Π΅ ΠΊΠ»Π°ΡΡΠ° ΡΠΎΠ±ΠΎΡΠΎΠ² ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΡΠΈΠΏ Π΄Π΅Π»Π΅Π³Π°ΡΠΎΠ² Steps, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΠ±ΠΎΡΠΎΠΌ. Π Π³Π»Π°Π²Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° ΡΠΎΠ±ΠΎΡΠΎΠ² ΠΈ ΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π΅Π³ΠΎ ΡΡΡΠ»ΠΊΡ rob. ΠΠ°ΡΡΠΈΠ² Π΄Π΅Π»Π΅Π³Π°ΡΠΎΠ² trace Π±ΡΠ΄Π΅ΠΌ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ, ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Ρ Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π±Π΅Π·ΡΠΌΡΠ½Π½ΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ Π΄Π΅Π»Π΅Π³Π°ΡΠ°, Π°Π΄ΡΠ΅ΡΡΡΡΠΈΠ΅ ΡΠ°Π·Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ»Π°ΡΡΠ° ΡΠΎΠ±ΠΎΡΠΎΠ². ΠΡΠΎΡ ΠΌΠ°ΡΡΠΈΠ² Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄, ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°-ΡΠΎΠ±ΠΎΡΠ°. ΠΠΎΡΠ»Π΅ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΠ΅ΡΠ΅Π±Π΅ΡΠ΅ΠΌ Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΡΠΈΠΊΠ»Π΅ ΠΈ Ρ ΠΈΡ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ·ΠΎΠ²Π΅ΠΌ Π²ΡΠ΅ Π·Π°ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ±ΠΎΡΠ°.
// 1702.cs — ΠΌΠ°ΡΡΠΈΠ² Π΄Π΅Π»Π΅Π³Π°ΡΠΎΠ² using System;
class Robot // ΠΊΠ»Π°ΡΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΠ±ΠΎΡΠ°
{
int Ρ , Ρ; // ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠ±ΠΎΡΠ° Π½Π° ΠΏΠ»ΠΎΡΠΊΠΎΡΡΠΈ public void night () { Ρ ++; } // Π½Π°ΠΏΡΠ°Π²ΠΎ
public void left () { Ρ —; } // Π½Π°Π»Π΅Π²ΠΎ
public void forward () { Ρ++; } // Π²ΠΏΠ΅ΡΠ΅Π΄
public void backwardQ { Ρ—; } 11 Π½Π°Π·Π°Π΄ public void position () // ΡΠΎΠΎΠ±ΡΠΈΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ
{
Console.WriteLine («The Robot position: x={0}, y={l}» j x, y);
} }
delegate void Steps (); 11 Π΄Π΅Π»Π΅Π³Π°Ρ-ΡΠΈΠΏ
class Program.
{
static void Main ().
{
Robot rob = new RobotQ; // ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠΎΠ±ΠΎΡ Steps[] trace = {new Steps (rob.backward),.
new Steps (rob.backward), new Steps (rob.left)}; for (int i = 0; i < trace. Length; i++).
{
Console.WriteLine («Method={0}, Target={l}», trace[i]. Method, trace[i]. Target); trace[i]();
}
rob.position (); // ΡΠΎΠΎΠ±ΡΠΈΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ
}
}
Π ΡΠΈΠΊΠ»Π΅ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π° (trace) ΡΠΎ ΡΡΡΠ»ΠΊΠ°ΠΌΠΈ Π½Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ Π΄Π΅Π»Π΅Π³Π°ΡΠ° ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ Π²ΡΠ²ΠΎΠ΄ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΌΠ΅ΡΠΎΠ΄Π°, Π°Π΄ΡΠ΅ΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π°. Π’ΡΡ ΠΆΠ΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΈΠΌΡ ΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΡΡΠΎΡ Π½Π΅ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΈ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΆΠ΅ ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΊΠ»Π°ΡΡΠ° Π΄Π΅Π»Π΅Π³Π°ΡΠΎΠ² (Method ΠΈ Target).
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
Method=Void backwardQ, Target=Robot.
Method=Void backwardQ, Target=Robot.
Method=Void left (), Target=Robot.
The Robot position: x=-l, y=-2.
ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ»Π°ΡΡΠ° Robot Π΅Π³ΠΎ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°Π²Π½Ρ Π½ΡΠ»Ρ (Ρ = 0, Ρ = 0). ΠΠΌΠ΅Π½Π½ΠΎ ΠΈΠ· ΡΡΠΎΠΉ ΡΠΎΡΠΊΠΈ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ — Π΄Π²Π° ΡΠ°Π³Π° Π½Π°Π·Π°Π΄ ΠΈ ΠΎΠ΄ΠΈΠ½ Π²Π»Π΅Π²ΠΎ, ΡΡΠΎ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ (Ρ = -1, Ρ = -2).