Skip to content

Instantly share code, notes, and snippets.

@marilira
Created April 19, 2024 18:49
Show Gist options
  • Save marilira/aa688a14cd2d88ad0f959c9ae8398eab to your computer and use it in GitHub Desktop.
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
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