#
#  Quarto di cerchio: valutazione numerica dell'area (e di pi)
#

# funzione del quarto di cerchio
# (generico nome fun per riutilizzarlo con altre funzioni)
fun <- function(x) sqrt(1-x^2)  # att!! senza controlli!!

# Chiediamo il nr di punti
N <- as.integer( readline("Dai il numero di intervalli ") ) 
cat(sprintf("\nOk, N = %d\n", N))

x <- seq(0, 1, len=(N+1))       # x usato per discretizzazione
dx = 1 / N            

l = 0
A = 0
for (i in 1:length(x)) {
    xi <- x[i]
    if (i > 1) {                    #  MODIFICARE DAPPERTUTTO!!
        xc <- xi - dx/2
        A = A + dx * fun(xc)
        dy = fun(x[i]) - fun(x[i-1])
        l = l + sqrt(dx^2 + dy^2)
    }    
}

cat(sprintf("Area = %f  (esatta: %f)\n", A, pi/4))
cat(sprintf("Arco = %f  (esatto: %f)\n", l, pi/2))
cat(sprintf("\nStime di pi greco\n"))
cat(sprintf("Dall'area: %f\n", 4 * A))    
cat(sprintf("Dall'arco: %f\n", 2 * l))    
