рдПрдХ рд╢рд╛рдВрдд рдХрдЪрд░реЗ рд╕реЗ рдЕрдкрдиреЗ рдШреБрдЯрдиреЗ рдкрд░ рдФрд░ рднреА рдЕрдзрд┐рдХ рдардВрдбрд╛ рдХрдЪрд░рд╛ рдпрд╛ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рднрд╛рд╖рд╛ рдХреИрд╕реЗ рдмрдирд╛рдПрдВ

тАЬрдкрд╛рдиреА рдореЗрдВ рдХрдВрдХрдбрд╝ рдлреЗрдВрдХрддреЗ рд╣реБрдП, рдЙрдирдХреЗ рдмрдирд╛рдП рд╣реБрдП рдШреЗрд░реЗ рдХреЛ рджреЗрдЦреЛ; рдЕрдиреНрдпрдерд╛, рдРрд╕рд╛ рдлреЗрдВрдХ рдЦрд╛рд▓реА рдордЬрд╝рд╛ рд╣реЛрдЧрд╛ред тАЭ
K.Prutkov

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

1) рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛрдб рдХреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рджрд┐рди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЙрдирдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдХреНрд░рдо рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЙрд╕ рдХреНрд░рдо рд╕реЗ рдЬреБрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред
2) рдЪрд░? рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рд╖реНрдкрд╛рджрди рдЖрджреЗрд╢ рдкрд░ рднреА рдирд┐рдпрдВрддреНрд░рдг рдирд╣реАрдВ рд╣реИ, рд╣рдореЗрдВ рдХрд┐рд╕реА рднреА рдЪрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
3) рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ? рд╣рд╛рдБ рдЖрдк рдордЬрд╛рдХ рдХрд░ рд░рд╣реЗ рд╣реИрдВ!

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

рддреЛ, рднрд╛рд╖рд╛ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рд░реНрдорд╛рдг рд╣реИрдВ:

рдХреЛрдб рд╕реНрдЯреНрд░рд┐рдВрдЧ рджреЗрдЦреЗрдВ

line-number statement;

рдПрдХреНрд╕рдкрдЯреНрд░реНрд╕ рдореЗрдВ рдХрдорд╛рдВрдбреНрд╕ рд╣реЛрддреЗ рд╣реИрдВ, рдЬреЛ рдХреЙрдорд╛ рд╕реЗ рдЕрд▓рдЧ рд╣реЛрддреЗ рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рд╣реИрдВ:
рдкрдВрдХреНрддрд┐ рд╕рдВрдЦреНрдпрд╛

line-number#number-of-times-to-add/remove

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓рд╛рдЗрди 1 рдкрд░ рдХрдорд╛рдВрдб

1 4,5#3,-6;

рдирд┐рд╖реНрдкрд╛рджрди рдкреВрд▓ рдореЗрдВ рдирдВрдмрд░ 4 рдХреЗ рд╕рд╛рде 1 рд▓рд╛рдЗрди, 5 рдирдВрдмрд░ рдХреЗ рд╕рд╛рде 3 рд▓рд╛рдЗрдиреЗрдВ рдФрд░ рдкреВрд▓ рд╕реЗ рд▓рд╛рдЗрди 6 рдХреЛ рд╣рдЯрд╛ рджреЗрдВред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдПрдХ рдЕрдирдВрдд рд▓реВрдк рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдФрд░ рдЗрд╕рд▓рд┐рдП рд╢рд╛рдирджрд╛рд░ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛

1 1;

рджреБрднрд╛рд╖рд┐рдпрд╛ рдкреВрд▓ рд╕реЗ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХрд╛ рдЪрдпрди рдХрд░реЗрдЧрд╛ (рдЕрдм рдХреЛрдИ рдЕрдиреНрдп рдирд╣реАрдВ рд╣реИ) рдФрд░ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдкреВрд▓ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред рд╕рдВрдпреЛрдЧ рд╕реЗ, рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рдбрд┐рдЬрд╛рдЗрди, рдЬреИрд╕рд╛ рдХрд┐ рдмрд╛рдж рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╕реНрдХреНрд░реАрди рдЖрдЙрдЯрдкреБрдЯ

рдмрд╕ рдПрдХ рдкреНрд░рд┐рдВрдЯ рдХрдорд╛рдВрдб рдЬреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕реНрдХреНрд░реАрди рдкрд░ рдХреЛрд╖реНрдардХ рдореЗрдВ рдХреНрдпрд╛ рд╣реИред

рдЗрди рдЖрджреЗрд╢реЛрдВ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдбрд┐рдЬрд╝рд╛рдЗрди рд╣реИрдВ:

рдЖрд╕реНрдердЧрд┐рдд рдХрд░реЗрдВ
рдпрджрд┐ рдХреЛрд╖реНрдардХ рдореЗрдВ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ "рд╕рд╣реА" рд╣реИ, рддреЛ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХреА рдЬрд╛рдПрдЧреА, рдФрд░ рд▓рд╛рдЗрди рдкреВрд▓ рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧреАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП

1 defer (2) 3;

рдЬрдм рддрдХ рд▓рд╛рдЗрди 2 рдкреВрд▓ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ, рддрдм рддрдХ рдкреВрд▓ рдореЗрдВ рд▓рд╛рдЗрди 3 рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХреА рдЬрд╛рдПрдЧреАред

рдлрд┐рд░
рдпрджрд┐ рдХреЛрд╖реНрдардХ рдореЗрдВ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ "рд╕рд╣реА" рд╣реИ, рддреЛ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреА рдЬрд╛рдПрдЧреА, рд▓реЗрдХрд┐рди рд▓рд╛рдЗрди рдкреВрд▓ рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧреАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

1 again (2) 3;

рд▓рд╛рдЗрди 3 рдХреЛ рд╣рдореЗрд╢рд╛ рдкреВрд▓ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдкреВрд▓ рдореЗрдВ рд▓рд╛рдЗрди 2 рд╣реИ, рддреЛ рдЙрд╕рдХреЗ рдмрд╛рдж рд▓рд╛рдЗрди 1 рдХреЛ рдкреВрд▓ рд╕реЗ рд╣рдЯрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛ред

рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ (2) (рдПрди (2)> 0) рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рдЬрд╣рд╛рдВ рдПрди () рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рдПрдХ рдкреВрд▓ рдореЗрдВ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рднреВрд▓рдирд╛
рдпрджрд┐ рдХреЛрд╖реНрдардХ рдореЗрдВ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ "рд╕рд╣реА" рд╣реИ, рддреЛ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рд╣реЛрдЧреА рдФрд░ рд▓рд╛рдЗрди рдкреВрд▓ рд╕реЗ рд╣рдЯрд╛ рджреА рдЬрд╛рдПрдЧреАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

1 forget(2) 3;

рднрд╛рд╖рд╛ рдХреЗ рд▓реЗрдЦрдХ рдиреЗ рдЗрд╕ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рднрд╛рд╖рд╛ рд╕реЗ рдмрд╛рд╣рд░ рдлреЗрдВрдХ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рд╣реИред

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

рдЕрд╕рд▓ рдореЗрдВ рд╕рдм рдХреБрдЫ, рдкреВрд░реА рднрд╛рд╖рд╛ред рднрд╛рд╖рд╛ рдХреЗ рд╡рд┐рд╡рд░рдг рд╡рд╛рд▓реА рд╕рд╛рдЗрдЯ рдореЗрдВ рджреЛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реИрдВ:

99 рдмреЛрддрд▓ рдмреАрдпрд░

 1 defer (4 || N(1)<N(2) && N(2)<N(3)) print(N(1)+" bottles of beer on the wall, "+N(1)+" bottles of beer,"); 2 defer (4 || N(1)==N(2)) print("Take one down and pass it around,"); 3 defer (4 || N(2)==N(3)) print(N(1)+" bottles of beer on the wall."); 4 1#98,2#98,3#98; 


рдФрд░ рдлрд╛рдЗрдмреЛрдиреИрдЪрд┐ рд╕рдВрдЦреНрдпрд╛ (1 рд╕реЗ 100 рд╡реЗрдВ рддрддреНрд╡ рддрдХ рдлрд╛рдЗрдмреЛрдиреИрдЪрд┐ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ ... рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ ... рдпрджрд┐ рдЖрдк рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ):

 1 again (1) defer (3 || N(1)<=N(2) || N(7)>99) 2#N(1),3,7; 2 again (2) defer (3 || N(2)<=N(1) || N(7)>99) 1#N(2),3,7; 3 defer (5) print(N(1)+N(2)); 4 defer (5) print("1"); 5 4,-3,7; 6 defer (4) 3; 7 7; 8 defer (N(7)<100) -1#N(1),-2#N(2),-7#100,-3; 9 defer (3 || 6) 1,3; 


рдпрджрд┐ рдкрд╣рд▓рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╢реБрджреНрдз рд╢рд░рд╛рд░рдд рд╣реИ, рддреЛ рджреВрд╕рд░рд╛ рдХреБрдЫ рд╕рд╛рд░реНрдердХ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ - рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЗрд╕ рддрд░рд╣ рдХреА рд╢рд░рд╛рд░рдд рд╕реЗ рдХреБрдЫ рднреА рд╕рд╛рд░реНрдердХ рдирд╣реАрдВ рдирд┐рдХрд▓ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ рдпрд╣ рд╣реИред

рдФрд░ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рд╕рдм рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдкрд░рд┐рдгрд╛рдо рдХреБрдЫ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдерд╛, рд▓реЗрдХрд┐рди рдкрд╣рд▓реА рдЪреАрдЬреЗрдВ рдкрд╣рд▓реЗред

рдпрд╣ рддреБрд░рдВрдд рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЗрди рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рдпрд╣ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ: рдлрд┐рдмреЛрдирд╛рдЪреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реМрд╡реЗрдВ рддрдХ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди, рдХрд╣рддреЗ рд╣реИрдВ, 20 рд╡реЗрдВ рддрддреНрд╡ рддрдХ, рдЖрдкрдХреЛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдЪрд╛рд░ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдкрд╛рда рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдХрд┐рд╕реА рддрд░рд╣ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИред рд╣рдо рдЗрд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЗрдирдкреБрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣:

 1 again (1) defer (3 || N(1)<=N(2) || N(7)>( @1 - 1 )) 2#N(1),3,7; 2 again (2) defer (3 || N(2)<=N(1) || N(7)>( @1 - 1 )) 1#N(2),3,7; 3 defer (5) print(N(1)+N(2)); 4 defer (5) print("1"); 5 4,-3,7; 6 defer (4) 3; 7 7; 8 defer (N(7)<@1) -1#N(1),-2#N(2),-7#100,-3; 9 defer (3 || 6) 1,3; 


рдлрд╝рд╛рдЗрд▓ fib.src рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рд╕реЗрд╡ рдХрд░реЗрдВред рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЙрд▓ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
java -cp Whenever.jar Whenever fib.src 20

рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдЪреНрдЫрд╛ рд╣реИред рд╕рдлрд▓рддрд╛ рдХреЛ рдордЬрдмреВрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рджреЛ рдкреНрд░рд╛рдХреГрддрд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рдмрд╕реЗ рдмрдбрд╝реЗ рд╕рд╛рдорд╛рдиреНрдп рднрд╛рдЬрдХ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦрд╛, рдпрд╣ рд╣реИ:

 1 defer(2) again(N(3) - (N(3)/N(4))*N(4) != 0) 6#N(3),-3#N(3),3#N(4),-4#N(4),4#(N(6) - (N(6)/N(3))*N(3)),-6#N(6); 2 3#( @1 - 1 ),4#( @2 - 1 ),-6; 3 3; 4 4; 5 defer(1) print("NOD of " + @1 + " and " + @2 + " is " + N(4)),-3#N(3),-4#N(4); 6 6; 


рдЬрдм рдЖрдк рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рджреЛ рдирдВрдмрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ, рдкрд╣рд▓реЗ рдЕрдзрд┐рдХ, рдлрд┐рд░ рдХрдоред рд╣рдо рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВрдЧреЗ;

рд▓рд╛рдЗрдиреНрд╕ 3 рдФрд░ 4 рдХреЛ рджреЛ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рд╕реЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рд╕рдВрдмрдВрдзрд┐рдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдкреВрд▓ рдореЗрдВ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓рд╛рдЗрди 6 рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрд╕реА рд╡рд┐рдХреГрдд рддрд░реАрдХреЗ рд╕реЗ рдПрдХ рдордзреНрдпрд╡рд░реНрддреА рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рднрд╛рд╖рд╛ рджреВрд╕рд░реЗ рдХреЛ рдирд╣реАрдВ рдЫреЛрдбрд╝рддреА рд╣реИ)ред
рд▓рд╛рдЗрди 2 рдкреВрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рддреА рд╣реИред рдпрд╣ рдкреВрд▓ рдореЗрдВ N рд▓рд╛рдЗрдиреЛрдВ 3 рдФрд░ M рд▓рд╛рдЗрдиреЛрдВ 4 рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдФрд░ рдкреВрд▓ рд╕реЗ рд▓рд╛рдЗрди 6 рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИред рдлрд┐рд░ рдЗрд╕реЗ рд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдкреВрд▓ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд▓рд╛рдЗрди 1 рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд▓рд╛рдЗрди 1 рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ рджреЗрд░реА рд╣реЛ рд░рд╣реА рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдкреВрд▓ рдореЗрдВ рд▓рд╛рдЗрди 2 (defer (2)) рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдкреВрд▓ рд╕реЗ рдмрд╛рд╣рд░ рдирд╣реАрдВ рдлреЗрдВрдХрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЬреАрд╕реАрдбреА рдирд╣реАрдВ рдорд┐рд▓рд╛ (рдлрд┐рд░ рд╕реЗ)ред рдХреЛрд╖реНрдардХ рдореЗрдВ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд▓рд╛рдЗрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ 4 рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╢реЗрд╖ рдХреЛ 4 рдХреА рд╕рдВрдЦреНрдпрд╛ рджреЗрдЧрд╛ (рдкреВрд░реНрдгрд╛рдВрдХ рдЧрдгрд┐рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рджрд░рдЕрд╕рд▓, рд▓рд╛рдЗрди 1 рдореЗрдВ рдХреНрд░рд┐рдпрд╛рдПрдВ рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ рдХреА рдЬрд╛рддреА рд╣реИрдВ:
  1. рд╡рд╣рд╛рдБ рдХреЗ рд░реВрдк рдореЗрдВ рдХрдИ рдкрдВрдХреНрддрд┐рдпрд╛рдБ 6 рд╣реИрдВ рдкреВрд▓ рдореЗрдВ рдкрдВрдХреНрддрд┐ 3 рдкреВрд▓ рдореЗрдВ рдЗрд╕ рдХрджрдо рдХреЗ рд░реВрдк рдореЗрдВ
  2. рд╕рднреА рд▓рд╛рдЗрдиреЛрдВ 3 рдХреЛ рдкреВрд▓ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
  3. рдЬреИрд╕реЗ рд╣реА рдХрдИ рд▓рд╛рдЗрдиреЗрдВ рдЬреЛрдбрд╝реА рдЬрд╛рддреА рд╣реИрдВ, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рдкрд░ 4 рд▓рд╛рдЗрдиреЗрдВ рд╣реЛрддреА рд╣реИрдВ (рдЗрди рджреЛрдиреЛрдВ рдХрдорд╛рдВрдбреЛрдВ рдХреЛ рдПрдХ -3 # (рдПрди (3) - рдПрди (4) рдореЗрдВ рдврд╣рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)
  4. рд╣рдо рд╕рднреА рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВ 4
  5. рд░рд╛рд╢рд┐ рдореЗрдВ 4 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝реЗрдВ == рдПрдХ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╢реЗрд╖ред рдлрд┐рд░ рд╕реЗ, рдпреЗ рджреЛрдиреЛрдВ рдЯреАрдореЗрдВ рдЖрдкрд╕ рдореЗрдВ рдЯрдХрд░рд╛ рд╕рдХрддреА рд╣реИрдВред
  6. рд╣рдо рдкреВрд▓ рд╕реЗ рд╕рднреА рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ 6 (рд╡рд╛рдпрд▓рд┐рди рд╡рд╛рджрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ)

рд▓рд╛рдЗрди 5 рд╕реНрдХреНрд░реАрди рдкрд░ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреВрд▓ рд╕реЗ рдЫреЛрдбрд╝реА рдЧрдИ рд╕рднреА рдЪреАрдЬрд╝реЛрдВ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реБрдП рдЦреБрдж рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рддрд╛ рд╣реИред рдЬрдм рддрдХ рдкрдВрдХреНрддрд┐ 1 рдкреВрд▓ рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рддрдм рддрдХ рдЗрд╕рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ рджреЗрд░реА рд╣реЛрддреА рд╣реИ, рдФрд░ рдпрд╣ рддрдм рддрдХ рд░рд╣реЗрдЧрд╛ рдЬрдм рддрдХ рдЬреАрд╕реАрдбреА рдирд╣реАрдВ рдорд┐рд▓ рдЬрд╛рддрд╛ред рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рднрд╛рд╖рд╛ рдХреЗ рдореВрд▓ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдкреНрд░рд┐рдВрдЯ рдХреЛ рдЕрдиреНрдп рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕реЗ рд╡рд╣рд╛рдВ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛
 5 defer(1) print("NOD of " + @1 + " and " + @2 + " is " + N(4)); .... 7 defer(5) -3#N(3),-4#N(4); 


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

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

рддрдм рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдЪрд╛рдирдХ рдПрдХ рдФрд░ рдЖрдпрд╛рдо рдерд╛, рджреВрд╕рд░рд╛ рдЪрд░ - рд╡рд░реНрддрдорд╛рди рд▓рд╛рдЗрди рд╕рдВрдЦреНрдпрд╛ред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдФрд░ рдХреАрд╡рд░реНрдб рджрд░реНрдЬ рдХрд┐рдпрд╛ - рд╕реНрд╡ред

рд╣реБрд░реНрд░реЗ! рдЕрдм рдЖрдк рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрд╕реА рдлрд┐рдмреЛрдирд╛рдЪреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗрдВ:

 1 forget(self>@3) print("iter: " + self + " value: " + @1 ),1[@1+@2%@1%@3]; 


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

рдиреЛрдЯ: рдореБрдЭреЗ 1) рд░рд╛рдЗрдЯ рд░рд╛рдЗрдЯреНрд╕ рдмрд╣рд╛рд▓ рдХрд░рдирд╛ рдерд╛ рдФрд░ 2) рдХрдИ рдЕрдиреНрдп рдХрдорд╛рдВрдбреНрд╕ рдореЗрдВ рдкреНрд░рд┐рдВрдЯ рд░рди рдмрдирд╛рдирд╛ (рдореВрд▓ рдореЗрдВ, рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░рд┐рдВрдЯ рдпрд╛ рдЕрдиреНрдп рдХрдорд╛рдВрдб рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред

рдФрд░ рдпрд╣рд╛рдБ рдЬреАрд╕реАрдбреА рд╣реИ:

 1 forget( @2 == 0 ) 1[@2%(@1 - (@1 / @2) * @2)],2[@2%(@1 - (@1 / @2) * @2)]; 2 forget( @2 > 0 ) print("Nod is: " + @1 ); 


рдлрд┐рд░, рдЖрдк рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдирд┐рд╖реНрдкрд╛рджрди рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдмрдбрд╝рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд┐рд╕ рдирдВрдмрд░ рдкрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдмрд╣реБрдд рдЖрд▓рд╕реА рд╣реВрдВред

рдФрд░ рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдЬрд╛рдБрдЪ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ рдХрд┐ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рдореБрдЦ рд╣реИ:
 1 defer(5) forget( @2 == 0 || @2 == 1 ) 4[@1%(@2 - 1)],2[@1%(@2 - 1)],3[@1%(@2 - 1)]; 2 defer(5) forget( @2 == 0 || @1 != (@1 / @2) * @2 || @1 == @2 || @2 == 1 ) print( "Number " + @1 + " is not prime"); 3 defer(5) forget( @2 != 1 ) print( "Number " + @1 + " is prime"); 4 defer(5) forget( @2 == 0 || @1 == (@1 / @2) * @2 ) 1[@1%@2]; 5 1[@1%@1]; 


рдпрд╣рд╛рдВ рдореИрдВ рдПрдХ рдФрд░ рдЪрд╛рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ: рдпрджрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рд╢реВрдиреНрдп рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдпреЗ рдмрд┐рд▓реНрд▓реА рдХреЗ рдмрдЪреНрдЪреЗ рд╣реИрдВред рдХреБрдЫ рдореБрдЭреЗ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕ рдХрдЪрд░реЗ рдХреЗ рд╕рд╛рде рдЬреБрдбреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдЖрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд▓рд╕реА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ ...

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


All Articles