рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрджреНрднреБрдд рдкрд░рд┐рдЪрдп

рд╢реБрдн рджрд┐рди, рд╣реЗрдмреНрд░ред

рдореИрдВ рдЬрдирддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрджреНрднреБрдд рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рд▓рд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдЬреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рдореВрд▓ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрдж - рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпреЛрдВ рд╣реИ рдФрд░ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд┐рд╕реЗ рд╣реИ? рдЗрд╕рдХрд╛ рдЙрддреНрддрд░ рд╣реИ - рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рдорд╣реАрдиреЛрдВ рдореЗрдВ, рдореИрдВ, рдПрдХ рдорд╣рддреНрд╡рд╛рдХрд╛рдВрдХреНрд╖реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░, рд╕реНрд╡рдпрдВ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЕрдиреНрдп рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдмрдЪреНрдЪреЛрдВ рдХреЛ рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЗрд╕ рдХрдард┐рди рдХрд╛рдо рдореЗрдВ, рдореБрдЭреЗ рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЛ рдКрди рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдХреЛрдб рдХреЗ рдЙрдмрд╛рдК рдФрд░ рдердХрд╛рдК рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрдирдХреА рд░реВрдврд╝рд┐рдпреЛрдВ рдХреЛ рддреЛрдбрд╝ рд╕рдХреЗрдВред рдореЗрд░реЗ рдЧрд╣рд░реЗ рдЕрдлрд╕реЛрд╕ рдХреЗ рд▓рд┐рдП, рдРрд╕реА рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рд╛рдордЧреНрд░рд┐рдпрд╛рдВ рдирд╣реАрдВ рд╣реИрдВред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧ рд╣реИрдВ рдЬреЛ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рд╣рдмрд░ рдкрдврд╝рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рд▓реЗрдЦ рдЙрдирдХреЗ рд▓рд┐рдП рдмреЗрд╣рдж рджрд┐рд▓рдЪрд╕реНрдк рдФрд░ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

рддреЛ, рдореВрд▓ рдпрд╣рд╛рдБ рдЧреАрдд рдЭреЗрдВрдЧ рджреНрд╡рд╛рд░рд╛ рд╣реИред

рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореВрд▓ рдмрд╛рддреЗрдВ


рднрд╛рдЧ 1. рд╕рд░рд▓ рдХреЛрдб рдЙрджрд╛рд╣рд░рдгред

рд╢рд╛рдпрдж рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд╣реИ рдирд╣реАрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдо рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдкрд╛рд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреМрд╢рд▓ рд╣реИред рдЙрдореНрдореАрдж рдирд╣реАрдВ рдереА?
рдЖрдЗрдП рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд╣рдо рдПрдХ рдХрд╛рд░ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рд╣рдорд╛рд░реЗ рд╕рд╛рдордиреЗ рдПрдХ "STOP" рдЪрд┐рдиреНрд╣ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред рдФрд░ рдЖрдк рдХреНрдпрд╛ рдХрд░реЗрдВрдЧреЗ? рддреБрдо рд░реБрдХ рдЬрд╛рдУрдЧреЗ!

рд╣рдорд╛рд░реЗ рджрд┐рдорд╛рдЧ рдХреА рдЧрд╣рд░рд╛рдИ рдореЗрдВ, рдиреНрдпреВрд░реЙрдиреНрд╕ рдХреЗ рдкреНрд▓реЗрдХреНрд╕рд╕ рдореЗрдВ, рдирд┐рдореНрди рдЖрдЬреНрдЮрд╛рдПрдБ рдХреНрд░рдордмрджреНрдз рд╣реИрдВ (рд░реВрдмреА рдкрд░):
if self.saw(stopSign) self.stopCar() end 

"рд╕реНрд╡рдпрдВ" рд╢рдмреНрдж рдХреЗ рдЕрд░реНрде рдХреЛ рд╕рдордЭрдирд╛ рдЖрдкрдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЗрд╕реЗ "I" рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрд░реНрде рд╡рд╣реА рд░рд╣реЗрдЧрд╛ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдПрдВ рдЕрдкрдиреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╢реИрд▓реА рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреА рд╣реИрдВ:
 .() 


рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╕рдВрдЬреНрдЮрд╛ рдХреЛ рд╡рд╕реНрддреБ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рд╡рд╕реНрддреБ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдпреЛрдЧреА рдЪреАрдЬреЗрдВ рдХрд░ рд╕рдХрддреА рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╡рд┐рдзрд┐ рдпрд╛ рдХрд╛рд░реНрдп рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд┐рдзрд┐ рдореЗрдВ рдХреЛрдб рдХреА рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╣реЛрддреА рд╣реИрдВ рдФрд░ рдпрд╣ рдХреЛрдб рд╣рд░ рдмрд╛рд░ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдХреЙрд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рд╕рд┐рд░ рдХреЗ рдЕрдВрджрд░ рдХрд╣реАрдВ рдорд╢реАрди рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╡рд┐рдзрд┐ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддреА рд╣реИ:
 def stopCar() self.stepOnBrakes() self.lookLeft() self.lookRight() end 


рдЫрд╡рд┐

рдХреЛрд╖реНрдардХ рдореЗрдВ рдПрдХ "рдЖрдЗрдЯрдо" рдХреЛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдбреЗрдЯрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдЕрдкрдиреА рд╡рд┐рдзрд┐ рдореЗрдВ рдкрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдЕрдм рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдПрдХ рд╢рд┐рдХреНрд╖рдХ рд╣реИрдВ рдФрд░ рдЖрдк рдЕрднреВрддрдкреВрд░реНрд╡ рдЙрджрд╛рд░рддрд╛ рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рджрд┐рдЦрд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреЗ рд╕рднреА рдЫрд╛рддреНрд░реЛрдВ рдХреЛ рдПрдХ рд╕реНрд╡реАрдЯреА (рдореВрд▓ "рд╢рд╛рдирджрд╛рд░ рд╢рд┐рдХреНрд╖рдХ" рдореЗрдВ рджреЗрддреЗ рд╣реИрдВ, рд╣рдорд╛рд░реЗ рдЕрдХреНрд╖рд╛рдВрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ)ред рдЖрдк рдЕрдкрдиреЗ рдкреНрд░рддреНрдпреЗрдХ рдЫрд╛рддреНрд░ рдХреЛ рдлреЗрд░реЗрд░реЛ рд╡рд┐рддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдк рдПрдХ рдХрдВрдкреНрдпреВрдЯрд░ рдереЗ, рддреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЖрдкрдХреЗ рд╕рд┐рд░ рдкрд░ рд╡рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
 for e in students self.giveChocolateTo( e ) end 

рдЗрд╕ рдХреЛрдб рдореЗрдВ, "рдИ" рдХреЗ рдмрдЬрд╛рдп, рдЖрдкрдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЫрд╛рддреНрд░ рдЬрд┐рд╕реЗ рдЖрдк рдХреИрдВрдбреА рджреЗрддреЗ рд╣реИрдВ, рдмрджрд▓реЗ рдореЗрдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЖрдкрдХреЛ рдХреНрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ, рдЖрдк рдХреЛрдб рдореЗрдВ рдХреИрд╕реЗ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЦреЗрд▓ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣:
 while ( self.amStillAlive() ) self.keepRunning() end 

рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ 90% рддрд░реНрдХ рдХрд╛ рд╣рд┐рд╕рд╛рдм 'рдЕрдЧрд░' рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рд╕реЗ рд╣реИ - рдХрд╛рд░реНрдп рдХреА рдкреНрд░рдЧрддрд┐ рдФрд░ 'рдлреЙрд░' рдФрд░ 'рд▓реВрдкреНрд╕' рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдЖрдкрдХреЛ рдХреЛрдб рдХреА рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБ, рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрддрд╛ рд╣реИ:
 x = 0 while (x > -1) x = x+1 end 

рдПрдХ рдЙрджрд╛рд╣рд░рдг рд▓реЗрддреЗ рд╣реИрдВред
рдкрд╣рд▓реЗ, рд╣рдо рд╡реЗрд░рд┐рдПрдмрд▓ x рдореЗрдВ 0 рдХреЗ рдмрд░рд╛рдмрд░ рдорд╛рди рд╕реНрдЯреЛрд░ рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд░, рдЙрд╕ рд╕рдордп рдХреЗ рджреМрд░рд╛рди, рдЬрдмрдХрд┐ x -1 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рд╣рдо рд╡реЗрд░рд┐рдПрдмрд▓ x рдореЗрдВ рдорд╛рди 1 рд╕реЗ рдмрдврд╝рд╛рддреЗ рд╣реИрдВред

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо рдПрдХ рдЕрдирдВрдд рд▓реВрдк рд╣реИ рдЬреЛ рдПрдХ рд╕реЗ рдПрдХ рдХрд░рдХреЗ рдЪрд░ рдХреЗ рдорд╛рди рдХреЛ рдмрдврд╝рд╛рдПрдЧрд╛ред рдпрд╣ рдЖрдкрдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рдХрдбрд╝реА рдореЗрд╣рдирдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛, рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЧрд░реНрдо рд╣рд╡рд╛ рдХреА рдзрд╛рд░рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЧрд░реНрдо рдХрд░ рджреЗрдЧрд╛ред рдПрдХ рдардВрдбрд╛ рд╕рд░реНрджрд┐рдпреЛрдВ рдХреЗ рджрд┐рди рдкрд░ рд╣реАрдЯрд┐рдВрдЧ рдкреИрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЖрджрд░реНрд╢ =)

рд▓реВрдкреНрд╕ рдФрд░ рд╕рд╢рд░реНрдд рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рдЬрд╛рдирдиреЗ рд╕реЗ рдЖрдкрдХреЛ рдЕрднреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИред рдЕрдм рдЙрдирдХреЗ рд╕рд╛рде рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╕реАрдЦрдиреЗ рд▓рд╛рдпрдХ рд╣реИред рдЬрдм рднреА рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рдЖрдк рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рднрд╛рдЧ 2. рдореВрд▓ рдмрд╛рддреЗрдВред

рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдЖрдк рджреБрдирд┐рдпрд╛ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ 6 рд╡реЗрдВ рджрд┐рди рдЬреА.рдбреА. рдЖрдк рд╕рднреА рдиреЗ 5 рджрд┐рдиреЛрдВ рддрдХ рдХрдбрд╝реА рдореЗрд╣рдирдд рдХреА, рдФрд░ рдЕрдм рдЖрдкрдХреЛ 1 рджрд┐рди рдореЗрдВ рд▓рд╛рдЦреЛрдВ рд▓реЛрдЧ рдмрдирд╛рдиреЗ рд╣реИрдВред рдЗрд╕реЗ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдП? рд╢рд╛рдпрдж рдЖрдкрдХреЛ рдмрд╕ рдПрдХ-рдПрдХ рдХрд░рдХреЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдмреИрдардирд╛ рдЪрд╛рд╣рд┐рдП? рдирд╣реАрдВ, рдЖрдкрдХреЛ рдмрд╕ рдПрдХ рдРрд╕рд╛ рд▓реЗрдЖрдЙрдЯ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдХреИрд╕рд╛ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдлрд┐рд░ рдЖрдк рдЗрд╕ рд▓реЗрдЖрдЙрдЯ рд╕реЗ рдЙрддрдиреЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рддрдирд╛ рдЖрдк рджрд┐рди рдХреЗ рдЕрдВрдд рд╕реЗ рдкрд╣рд▓реЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ "рд▓реЗрдЖрдЙрдЯ" рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреА рдореВрд▓ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ - рдХрдХреНрд╖рд╛ред рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк "рдХреНрд▓рд╛рд╕" рд╢рдмреНрдж рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдЕрд╕рд╣рдЬ рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реИрдВ - рдмрд╕ рдЗрд╕реЗ "рд▓реЗрдЖрдЙрдЯ" рд╕реЗ рдмрджрд▓ рджреЗрдВ, рдЗрд╕рд╕реЗ рдЖрдкрдХреА рдзрд╛рд░рдгрд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдЧреАред

рдЫрд╡рд┐

рдЖрдЗрдП рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдПрдХ рдЧреЗрдо рдбреЗрд╡рд▓рдкрд░ рд╣реИрдВ рдФрд░ рдЖрдк рдЗрд╕ рдЧреЗрдо рдореЗрдВ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪрд░рд┐рддреНрд░ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдЙрди рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдХрдХреНрд╖рд╛ рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рд╡рд╕реНрддреБ рдореЗрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:
 class Character def initialize(nameVariable, intelligenceVariable) @name = nameVariable @intelligence = intelligenceVariable end end 

'рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝' рдкрджреНрдзрддрд┐ рдХреЛ рд╣рд░ рдмрд╛рд░ рдПрдХ рдирдИ рд╡рд╕реНрддреБ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╡рд╣ рдЧреБрдг рджреЗрддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдиреЗ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдерд╛ред рд╡рд┐рдзрд┐ рдореЗрдВ, рд╣рдо рдЪрд░рд┐рддреНрд░ рдХрд╛ рдирд╛рдо "nameVariable" рдФрд░ рдЙрд╕рдХреЗ рд╕реНрддрд░ рдХрд╛ рд╕реНрддрд░ "IntelligVariable" (рдЙрдкрд╕рд░реНрдЧ "@" рд╡рд░реНрдг рдХреЗ рдЧреБрдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд╕рд░реНрдЧ "рд╕реНрд╡" рд╣реИ) рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЬрдм рдПрдХ рдЪрд░рд┐рддреНрд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЙрд╕рдХреЗ рдЧреБрдгреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реЛрддрд╛ рд╣реИред рдЪрд▓реЛ 2 рдЕрдХреНрд╖рд░ рдмрдирд╛рддреЗ рд╣реИрдВ - рдЪрд░рд┐рддреНрд░ "рдП" рдФрд░ рдЪрд░рд┐рддреНрд░ "рдмреА":

 a = Character.new( "aperson", 10 ) b = Character.new( "bperson", 10 ) 

рд╡рд░реНрдг A рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ 2 "aperson" рдФрд░ "10" рдорд╛рди рд╕реЗрдЯ рдХрд┐рдП, рдЬреЛ рдЗрд╕ рдЪрд░рд┐рддреНрд░ рдХреЗ рдЧреБрдг рдмрди рдЧрдП (рдХреНрдпреЛрдВрдХрд┐ рд╣рд░ рдмрд╛рд░ рдЬрдм рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ "рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝" рд╡рд┐рдзрд┐ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ)ред

рдирддреАрдЬрддрди, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 2 рд╡рд░реНрдг рд╣реИрдВ, рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ "рдПрдкрд░рд╕рди" рдФрд░ "рдмреАрдкрд░реНрд╕рди" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЦреБрдлрд┐рдпрд╛ рд╕реНрддрд░ 10 рд╣реИред

рдХреНрдпрд╛ рдЖрдкрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рд╡рд░реНрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдХреЗ рд╣рдордиреЗ рдХрд┐рддрдиреА рдЖрд╕рд╛рдиреА рд╕реЗ рдЪрд░рд┐рддреНрд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рд╣реИ? рдЖрдк Character.new (...) рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣:
 x = 0; while( x < 5,000,000,000 ){ Character.new( "Adam", x ) Character.new( "Eve", x ) x = x+1; } 

рдЗрд╕ рддрд░рд╣ 5 рдмрд┐рд▓рд┐рдпрди рдПрдбрдореНрд╕ рдФрд░ рдЗрд╡реНрд╕ рдмрдирд╛рдП рдЧрдП, рдЬрд┐рд╕рдиреЗ рдзреАрд░реЗ-рдзреАрд░реЗ рдЦреБрдлрд┐рдпрд╛ рдорд╣рддреНрд╡ рдХреЛ рдмрдврд╝рд╛ рджрд┐рдпрд╛ред рдХреБрдЫ рдЗрд╕ рддрд░рд╣:

рдЫрд╡рд┐

рдЕрдм рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкреНрд░рддреНрдпреЗрдХ рдкрд╛рддреНрд░ рдореЗрдВ рдкреНрд░рд╕рд┐рджреНрдз рдЬрд░реНрд╕реА рд╢реЛ рдЯреЗрд▓реАрд╡рд┐рдЬрди рд╢реЛ рджреЗрдЦрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдЪреВрдВрдХрд┐ рдпрд╣ рдХреНрд╖рдорддрд╛ рд╕рднреА рд╡рд░реНрдгреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИ, рдпрд╣ рд╣рдорд╛рд░реЗ рд▓реЗрдЖрдЙрдЯ рд╡рд░реНрдЧ рдореЗрдВ рдЗрд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ:
 class Character def initialize(nameVariable, intelligenceVariable) ... end def watchJerseyShore() @intelligence = @intelligence - 2 end end 


рдЕрдм рд╕реЗ, рд╣рд░ рдмрд╛рд░ рдЬрдм рдХреЛрдИ рдкрд╛рддреНрд░ 'watchJerseyShore' рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЙрд╕рдХреА рдмреБрджреНрдзрд┐ рдХрд╛ рд╕реНрддрд░ рдХрдо рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣:

 a.watchJerseyShore() a.watchJerseyShore() 


рдЪрд░рд┐рддреНрд░ рдП рдиреЗ рд╢реЛ рдХреЛ 2 рдмрд╛рд░ рджреЗрдЦрд╛, рдХреНрд░рдорд╢рдГ, рдЙрд╕рдХреА рдмреБрджреНрдзрд┐ рдХрд╛ рд╕реНрддрд░ 6 рддрдХ рдХрдо рд╣реЛ рдЧрдпрд╛ред

рд╢рд╛рдпрдж рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЪрд░рд┐рддреНрд░ рдореЗрдВ рдмреБрджреНрдзрд┐ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рд╡реЙрдЪрдЬреЙрд░рд╢реЛрд░ () рдкрджреНрдзрддрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реИред рдпрд╣ рдХрдареЛрд░рддрд╛ рдЪрд░рд┐рддреНрд░ рдХреЛ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ рд░реЛрдХрддреА рд╣реИ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЪрд░рд┐рддреНрд░ рдХрд╛ рдЦреБрдлрд┐рдпрд╛ рд╕реНрддрд░ред рдЦреБрдлрд┐рдпрд╛ рд╕реНрддрд░ рдХреЛ рдЧрд▓рддреА рд╕реЗ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕реЗ рдХреЗрд╡рд▓ рдЬрд╛рдирдмреВрдЭрдХрд░ WatchJerseyShore () рдкрджреНрдзрддрд┐ рд╕реЗ рдХреЙрд▓ рдХрд░рдХреЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рдПрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд┐рдЪрд╛рд░ рд╡рд╕реНрддреБ рдХреЗ рдЧреБрдгреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдПрдХ рджрд┐рди, рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкреАрдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рд╡рд┐рдзрд┐ a.intelligence = 100000 рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реЗрдЧреАред

рдЫрд╡рд┐

рдЙрд╕рдХреЗ рдКрдкрд░, рдпрджрд┐ рдЖрдк "рдХрд┐рд╢реЛрд░" рд╡рд░реНрдЧ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ "рдирд╛рдо", "рдмреБрджреНрдзрд┐рдорддреНрддрд╛" рдЬреИрд╕реЗ рдЧреБрдг рд╣реИрдВ рдФрд░ "рдЬрд░реНрд╕реА рд╢реЛ" рд╢реЛ рднреА рджреЗрдЦрддрд╛ рд╣реИ, рддреЛ рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд▓рд┐рдЦреЗ рд╕рднреА рдХреЛрдб рдХреЛ рдЖрдБрдЦ рдмрдВрдж рдХрд░рдХреЗ рдХреЙрдкреА рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рд╡рд░реНрдг рд╡рд░реНрдЧ рдХрд╛ рд╡рд░реНрдгрди? рдирд╣реАрдВ! рдмрд╕ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИред рдпрджрд┐ рд╣рдо рдЪрд░рд┐рддреНрд░ рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдХрд┐рд╢реЛрд░ рд╡рд░реНрдЧ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЪрд░рд┐рддреНрд░ рдХреЗ рд╕рднреА рдЧреБрдг рдХрд┐рд╢реЛрд░ рд╡рд░реНрдЧ рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реЗрдВрдЧреЗред

 class Teenager < Character end 


рддреЛ рдЖрдк рдмрд╕ рдПрдХ рдХрд┐рд╢реЛрд░реА рд╡рд╕реНрддреБ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:

 teeny = Teenager.new( "teeny", 10) 


рдирдиреНрд╣рд╛ рдПрдХ рдХрд┐рд╢реЛрд░ рд╡рд░реНрдЧ рдХреА рд╡рд╕реНрддреБ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо "рдирдиреНрд╣рд╛" рд╣реИ рдФрд░ 10 рдХрд╛ рдЦреБрдлрд┐рдпрд╛ рд╕реНрддрд░ рд╣реИред рд╣рдорд╛рд░реА рдирдиреНрд╣рд╛ рдХреА рдмреБрджреНрдзрд┐рдорддреНрддрд╛ рдХреЗ рд╕реНрддрд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рд┐рд░реНрдл рдЬрд░реНрд╕реА рд╢реЛ рджреЗрдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ:
 teeny.watchJerseyShore() 

рдпрд╣ рдХреНрд╖рдорддрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ - рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо ред

рдЫрд╡рд┐

рдХрд┐рд╢реЛрд░реА рд╣рд░ рдХрд┐рд╕реА рдХреА рддрд░рд╣ рдирд╣реАрдВ рдмрдврд╝реА рдФрд░ рдЖрдкрдиреЗ рдЙрд╕рдХреА рд╡рд┐рдзрд┐ рдХрд╛ рдореВрд▓реНрдп рдмрджрд▓рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЬреЛ рдЬрд░реНрд╕реА рд╢реЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдЖрдк рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
 class Teenager < Character def watchJerseyShore() @intelligence = @intelligence + 2 end end 

рддрдм рд╕реЗ, рд╣рд░ рдмрд╛рд░ рдЬрдм рдПрдХ рдХрд┐рд╢реЛрд░ рдЬрд░реНрд╕реА рд╢реЛ рджреЗрдЦрддрд╛ рд╣реИ, рддреЛ рдЙрд╕рдХреА рдмреБрджреНрдзрд┐ рдХрд╛ рд╕реНрддрд░ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИ! рдХрд┐рд╢реЛрд░реА рд╡рд░реНрдЧ рди рдХреЗрд╡рд▓ рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рд╕реЗ рд╕рднреА рд╡рд┐рдзрд┐рдпреЛрдВ рдФрд░ рдЧреБрдгреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рднреА рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЖрдзрд╛рд░ рдХрдХреНрд╖рд╛ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдкреБрдирд░реНрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдпрд╣ рд▓рдЪреАрд▓рд╛рдкрди рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдкреЙрд▓реАрдореЛрд░реНрдлрд┐рдЬреНрдо рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЫрд╡рд┐

рд╕рднреА рдПрдХ рд╕рд╛рде - рдПрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди, рдЗрдирд╣реЗрд░рд┐рдЯреЗрдВрд╕ рдФрд░ рдкреЙрд▓реАрдореЙрд░реНрдлрд┐рдЬрд╝реНрдо рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдЖрдзрд╛рд░ рдмрдирд╛рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЗрди 3 рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЛ рд╕рдордЭрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рд░реВрдмреА, рдЬрд╛рд╡рд╛, рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡ рд╕реА, рд╕реА #, рдкрд╛рдпрдерди рдФрд░ рдХрдИ рдЕрдиреНрдп рдЬреИрд╕реА рднрд╛рд╖рд╛рдУрдВ рдХреЛ рд╕рдордЭрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдЕрдВрдд

рдореИрдВрдиреЗ рдЗрд╕ рдЕрджреНрднреБрдд рд▓реЗрдЦ рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдХреЛрд╢рд┐рд╢ рдХреАред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдЬрдирддрд╛ рддрдХ рдкрд╣реБрдВрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХреБрдЫ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рдЦреНрддреА рд╕реЗ рдиреНрдпрд╛рдп рдХрд░реЗрдВ, рд╕рдм рдХреБрдЫ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд╕рд╣реА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдЙрдореНрдореАрдж рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рдЕрджреНрднреБрдд рд▓реЗрдЦ рдУрдЖрд░рдУрдкреА рдХреЗ 3 рдХреЛрдиреЗрд╕реНрдЯрд░реЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреА рдорджрдж рдХрд░реЗрдЧрд╛ред

Source: https://habr.com/ru/post/In180513/


All Articles