ComPhy
      # julia
      using Plots

      ## задаємо робочу зону
      width, height = 2, 1
      r = 0.5
      c = height/2

      ## функції для графічного зображення фігур
      function circle(h, k, r)
          θ = LinRange(0, 2π, 500)
          h .+ r .* sin.(θ), k .+ r .* cos.(θ)
      end

      function square(h, k, a)
          ha = a/2
          [h-ha, h+ha, h+ha, h-ha, h-ha], [k+ha, k+ha, k-ha, k-ha, k+ha]
      end

      ## ітерації
      iters = 1000
      points = [Float64[], Float64[]]
      inc, ins = 0, 0
      pitrials = Float64[]
      for  _ in 1:iters
          push!(pitrials, inc/max(1, ins))
          x, y = width*rand(), height*rand()
          push!(points[1], x)
          push!(points[2], y)
          if width-1.5r <= x && x <= width-0.5r && c-0.5r <= y && y <= c+0.5r
              ins += 1
          elseif (x-r)^2 + (y-c)^2 <= r^2
              inc += 1
          end
      end

      ## намалювати середовище
      table = scatter(points..., legend=false)
      plot!(table, circle(r, c, r), legend=false, lw=2, color="black")
      plot!(table, square(width-r, c, r), lw=2, color="black")

      ## намалювати графік наближення
      piplot = plot(pitrials, label="наближення")
      hline!(piplot,[π], label="π")