рджрд┐рд╡реНрдп рдЧрдгрд┐рдд рднрд╛рд╖рд╛ тДв
рдХрд┐рд╕реА рддрд░рд╣, рдпрд╣ рдорд╛рдирд╡ рдЬрд╛рддрд┐ рдХреЗ рд▓рд┐рдП рд╣реБрдЖ рдХрд┐ рд╕рднреА рдореМрдЬреВрджрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдЧрдгрд┐рддрдЬреНрдЮреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдЕрдЬреАрдм, рд▓реЗрдХрд┐рди рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдореМрд▓рд┐рдХ, рдмреБрдирд┐рдпрд╛рджреА, рд╕рд╣рд╛рдпрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкреИрдЯрд░реНрди рдпрд╛ рддреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдпрд╛ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╣реИрдВред OOP рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рд▓рд╛рд░реНрдЬ рдПрдВрдб рдХреЙрдореНрдкреНрд▓реЗрдХреНрд╕ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рдпрджрд┐ рдЖрдк рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рдКрдк рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рддрдм рдзреНрд╡рд╕реНрдд рд╣реЛ рдЬрд╛рддреА рд╣реИ рдЬрдм рддреГрддреАрдп-рдкрдХреНрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рдФрд░ рдпрд╣ рд╣рдореЗрд╢рд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ)ред рдпрд╣ рдмрд╣реБрдд рдЦреБрд╢реА рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рдЕрдЧрд░ рд░рдЪрдирд╛рдХрд╛рд░ рдЕрдЪреНрдЫреЗ рдФрд░ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд▓реЛрдЧ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреА рдирд╕реЛрдВ рдкрд░ рджрдпрд╛ рдЖрддреА рд╣реИ рдФрд░ рдмрд╛рд░-рдмрд╛рд░ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЗрд╕ рдкреВрд░реА рдЕрд░реНрдерд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЛ рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рдФрд░ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдкрджрд╛рдиреБрдХреНрд░рдо рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рд╣реИред рдпрджрд┐ рд╡реЗ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреЛрдб рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкрдардиреАрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде "рдЧреВрдврд╝ рд▓рд┐рд╕реНрдк" рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╣реИред рдЖрдкрдХреЛ рдмрд╕ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдлрдВрдХреНрд╢рди, рдЙрд╕рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рд╡рд╣ рдХреНрдпрд╛ рджреЗрддрд╛ рд╣реИред рдРрд╕реА рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдбреАрдмрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ ( рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯреНрд╕ рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рд╕рд╣рд┐рдд)ред
рднрд╛рд╖рд╛ рднрд╛рд╖рд╛рдУрдВ рдХреА рдЕрдкрдардиреАрдп рдФрд░ рдЧреВрдврд╝ рдкреНрд░рдХреГрддрд┐ рдХрд╛ рдорд┐рдердХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рджреНрд╡рд╛рд░рд╛ рдХреЛрдб рдХреА рдзрд╛рд░рдгрд╛ рдореЗрдВ рдЕрдВрддрд░ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдЕрдирд┐рд╡рд╛рд░реНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЬреЛрд░ рдХреЛрдб рдХреЗ "рдорд╛рдирд╡, рд╕реБрд╕рдВрдЧрдд рдзрд╛рд░рдгрд╛" рдкрд░ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
рдЗрдВрдЯ рдЬреАрд╡рди () {// рдорд╛рдирд╡ рдкреАрдЯрд░ = рдирдпрд╛ рдорд╛рдирд╡ (); // рдкреЗрдЯреНрдпрд╛, рдХреГрдкрдпрд╛ рдЬрдиреНрдо рд▓реЗрдВ рднрдВрдбрд╛рд░рдг рд╢реЗрд▓реНрдл = рдирдпрд╛ рднрдВрдбрд╛рд░рдг (); // рд╢реЗрд▓реНрдл, рдХреГрдкрдпрд╛ рджрд┐рдЦрд╛рдИ рджреЗрдВ рдкреАрдЯрд░рд╕реИрдЯрд╕ = "рдХреБрдЫ рдЕрдЪреНрдЫрд╛"; // рдкреЗрдЯреНрдпрд╛, рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдкреАрдЯрд░.рдЧреЗрдЯрдкрд╛рдЗ (рд╢реЗрд▓реНрдл); // рдкрд╛рдИ рдХреЛ рд╢реЗрд▓реНрдл рд╕реЗ рд▓реЗрдВ рд╡рд╛рдкрд╕реА 0; // рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рд╣рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЖрдк рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рдж } // рдЦрддреНрдо
рдХрд╛рд░реНрдпрд╛рддреНрдордХ рднрд╛рд╖рд╛, рд╡рд┐рдЪрд┐рддреНрд░ рд░реВрдк рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдХреЛрдИ рдХрдо рдкрдардиреАрдп рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реИ рдХрд┐ рд╡реЗ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдПрдХ рд╕рдорд╛рдзрд╛рди , рдПрдХ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рд╕реВрдЪреА рдХреЛ рдлрд╝реНрд▓рд┐рдк рдХрд░рддрд╛ рд╣реИ (рдПрд░реНрд▓рд╛рдВрдЧ):
рд░рд┐рд╡рд░реНрд╕ (рд╕реВрдЪреА) -> рдЙрд▓реНрдЯрд╛ (рд╕реВрдЪреА, [])ред рд░рд┐рд╡рд░реНрд╕ ([рд╣реЗрдб | рдЯреЗрд▓], рд░рд┐рдЬрд▓реНрдЯ) -> рд░рд┐рд╡рд░реНрд╕ (рдЯреЗрд▓, [рд╣реЗрдб | рд░рд┐рдЬрд▓реНрдЯрд▓рд┐рд╕реНрдЯ]); рд░рд┐рд╡рд░реНрд╕ ([], рдкрд░рд┐рдгрд╛рдореА) -> ResultListред
рдЗрд╕рдХреА рдкреБрдирд░рд╛рд╡рд░реНрддреА рдкреНрд░рдХреГрддрд┐ рдХреЗ рдХрд╛рд░рдг, рдПрдХ рдЕрдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдирдЬрд╝рд░ рдХреЗ рд╕рд╛рде рдЕрдиреБрднрд╡ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк
рдпрд╣ рд╕рдордп-рд╕рдордп рдкрд░ рд╕рдордЭрдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд╣рд╛рдВ рд╣реИ? рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ рдорд╣рд╛рди рдЬрд╝реЗрди рд╣реИ, рдЬреЛ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред