рд▓реБрдЖ: рдХреИрд╕реЗ рдПрдореНрдмреЗрдбрд┐рдВрдЧ рдХреЛ рд░реЛрдХрдиреЗ рдФрд░ рдЬреАрдиреЗ рдХреЗ рд▓рд┐рдП

рд▓реБрдЖ: рдХреИрд╕реЗ рдПрдореНрдмреЗрдбрд┐рдВрдЧ рдХреЛ рд░реЛрдХрдиреЗ рдФрд░ рдЬреАрдиреЗ рдХреЗ рд▓рд┐рдП



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



рдореИрдВ рдЖрдкрдХреЛ рд▓реБрдЖ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реНрдХ рдкреЗрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ:

рд▓реВрдЖ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЪрд┐рддреНрд░ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЧреНрд░рд╛рдл рдХреЛ рдмрдЪрд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рд╛рдЬрд┐рд╢ рд░рдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВред

рдПрдХ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЯреВрд▓рдХрд┐рдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдо рдЖрдИрдпреВрдкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ - рдПрдХ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА, рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рд▓реБрдЖ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреА рдЧрдгрдирд╛ рдХреЗ рд╕рд╛рде рдмрдирд╛рдИ рдЧрдИ рдереАред

рд▓реБрдЖ рдПрд╕рдбреАрдХреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

Lua рдХреЛ рдПрдХ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ , рд╡рд┐рдВрдбреЛрдЬ рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд▓рд┐рдП Lua рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рд░реЛрдЬрдорд░реНрд░рд╛ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ OS рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВ: рдбреЗрдЯрд╛рдмреЗрд╕, GUI, XML рдкрд╛рд░реНрд╕рд┐рдВрдЧ, рдЖрджрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ред рдпрд╣ рдЖрдкрдХреЛ рдкрд░реЗрд╢рд╛рди рди рдХрд░реЗрдВ рдХрд┐ рдЕрд╕реЗрдВрдмрд▓реА 5.1 рдореЗрдВ Lua рд╕рдВрд╕реНрдХрд░рдг, рдФрд░ 5.2 рдирд╣реАрдВ - рдЙрдирдХреЗ рдмреАрдЪ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдмрд╣реБрдд рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реИред

рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред

Iup рдЕрд╡рдзрд╛рд░рдгрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд

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

рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдб


--   iup require("iuplua" ) require("iupluacontrols") require("iuplua_pplot") --     Canvas,      require("cdlua") require("iupluacd") require("string") --        --    plots_number = 5 --  ,          tabs = {} --    vboxes = {} --    ,    checkboxes = {} --         coords = {} --      legends = {} --     global_legend = {} --   ,  Lua    split function string:split(sep) local sep, fields = sep or ":", {} local pattern = string.format("([^%s]+)", sep) self:gsub(pattern, function(c) fields[#fields+1] = c end) return fields end --         function draw_plot(pwidget, pnum, data) x = data[1].value:split(",") y = data[2].value:split(",") if checkboxes[pnum].value == "OFF" then return end if not (#x == #y) or #x == 0 then iup.Message("", "      " .. pnum) return end iup.PPlotBegin(pwidget, 0) iup.PPlotAdd(pwidget, 0, 0) for i = 1,#x do iup.PPlotAdd(pwidget, x[i], y[i]) end iup.PPlotEnd(pwidget) end --       plot_btn = iup.button{ title = ""} --    " " function plot_btn:action() --    plot = iup.pplot { expand="YES", TITLE = "Simple Line", MARGINBOTTOM="65", MARGINLEFT="65", AXS_XLABEL = global_legend[1].value, AXS_YLABEL = global_legend[2].value, LEGENDSHOW="YES", LEGENDPOS="TOPLEFT", size = "400x300" } --      -          iup.PPlotBegin(plot, 0) iup.PPlotAdd(plot,0,0) plot.DS_LEGEND = "" iup.PPlotEnd(plot) --     for i = 1, plots_number do --        print(legends[i].value) plot.DS_LEGEND = legends[i].value --   draw_plot(plot, i, coords[i]) end --        save_btn = iup.button{ title = "" } --    ,     plot_dg = iup.dialog { iup.vbox --   ,       { plot, save_btn }, } --     function save_btn:action() --        --          EMF fs_dlg = iup.filedlg{DIALOGTYPE = "SAVE", FILTER = "*.emf" } iup.Popup(fs_dlg) --    if tonumber(fs_dlg.STATUS) >= 0 then --      pic = fs_dlg.value if not (string.sub(pic, string.len(pic)-3) == ".emf") then pic = pic .. ".emf" end --  -,    tmp_cv = cd.CreateCanvas(cd.EMF, pic .. " 400x300") --     iup.PPlotPaintTo(plot, tmp_cv) --     cd.KillCanvas(tmp_cv) end end --     plot_dg:showxy(iup.CENTER, iup.CENTER) --       if (iup.MainLoopLevel()==0) then iup.MainLoop() end end --    ,       --    for i=1,plots_number do --   ,      coords[i] = {} for j = 1,2 do coords[i][j] = iup.text { expand="HORIZONTAL", multiline = "YES", VISIBLELINES = 5 } end --       legends[i] = iup.text{ expand = "HORIZONTAL" } --        vboxes[i] = iup.vbox { iup.hbox { iup.label { title = " :" }, legends[i] }, iup.hbox { iup.label { title="X : ", }, coords[i][1] }, iup.hbox { iup.label { title="Y : ", }, coords[i][2] }; expand="YES", } --    vboxes[i].tabtitle = " " .. i --  ,     ,    --       checkboxes[i] = iup.toggle{ title= "" .. i, value = "ON" } end --        tabs = iup.tabs{unpack(vboxes)} --        global_legend[1] = iup.text{} global_legend[2] = iup.text{} --       frame = iup.frame { iup.vbox { iup.label{ title=" :", expand="HORIZONTAL" }, iup.vbox { unpack(checkboxes) }, iup.label{}, --       iup.label{title = ""}, iup.hbox { iup.label{ title = " X "}, global_legend[1] }, iup.hbox { iup.label{ title = " Y "}, global_legend[2] }, iup.label{}, plot_btn }; expand = "VERTICAL", } --            dg = iup.dialog { iup.hbox { frame, tabs }, title=" ", size = "HALF" } --        dg:showxy(iup.CENTER, iup.CENTER) if (iup.MainLoopLevel()==0) then iup.MainLoop() end 


рддреИрдирд╛рддреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрдж

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

 lua plotter.exe 


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

 lua.exe lib/lua5.1.dll clibs/cd.dll clibs/cdlua51.dll clibs/iup.dll clibs/iup_pplot.dll clibs/iupcd.dll clibs/iupcontrols.dll clibs/iupgl.dll clibs/iuplua51.dll clibs/iuplua_pplot51.dll clibs/iupluacd51.dll clibs/iupluacontrols51.dll clibs/freetype6.dll 


рдЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд╕рд╛рде рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓рдирд╛ред рдЕрдм рдЖрдк рдЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдорд╢реАрди рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдКрдкрд░ рдмрддрд╛рдП рдЧрдП рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдЕрдкрдирд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕реА рд╕рдордп, рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рд░рдирдЯрд╛рдЗрдо рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, Windows рдХреЗ рд▓рд┐рдП Lua рдХреЗ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ cd.dll, cdluad51.dll рдФрд░ iupcd.dll рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдиреНрд╣реЗрдВ рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рд▓реЗрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред

рдкрд░рд┐рдгрд╛рдо

рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣ рдпрд╣рд╛рдВ рд╣реИ , рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, app.bat рд▓рд╛рдВрдЪрд░ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ:





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

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

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


All Articles