Skip to content

Instantly share code, notes, and snippets.

@nosrednawall
Last active March 9, 2024 14:56
Show Gist options
  • Save nosrednawall/b89c14a70f8f399874a62aadf1ff1a34 to your computer and use it in GitHub Desktop.
Save nosrednawall/b89c14a70f8f399874a62aadf1ff1a34 to your computer and use it in GitHub Desktop.
Código que calcula sistemas de primeiro grau, precisa necessariamente ter duas incógnitas que estão sendo igualadas a algum valor.
#!/usr/bin/env python3
# coding=utf8
# ----------------------------------------------------------------------------
# Created By : Anderson José de Souza Inácio
# Created Date: 2024-03-09
# version ='1.0'
# ---------------------------------------------------------------------------
""" Curso Estatística 2024 UFPR
Disciplina CI182 Fundamentos de Programacao de Computadores
Aula 3 Exercício 3.6 - 3 eqSist
Código que realiza o calculo de sistemas de primeiro Grau, utilizando o
método de substituição, mais informações em
https://www.todamateria.com.br/sistemas-de-equacoes-do-1-grau-exercicios/"""
# ---------------------------------------------------------------------------
# Import
# ---------------------------------------------------------------------------
# from string import *
# from math import *
print('Bem vindo ao programa calcula sistemas!\n'
'Para que o programa funcione corretamente,\n'
'sera necessario informar 6 valores no formato de inteiro ou decimal'
'(separado em virgula) mais o operador entre x e y:\n'
' - Se o valor de X e igualdade for negativo é necessário colocar'
' o menos junto,\n'
' - Se o valor de X ou Y for 1 deve ser informado 1,\n'
' - Exemplos:\n'
' x + y = -12 Seria igual a 1 + 1 = -12\n'
' 3x - y = 20 Seria igual a 3 - 1 = 20\n')
# Recebe o valor de X da primeira equacao
valorX1 = float(input('Informe o valor X na primeira equação: '))
# Recebe o sinal entre as icognitas da primeira equacao
operador1Equacao = str(input('Informe o operador matemático (+ou-): '))
# Recebe o valor de Y da primeira equacao
valorY1 = float(input('Informe o valor Y na primeira equação: '))
# Recebe o valor de igualdade da primeira equacao
igualdade1Equacao = float(input('Informe o valor da igualdade da '
'primeira equacao: '))
# Recebe o valor de X da segunda equacao
valorX2 = float(input('Informe o valor X na segunda equação: '))
# Recebe o sinal entre as icognidas da segunda equacao
operador2Equacao = str(input('Informe o operador matemático (+ou-): '))
# Recebe o valor de Y da segunda equacao
valorY2 = float(input('Informe o valor Y na segunda equação: '))
# Recebe o valor de igualdade da primeira equacao
igualdade2Equacao = float(input('Informe o valor da igualdade da '
'segunda equacao: '))
# Inverte a ordem das equações, para as questões
# na qual se usa o método de adição
if (valorX1 < valorX2):
# Parte de cima da divisão final
resultadoNumerador = (igualdade2Equacao) - (
(valorX2) * (igualdade1Equacao)
)
# Parte de baixo da divisão final
if (operador1Equacao == '+' and operador2Equacao == '+'):
resultadoDenominador = ((valorX2) * (- (valorY1))) + (valorY2)
elif (operador1Equacao == '+' and operador2Equacao == '-'):
resultadoDenominador = ((valorX2) * (- (valorY1))) - (valorY2)
elif (operador1Equacao == '-' and operador2Equacao == '+'):
resultadoDenominador = ((valorX2) * (+ (valorY1))) + (valorY2)
else:
resultadoDenominador = ((valorX2) * (+ (valorY1))) - (valorY2)
# Se obtem o valor de Y
resultadoFinalY = resultadoNumerador / resultadoDenominador
# Se obtem o valor de X
resultadoFInalX = igualdade1Equacao - resultadoFinalY / valorX1
else:
# Parte de cima da divisao final
resultadoNumerador = (igualdade1Equacao) - (
(valorX1) * (igualdade2Equacao)
)
# Parte de baixo da divisao final
if (operador2Equacao == '+' and operador1Equacao == '+'):
resultadoDenominador = ((valorX1) * (- (valorY2))) + (valorY1)
elif (operador2Equacao == '+' and operador1Equacao == '-'):
resultadoDenominador = ((valorX1) * (- (valorY2))) - (valorY1)
elif (operador2Equacao == '-' and operador1Equacao == '+'):
resultadoDenominador = ((valorX1) * (+ (valorY2))) + (valorY1)
else:
resultadoDenominador = ((valorX1) * (+ (valorY2))) - (valorY1)
# Se obtem o valor de Y
resultadoFinalY = resultadoNumerador / resultadoDenominador
# Se obtem o valor de X
resultadoFInalX = igualdade2Equacao - resultadoFinalY / valorX2
print(resultadoNumerador, resultadoDenominador) # Para debbug
print('O valor de Y é: ', round(resultadoFinalY, 2))
print('O valor de X é: ', round(resultadoFInalX, 2))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment