# riemann
# calcula la integracion numerica de una funcion en forma aproximada
# en un dominio a-b dentro del cual la funcion es continua
# la funcion se ingresa en tiempo de programacion

#inicializacion de variables
a=0.0
b=1.5
divisiones=1
areas=0.0
parcials=0.0

arear=0.0
parcialr=0.0


a=float(input("limite inferior"))
b=float(input("limite superior"))
divisiones=input("numero de divisiones")
incremento=(b-a)/divisiones

lim_inf=float(a)
lim_sup=lim_inf+incremento


# definicion de la funcion
def f(x):
    # aqui se define la funcion a evaluar
    f=x**2
    return f

#calculos de cada sub area y su acumulacion   
for i in range(divisiones):
    print ("inf",lim_inf,"sup",lim_sup,"i",i)
    parcialr=f(lim_inf)*(lim_sup-lim_inf)
    parcials=(lim_sup-lim_inf)/6*(f(lim_inf)+4*f((lim_sup+lim_inf)/2)+f(lim_sup))
    areas=areas+parcials
    arear=arear+parcialr
    lim_inf=lim_sup
    lim_sup=lim_inf+incremento
print ("riemman",arear,"simpson",areas)
    
    
    

