def Produit(parametre):
    question = u"Résoudre l'équation"
    exo = []
    cor = []
    valeurs = valeurs_equation(parametre[0], parametre[1])
    variable = variable_list[ random.randrange(7) ]
    exo.append(u"$$ %s = 0 $$" % tex_dev0(valeurs, variable))
    cor.append(u"$$ %s = 0 $$" % tex_dev0(valeurs, variable))
    tex_equations(valeurs, variable, cor)
    return (exo, cor, question)
def DistributiviteSimple(parametre):
    question = u"Développer :"
    exo = []
    cor = []
    valeur = valeurs_distr(parametre[0], parametre[1])
    exo.append("$$ A = %s $$" %tex_dev0(valeur, ''))
    cor.append("\\begin{center}")
    cor.append("$\\begin{aligned}")
    cor.append("A & = %s \\\\" %tex_dev0(valeur, ''))
    cor.append("A & = \\boxed{%s} \\\\" %tex_dev1(valeur, ''))
    cor.append("\\end{aligned}$")
    cor.append("\\end{center}")
    return (exo, cor, question)
def construction(valeur):
    question = u"Développer et réduire :"
    exo = []
    cor = []
    variable = variable_list[ random.randrange(7) ]
    exo.append("$$ A = %s $$" %tex_dev0(valeur, variable))
    cor.append("\\begin{center}")
    cor.append("$\\begin{aligned}")
    cor.append("A & = %s \\\\" %tex_dev0(valeur, variable))
    cor.append("A & = %s \\\\" %tex_dev1(valeur, variable))
    cor.append("A & = \\boxed{%s} \\\\" %tex_trinome(dev(valeur), variable))
    cor.append("\\end{aligned}$")
    cor.append("\\end{center}")
    return (exo, cor, question)
def tex_type123_0(valeurs, variable):  #renvoie -(2x+3)(x+5)+(2x+3)(3x+6)
    if valeurs[2]:
        if valeurs[3]:
            return '-' + tex_dev0(valeurs[0], variable) + '-' + tex_dev0(valeurs[1], variable)
        else:
            return '-' + tex_dev0(valeurs[0], variable) + '+' + tex_dev0(valeurs[1], variable)
    elif valeurs[3]:
        return tex_dev0(valeurs[0], variable) + '-' + tex_dev0(valeurs[1], variable)
    else:
        return tex_dev0(valeurs[0], variable) + '+' + tex_dev0(valeurs[1], variable)
def tex_type467(valeurs, variable, cor, exo):  # ecrit toutes les etapes de la factorisation
    if exo:
        exo.append("$$A = %s$$" %tex_trinome(dev(valeurs), variable))
    cor.append("\\begin{center}")
    cor.append("$\\begin{aligned}")
    cor.append("A & = %s \\\\" %tex_trinome(dev(valeurs), variable))
    cor.append("A & = %s \\\\" %tex_dev1(valeurs, variable))
    cor.append("A & = \\boxed{%s} \\\\" %tex_dev0(valeurs, variable))
    cor.append("\\end{aligned}$")
    cor.append("\\end{center}")
def tex_type0_0(valeurs, variable):  #renvoie -(2x+3)+(2x+3)(3x+6)
    ligne = ''
    if valeurs[2]:
        ligne += '-'

    if valeurs[0][1][0]== 0:
        ligne += '(' + tex_dev0(valeurs[0], variable)+ ')'
    else:
        ligne += tex_dev0(valeurs[0], variable)

    if valeurs[3]:
        ligne += '-'
    else:
        ligne += '+'

    if valeurs[1][1][0]== 0:
        ligne += '(' + tex_dev0(valeurs[1], variable)+ ')'
    else:
        ligne += tex_dev0(valeurs[1], variable)
    return ligne
def FactorisationSimple(parametre):
    question = u"Factoriser :"
    exo = []
    cor = []
    valeur = valeurs_facto(parametre[0], parametre[1])
    exo.append("$$ A = %s $$" %tex_dev1(valeur, ''))
    cor.append("\\begin{center}")
    cor.append("$\\begin{aligned}")
    cor.append("A & = %s \\\\" %tex_dev1(valeur, ''))
    cor.append("A & = \\boxed{%s} \\\\" %tex_dev0(valeur, ''))
    cor.append("\\end{aligned}$")
    cor.append("\\end{center}")
    return (exo, cor, question)
def tex_type5(valeurs, variable, cor, exo):  # ecrit toutes les etapes de la factorisation
    if exo:
        exo.append("$$A = %s$$" %tex_type5_0(valeurs, variable))
    cor.append("\\begin{center}")
    cor.append("$\\begin{aligned}")
    cor.append("A & = %s \\\\" %tex_type5_0(valeurs, variable))
    cor.append("A & = %s^2-%s^2 \\\\" % (tex_binome(valeurs[0], variable, bpar=1), tex_binome(valeurs[1], variable, bpar=1)))
    cor.append("A & = %s \\\\" %tex_type5_2(valeurs, variable))
    if valeurs[0][0] == 0:
        cor.append("A & = %s \\\\" %tex_type5_3(valeurs, variable))
    cor.append("A & = \\boxed{%s} \\\\" %tex_dev0((somme_polynomes(valeurs[0], valeurs[1]), somme_polynomes(valeurs[0], coef_opposes(valeurs[1]))), variable))
    cor.append("\\end{aligned}$")
    cor.append("\\end{center}")
def tex_type0(valeurs, variable, cor, exo=None):  # ecrit toutes les etapes de la factorisation
    (a, b, nega, negb) = valeurs
    f = facteur_commun(a, b)
    if exo:
        exo.append("$$A = %s$$" %tex_type0_0(valeurs, variable))
    cor.append("\\begin{center}")
    cor.append("$\\begin{aligned}")
    cor.append("A & = %s \\\\" %tex_type0_0(valeurs, variable))
    cor.append("A & = %s \\\\" %tex_type123_1(f, variable, nega, negb))
    f2 = facteur_commun2(f, nega, negb)
    if nega and f2[1][0] != 0 and f2[1][1] != 0 or negb and f2[2][0] != 0 and f2[2][0] != 0:
        cor.append("A & = %s \\\\" %tex_type123_2(f2, variable))
    cor.append("A & = \\boxed{%s} \\\\" %tex_dev0((f2[0], somme_polynomes(f2[1], f2[2])), variable))
    cor.append("\\end{aligned}$")
    cor.append("\\end{center}")
def CalculDistributivite(parametre):
    question = u"Calculer astucieusement :"
    exo = []
    cor = []
    valeur = valeurs_calcul_distr(parametre[0], parametre[1])
    exo.append("$$ A = %s \\times %s $$" % (tex_coef(valeur[0][0]+valeur[0][1], ''), tex_coef(valeur[1][0]+valeur[1][1], '', 0, 1)))
    cor.append("\\begin{center}")
    cor.append("$\\begin{aligned}")
    cor.append("A & = %s \\times %s \\\\" % (tex_coef(valeur[0][0]+valeur[0][1], ''), tex_coef(valeur[1][0]+valeur[1][1], '', 0, 1)))
    if abs(valeur[0][0])+ abs(valeur[1][0]):
        cor.append("A & = %s \\\\" %tex_dev0(valeur, ''))
        cor.append("A & = %s \\\\" %tex_dev1(valeur, ''))
        cor.append("A & = %s \\\\" %tex_trinome(dev(valeur), ''))
    cor.append("A & = \\boxed{%s} \\\\" %(dev(valeur)[0]+dev(valeur)[1]+dev(valeur)[2]))
    cor.append("\\end{aligned}$")
    cor.append("\\end{center}")
    return (exo, cor, question)