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

рд▓рдбрд╝рд╛рдИ рдПрдХ рд╡рд░реНрдЧ рдореЗрдВ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рд╛рдордиреЗ рдХреА рд░реЗрдЦрд╛ рдХреНрд╖реИрддрд┐рдЬ рд░реВрдк рд╕реЗ рдЪрд▓рддреА рд╣реИ, рдФрд░ рджрд╛рдИрдВ рдУрд░ - рд╕рдореБрджреНрд░, рдЬрд╣рд╛рдВ рдЬрд╣рд╛рдЬреЛрдВ рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рд╣реЛрддрд╛ рд╣реИред рд╡рд░реНрдЧ рдХреЗ рдХрд┐рдирд╛рд░реЗ рдХреА рд▓рдВрдмрд╛рдИ рдХреЛ рдПрд▓ рджреНрд╡рд╛рд░рд╛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдирд┐рд╢реНрдЪрд┐рддрддрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕реЗ 100 рдХрд┐рд▓реЛрдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддреЗ рд╣реИрдВ)ред рддрдм рдПрдХ рддрд░рдл рд╕реЗ рдЬреАрддрд╛ рдЧрдпрд╛ рдХреНрд╖реЗрддреНрд░ рдП * рдПрд▓ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдЧрд╛, рдЬреЛ рджреБрд╢реНрдорди рджреНрд╡рд╛рд░рд╛ рдЬреАрддрд╛ рдЧрдпрд╛ - (рдПрд▓рдП) * рдПрд▓ред рдП рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдмрд▓реЛрдВ рдХреЗ рд╕рдВрддреБрд▓рди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧрд╛ред рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рд╕рд╛рдордиреЗ рд╡рд╛рд▓реЗ рдмрд▓ рдкреНрд░рдмрд▓ рд╣реЛрддреЗ рд╣реИрдВ, рдЙрддрдирд╛ рд╣реА A рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ (рдЙрди рдмрд▓реЛрдВ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдЬреЛ рдмрдбрд╝реЗ рд╣реИрдВ)ред рдирд┐рд╢реНрдЪрд┐рддрддрд╛ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдВ, рдПрдХ рддрд░рдл рдПрдХ рдкреИрджрд▓ рд╕реЗрдирд╛ рдХреА рдЗрдХрд╛рдИ рд╕рд╛рдордиреЗ (рдпрджрд┐ рдПрдХ рд▓рдбрд╝рд╛рдИ рдХреЗ рдмрд┐рдирд╛) рд╕рдордп рдХреА рдкреНрд░рддрд┐ рдпреВрдирд┐рдЯ 1 рдХрд┐рд▓реЛрдореАрдЯрд░ рдЖрдЧреЗ рдмрдврд╝рд╛рддреА рд╣реИред
рдореЙрдбрд▓рд┐рдХрд╛ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ
рдореЙрдбрд▓рд┐рдХрд╛ рдореЗрдВ рдореЙрдбрд▓рд┐рдВрдЧ рдХрд╛ рдЖрдзрд╛рд░ рдХрдХреНрд╖рд╛рдПрдВ рд╣реИрдВ (рдФрд░ рдШреЛрд╖рдгрд╛ / рдЖрд╡реЗрджрди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЙрдирдХреА рд╡рд┐рд╡рд┐рдзрддрд╛рдПрдВ, рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ)ред рдореЙрдбрд▓рд┐рдХрд╛ рдореЗрдВ рдПрдХ рд╡рд░реНрдЧ рд╣рдорд╛рд░реА рд╕рд╛рдорд╛рдиреНрдп рдХрдХреНрд╖рд╛рдУрдВ рд╕реЗ рдХреБрдЫ рдЕрд▓рдЧ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рди рдХреЗрд╡рд▓ рдлрд╝реАрд▓реНрдб рдФрд░ рд╡рд┐рдзрд┐рдпрд╛рдБ (рдореЙрдбрд▓рд┐рдХрд╛, рдлрд╝рдВрдХреНрд╢рдВрд╕) рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдРрд╕реЗ рд╕рдореАрдХрд░рдг рднреА рд╣реИрдВ рдЬреЛ рдЪрд░ рдХреЛ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдмрд╛рдБрдзрддреЗ рд╣реИрдВред рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ "рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓рддрд╛" - рдПрдХ рд╕реНрдерд┐рд░ (рдФрд░ рдПрдХ рд╕реНрдерд┐рд░ рд╣реИ), рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ (рд╡рд░реНрддрдорд╛рди рд╕рд┐рдореБрд▓реЗрд╢рди рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ), рдФрд░, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рдЪрд░ред рдПрдХ рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдмрд┐рд▓реНрдЯ-рдЗрди рдкреНрд░рдХрд╛рд░реЛрдВ (рдмреВрд▓рд┐рдпрди, рд░рд┐рдпрд▓, рдЖрджрд┐), рдпрд╛ рдХрд╕реНрдЯрдо рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдЕрд╡рдзрд╛рд░рдгрд╛ "рдЯреЗрдореНрдкрд▓реЗрдЯ" рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ - рдлрд╝реАрд▓реНрдб рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛, рдЗрд╕рдХрд╛ рдкреБрди: рдирд┐рд░реНрдзрд╛рд░рдгред
рдХрдХреНрд╖рд╛рдПрдВ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ (рдХрдИ, рдФрд░ рдХреЗрд╡рд▓ рд╣реАрд░реЗ рд╕рд╣рд┐рдд)ред рдореЙрдбрд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рд╕рднреА рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреЛ рд╕рдореАрдХрд░рдгреЛрдВ рд╕рд╣рд┐рдд рд╡рд┐рд░рд╛рд╕рдд рд╡рд╛рд▓реЗ рд╡рд░реНрдЧ рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдпрд╣рд╛рдВ рд╣рдореЗрдВ рдореЙрдбрд▓рд┐рдХрд╛ рдХреЗ рдореБрдЦреНрдп рдирд┐рдпрдо рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП - рдЪрд░ рдХреЗ рд╕рдореАрдХрд░рдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЪрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рди рдЬреНрдпрд╛рджрд╛ рдФрд░ рди рдХрдоред
рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг
рд╡рд░реНрдЧ рдХрд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдкреНрд░рдХрд╛рд░ - рд░рд┐рдХреЙрд░реНрдб - рдореЗрдВ рд╕рдореАрдХрд░рдг рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдПрдХ рд╕рд╛рд░ рдкреНрд░рдХрд╛рд░ рдХреА рд▓рдбрд╝рд╛рдХреВ рдЗрдХрд╛рдИ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
UnitData.morecord UnitData "Abstract army unit record" parameter Real unitHealth; parameter Real unitAttack; parameter Real supplyTime; parameter Real supplyNumber; end UnitData;
рдпрд╣ рдХреЛрдб рдЪрд╛рд░ рдЕрд╕рд┐рдВрдЪрд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддрд╛ рд╣реИред рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрдиреЛрдВ рдореЗрдВ, рдХрдХреНрд╖рд╛рдУрдВ рдФрд░ рдЪрд░реЛрдВ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдкреНрд░рд▓реЗрдЦрди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореЙрдбрд▓рд┐рдХрд╛ рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ - рд╕реА ++ - рд╢реИрд▓реА, рдЕрд░реНрдерд╛рдд, рдпрд╛ / / * * / (рдЗрд╕ рддрд░рд╣ рдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдкрд░реНрдпрд╛рд╡рд░рдг рджреНрд╡рд╛рд░рд╛ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред
рдЕрдЧрд▓рд╛ рдХрджрдо рд╕рдореАрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд░реНрдЧ рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╕реИрдиреНрдп рдмрд▓ рд╣реЛрдВрдЧреЗ, рдЬреЛ рд╕реИрдиреНрдп рдЗрдХрд╛рдЗрдпреЛрдВ рдпрд╛ рдорд╛рддреНрд░рд╛ рдХреЗ рд╕рдорд╛рди рд╣реЛрдВрдЧреЗред
Forces.mo class Forces "Abstract army forces class" extends UnitData; parameter Real startNumber = 0; Real number (start = startNumber); Boolean destroyed; equation destroyed = number < 0; when destroyed then reinit(number, 0); end when; when sample(supplyTime, supplyTime) then reinit(number, pre(number) + supplyNumber); end when; end Forces;
рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рд╡рд┐рд░рд╛рд╕рдд рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдореЙрдбрд▓рд┐рдХрд╛ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдпрджрд┐ рд╕рдореАрдХрд░рдг рдирд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ = рд╕рдВрдЦреНрдпрд╛ <0; рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдлрд┐рд░ рдкрд╣рд▓реЗ рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрджрд░ рдЬрдм рд╡рд┐рд╢реЗрд╖ рдкреБрдирд░реНрдирд┐рджреЗрд╢рдХ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рджреВрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд▓рд┐рдП рдЪрд░ рдорд╛рди рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдкреВрд░реНрд╡ (рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рдХрд╛ рдорд╛рди) рдХреА рддрд░рд╣ рд╕реБрджреГрдврд╝реАрдХрд░рдг рдХреЗрд╡рд▓ рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрджрд░ рд╣реА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рд╕рдореАрдХрд░рдг (рдЕрд░реНрдерд╛рддреН рд╕рдореАрдХрд░рдг) рдЗрд╕ рддрд░рд╣ рд╕реЗ рди рд╣реЛ: x = x + 1ред
рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирдореВрдирд╛ рдлрд╝рдВрдХреНрд╢рди рд╕рд╣реА рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рд╕рд┐рдореБрд▓реЗрд╢рди рд╕рдордп (рд╕рдордп) рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ (рдкрд╣рд▓реЗ рдХреЙрд▓) рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рдФрд░ рдлрд┐рд░ рджреВрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдмрд░рд╛рдмрд░ рдЕрдВрддрд░рд╛рд▓ рдкрд░ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡реЗ рд╕рдорд╛рди рд╣реИрдВ - рд╕рдкреНрд▓рд╛рдИрдЯрд╛рдЗрдо рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рдмрд░рд╛рдмрд░ рдЕрдВрддрд░рд╛рд▓ рдкрд░ рдорджрдж рдЖрддреА рд╣реИ)ред
рдЕрдЧрд▓рд╛, рджреБрд╢реНрдорди рдХреА рд╕реЗрдирд╛ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╡рд░реНрдЧ рдХрд╛рдо рдЖрдПрдЧрд╛:
EnemyForces.mo class EnemyForces "Enemy forces references" replaceable Forces enemyAir; replaceable Forces enemySea; replaceable Forces enemyLand; end EnemyForces;
рдПрдХ рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдХреЛ рдмрджрд▓реЗ рдЬрд╛рдиреЗ рдпреЛрдЧреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреЛ рдПрдХ рджреБрд╢реНрдорди рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╕рдордп рдПрдХ рдЪрд░ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИред
рдЕрдм рд╣рдо рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдкрд░ рдЖрддреЗ рд╣реИрдВред рджрд░рдЕрд╕рд▓ рд╕реЗрдирд╛ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╡рд░реНрдЧред
Army.mo class Army class LandArmy = Forces(unitHealth = 100, unitAttack = 400, supplyTime = 0.25, supplyNumber = 800); class AirArmy = Forces(unitHealth = 400, unitAttack = 750, supplyTime = 0.5, supplyNumber = 400); class SeaArmy = Forces(unitHealth = 3000, unitAttack = 7000, supplyTime = 1, supplyNumber = 20); SeaArmy seaArmy; AirArmy airArmy; LandArmy landArmy; EnemyForces enemyForces (redeclare Army.AirArmy enemyAir, redeclare Army.SeaArmy enemySea, redeclare Army.LandArmy enemyLand); Real armyForce; equation armyForce = seaArmy.unitHealth * seaArmy.number + airArmy.unitHealth * airArmy.number + landArmy.unitHealth * landArmy.number; der(seaArmy.number) = if not seaArmy.destroyed then -(enemyForces.enemyAir.number * enemyForces.enemyAir.unitAttack + enemyForces.enemySea.number * enemyForces.enemySea.unitAttack) / seaArmy.unitHealth else 0; der(airArmy.number) = if not airArmy.destroyed then -(enemyForces.enemyAir.number * enemyForces.enemyAir.unitAttack + enemyForces.enemySea.number * enemyForces.enemySea.unitAttack + enemyForces.enemyLand.number * enemyForces.enemyLand.unitAttack) / airArmy.unitHealth else 0; der(landArmy.number) = if not landArmy.destroyed then -(enemyForces.enemyAir.number * enemyForces.enemyAir.unitAttack + enemyForces.enemyLand.number * enemyForces.enemyLand.unitAttack) / landArmy.unitHealth else 0; end Army;
рдпрд╣рд╛рдВ рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рд╕реИрдиреНрдп рд╢рд╛рдЦрд╛рдУрдВ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рддреЗ рд╣реИрдВ, рдмрд╕ рдЙрдиреНрд╣реЗрдВ рдореМрдЬреВрджрд╛ рдлреЛрд░реНрд╕реЗрд╕ рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдмрд░рд╛рдмрд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рддреБрд░рдВрдд рд╡рд╕реНрддреБрдУрдВ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реИрдВред рдЕрдЧрд▓реА рдмрд╛рдд рдПрдХ рдРрд╕реА рд╡рд╕реНрддреБ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рджреБрд╢реНрдорди рд╕реЗрдирд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрдмрдХрд┐ рдкреБрди: рд╡рд┐рддрд░рд┐рдд рдХреАрд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдмрджрд▓реА рдЬрд╛рдиреЗ рдпреЛрдЧреНрдп рдЪрд░ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╣рдореЗрдВ "рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рдирд┐рд╖реНрдХрд░реНрд╖" рдХреЗ рд▓рд┐рдП рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рд╕реЗрдирд╛ рдХреЗ рд╡реИрд░рд┐рдПрдмрд▓ рдЪрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рд╕рдореАрдХрд░рдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ - рдкрд╣рд▓рд╛ рд╕рдореАрдХрд░рдг рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕реЗрдирд╛ рдХреА рддрд╛рдХрдд рд╕рднреА рдЗрдХрд╛рдЗрдпреЛрдВ рдХрд╛ рдХрд╡рдЪ рд╣реИ рдЬреЛ рд╣реИрдВред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддреАрди рд╕рдореАрдХрд░рдгреЛрдВ рдХрд╛ рдЕрд░реНрде рд╣реИ:
- рдпрджрд┐ рдиреМрд╕реИрдирд┐рдХ рд╕реЗрдирд╛ рдХреЛ рдирд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рд░ рд╕рдордп, рд╕рднреА рдХрд╡рдЪ тАЛтАЛрд╕реЗ рд╡рд╛рдпреБ рдФрд░ рд╕рдореБрджреНрд░реА рдмрд▓реЛрдВ рдХреА рдХреНрд╖рддрд┐ рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИ,
- рдпрджрд┐ рд╡рд╛рдпреБ рд╕реЗрдирд╛ рдХреЛ рдирд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХрд┐рд╕реА рднреА рд╕рдордп, рджреБрд╢реНрдорди рдХреЗ рд╕реИрдирд┐рдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдиреБрдХрд╕рд╛рди рдХреЗ рд╕рднреА рдХрд╡рдЪ тАЛтАЛрд╕реЗ рдШрдЯ рдЬрд╛рддреА рд╣реИ,
- рдЗрд╕реА рддрд░рд╣ рдЬрдореАрдиреА рд╕реИрдирд┐рдХреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдиреМрд╕реИрдирд┐рдХ рдмрд▓ рдЙрдиреНрд╣реЗрдВ рдиреБрдХрд╕рд╛рди рдирд╣реАрдВ рдкрд╣реБрдВрдЪрд╛рддреЗ
рдиреЛрдЯреЗрд╢рди рдбреЗрд░ (var), var (рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓) рдХрд╛ рд╕рдордп рд╡реНрдпреБрддреНрдкрдиреНрди рд╣реИред
рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╣рдо рд╕реНрд╡рдпрдВ рд╕рд╢рд╕реНрддреНрд░ рд╕рдВрдШрд░реНрд╖ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВрдЧреЗред
Conflict.mo model Conflict "Conflict of two armies model" parameter Real armyASea = 200; parameter Real armyAAir = 1000; parameter Real armyALand = 4000; parameter Real armyBSea = 100; parameter Real armyBAir = 1800; parameter Real armyBLand = 3600; Army armyA ( seaArmy.startNumber = armyASea, airArmy.startNumber = armyAAir, landArmy.startNumber = armyALand, enemyForces.enemyAir.startNumber = armyBAir, enemyForces.enemySea.startNumber = armyBSea, enemyForces.enemyLand.startNumber = armyBLand ); Army armyB ( seaArmy.startNumber = armyBSea, airArmy.startNumber = armyBAir, landArmy.startNumber = armyBLand, enemyForces.enemyAir.startNumber = armyAAir, enemyForces.enemySea.startNumber = armyASea, enemyForces.enemyLand.startNumber = armyALand ); parameter Real L = 100; parameter Real landArmySpeed = 1; Real A (start = L / 2); equation armyA.enemyForces.enemyAir.number = armyB.airArmy.number; armyA.enemyForces.enemySea.number = armyB.seaArmy.number; armyA.enemyForces.enemyLand.number = armyB.landArmy.number; armyB.enemyForces.enemyAir.number = armyA.airArmy.number; armyB.enemyForces.enemySea.number = armyA.seaArmy.number; armyB.enemyForces.enemyLand.number = armyA.landArmy.number; when A > L then terminate("Army A wins"); end when; when A < 0 then terminate("Army B wins"); end when; der (A) = (armyA.landArmy.number - armyB.landArmy.number) * landArmySpeed / L; end Conflict;
рдпрд╣рд╛рдВ рдХреАрд╡рд░реНрдб рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рднреА рдПрдХ рд╡рд░реНрдЧ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдж рдореЗрдВ)ред
рдпреБрджреНрдзрд░рдд рджрд▓реЛрдВ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрд┐рди рдкрд░ рд╣рдо рд╡рд╛рд╕ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдРрд╕реЗ рд╕рдореАрдХрд░рдг рд╣реИрдВ рдЬреЛ рдХрд┐ рджреБрд╢реНрдорди A рдХреЛ B рдорд╛рдирддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрддред рдЬрдм рд╕реНрдерд┐рддрд┐ рд╣реЛрддреА рд╣реИ, рддреЛ рджреЛ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣реБрдЖ рдХреА рдПрдХ рдирд┐рд╢рд╛рди рдХреЗ рд╕рд╛рде рдореЙрдбрд▓рд┐рдВрдЧ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ред
рд▓реЙрдиреНрдЪ рдФрд░ рдкрд░рд┐рдгрд╛рдо
рдореЙрдбрд▓ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЗрд╕рдореЗрдВ рдирд┐рдореНрди рдЯрд╛рдЗрдк рдХрд░рдХреЗ рд╢реЗрд▓ рдУрдкрдирдореЛрдбреЗрд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рд╢реЗрд▓ рдУрдкрдирдореЛрдбреЗрд▓рд┐рдХрд╛ рдХрдорд╛рдВрдбреНрд╕ loadModel(Modelica) loadFile("d:/path/UnitData.mo") loadFile("d:/path/Forces.mo") loadFile("d:/path/EnemyForces.mo") loadFile("d:/path/Army.mo") loadFile("d:/path/Conflict.mo") simulate(Conflict, stopTime = 2) plot({armyA.armyForce, armyB.armyForce}, xRange = {0, 2}) plot({armyA.landArmy.number, armyB.landArmy.number, armyA.seaArmy.number, armyB.seaArmy.number, armyA.airArmy.number, armyB.airArmy.number}, xRange = {0, 2}) plot(A, xRange = {0, 2})
рд╕рдВрдмрдВрдзрд┐рдд рдирд┐рд░реНрдорд╛рдг рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЪрд┐рддреНрд░реЛрдВ рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП рд╣реИрдВред

рдпрд╣ рд╕рдордп рдореЗрдВ рдмрд▓реЛрдВ рдХрд╛ рдЕрдиреБрдкрд╛рдд рдХреИрд╕реЗ рджрд┐рдЦрддрд╛ рд╣реИред

рдпрд╣ рд╣реИ рдХрд┐ рд╕рдордп рдХреЗ рджреМрд░рд╛рди рд╕реИрдирд┐рдХреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдмрд▓реЛрдВ рдХрд╛ рд╕рд╣рд╕рдВрдмрдВрдз рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред

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

рдПрдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рдмрдЬрд╛рдп
OpenModelica рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реИ рдЬреЛ рдЕрдВрдЧреНрд░реЗрдЬреА рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЙрдкрдХрд░рдг рдЖрд╢рд╛рдЬрдирдХ рд╣реИред рдЕрдм рддрдХ, рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдмрд╣реБрдд рдмрд╛рдд рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рдпрд╣ рдирд╣реАрдВ рдХрд╣рддреА рд╣реИ рдХрд┐ рдпрд╣ рдЖрд╕рд╛рдиреА рд╕реЗ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЧрдИ рд╣реИред рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдкрд░реНрдпрд╛рдкреНрдд рд░реБрдЪрд┐ рдФрд░ рд╕рдордп рдХреЗ рд╕рд╛рде - рд╕рдм рдХреБрдЫ рдкрд░рд╛рдЬрд┐рдд рд╣реЛрддрд╛ рд╣реИред
рдлрд┐рд░ рднреА рдПрдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рдмрдЬрд╛рдп
рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдпреБрджреНрдз рдореЙрдбрд▓ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛, рдпрджрд┐ рдпрд╣ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░рддреА рд╣реИ, рдХреЗрд╡рд▓ рдЗрд╕ рддрдереНрдп рдореЗрдВ рд╣реИ рдХрд┐ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдмрд▓реЛрдВ рдореЗрдВ рдиреНрдпреВрдирддрдо) рд╢реНрд░реЗрд╖реНрдарддрд╛ рдЬреАрдд рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗ рд╕рдХрддреА рд╣реИ, рдФрд░ рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рд╕рд┐рд╕реНрдЯрдо рдХреА рд╕рдВрд░рдЪрдирд╛ (рдЬреЛ рдХрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛) рд╕реЗ рдХрдо рдирд╣реАрдВ рд╣реИред рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВред
рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ
рдЙрддреНрдХреГрд╖реНрдЯ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ (рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ)ред
рд╡реЗрдм рд╕рдВрджрд░реНрдн (рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ)ред
рдЕрджреНрдпрддрдирдХреБрдЫ рд╕рдордп рдмрд╛рдж, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдЕрдкрдиреЗ "рдХрд╡рдЪ" рдХреЛ рдмреБрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдХрд╡рдЪ рдХреБрдЫ рдЬрд▓реНрджрдмрд╛рдЬреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреНрд░рдХрд╛рд╢ рд╕рдВрд╢реЛрдзрди:
рд╕реЗрдирд╛ред рдмрд╛рд░-рдмрд╛рд░ рдмрджрд▓рддреА рд╣реИ class Army //... Real armyHealth, armyStrength; equation armyHealth = seaArmy.unitHealth * seaArmy.number + airArmy.unitHealth * airArmy.number + landArmy.unitHealth * landArmy.number; armyStrength = seaArmy.unitAttack * seaArmy.number + airArmy.unitAttack * airArmy.number + landArmy.unitAttack * landArmy.number; //... end Army;
рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рдмрддрд╛рдП рдЧрдП рдирд┐рд╖реНрдХрд░реНрд╖реЛрдВ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВрдЧреЗред
рд╕рдордп рд╕рд╛рд░рд┐рдгреА