def integ(a, b, h, func):
    """
    Интегрирование по формуле

    Parameters
    ----------
    a : float
        Левая граница интервала
    b : float
        Правая граница интервала
    h : float
        Шаг или точность
    func : str
        Исходная функция

    Returns
    -------
    S1 : float
        Значение определенного интеграла
    slist : [float, float, ...]
        История изменений значения определенного интеграла.

    """
    
    ylist1 = []
    slist = []
    xlist1 = []
    banlist = []
    
    def f(x):
        z = eval(func)
        return z

    S1 = 0
    c = int(1/h)
    for i in range(int(a*c),int(b*c),round(h*c)):
        try:
            S1 = S1 + ((f(i/c)+f(i/c+h))/2)*h
            xlist1.append(i/c)
            ylist1.append(f(i/c))
            slist.append(S1)
        except:
            print('Деление на 0')
            banlist.append(i/c)
            
    return S1, slist