Created
April 19, 2024 18:49
-
-
Save marilira/aa688a14cd2d88ad0f959c9ae8398eab to your computer and use it in GitHub Desktop.
Tentativa de fazer código para aula de química - Lei de Hess
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def uniao(r, p): # Soma todas as equações intermediárias | |
rg = '' | |
for i in range(1, qtd): | |
rg += ' + '.join(r[i]) | |
if i != qtd-1: | |
rg += ' + ' | |
pd = '' | |
for i in range(1, qtd): | |
pd += ' + '.join(p[i]) | |
if i != qtd-1: | |
pd += ' + ' | |
return rg + ' -> ' + pd | |
def ajeita(i): # Coloca os elementos no formato de equação | |
r = ' + '.join(reagentes[i]) | |
p = ' + '.join(produtos[i]) | |
return r + ' -> ' + p | |
def verificaReagentes(r): | |
flag = True | |
r = r.split(' + ') | |
for rg in r: | |
if rg not in reagentes[0]: | |
flag = False | |
break | |
return flag | |
def verificaProdutos(p): | |
flag = True | |
p = p.split(' + ') | |
for pd in p: | |
if pd not in produtos[0]: | |
flag = False | |
break | |
return flag | |
def verifica(equacao): # Diz se os elementos da equacao estao presentes na global | |
e = equacao.split(' -> ') | |
if verificaReagentes(e[0]) and verificaProdutos(e[1]): | |
return True | |
return False | |
def inverte(i): | |
cp = reagentes[i] | |
reagentes[i] = produtos[i] | |
produtos[i] = cp | |
qtd = int(input("Digite a quantidade de equações: ")) | |
produtos = [] | |
reagentes = [] | |
entalpias = [] | |
# Posição 0 sempre se refere a equação global | |
for i in range(qtd): | |
r, p = input(f"Digite a equação {i}: ").split(" -> ") | |
reagentes.append(r.split(" + ")) | |
produtos.append(p.split(" + ")) | |
for i in range(qtd-1): | |
entalpias.append(float(input(f"Digite a entalpia da equação intermediária {i+1}: "))) | |
outrosReagentes, outrosProdutos = [], [] | |
for i in range(1, qtd): | |
for e in reagentes[i]: | |
if e not in reagentes[0] and e not in outrosReagentes: | |
outrosReagentes.append(e) | |
for i in range(1, qtd): | |
for e in produtos[i]: | |
if e not in produtos[0] and e not in outrosProdutos: | |
outrosProdutos.append(e) | |
''' | |
while uniao(reagentes, produtos) != ajeita(0): | |
if verifica(uniao(reagentes, produtos)): | |
break | |
''' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment