Escrever um programa que calcule a resistência equivalente (Re) de um circuito elétrico composto de três resistores R1, R2, e R3 em paralelo. Os valores dos resistores deverão ser lidos pelo programa.
OBS:
OBS:
Passo 1
O enunciado pede que escrevamos um programa que calcule a resistência equivalente de três resistores
,
e
ligados em paralelo. Devemos ler os valores dos resistores no programa e devolver a resistência equivalente
. Informações relevantes dadas:
Entradas: os valores numéricos de
,
e
(em ohms).
Saída desejada: o valor de (em ohms), com tratamento de casos especiais (por exemplo, resistor com valor zero).
Saída desejada: o valor de
Passo 2
Entendendo a fórmula e o conceito: quando resistores estão em paralelo, a tensão entre os terminais é a mesma para cada resistor e as correntes se somam. A corrente total é a soma das correntes em cada resistor (Lei de Ohm:
). Dividindo tudo por
obtemos a soma dos inversos das resistências, que é a razão por onde surgiu a fórmula:
Uma forma útil de enxergar isso é usando condutância: definimos
. Para resistores em paralelo, as condutâncias somam:
onde
e
. Então
Passo 3
Casos especiais e validações importantes (que o programa deve cuidar):
- Se qualquer
(curto-circuito), a resistência equivalente é (curto no paralelo domina). - Se todos os
forem muito grandes (ou iguais a infinito), a soma das reciprocidades pode ficar zero — isso corresponde a circuito aberto (resistência equivalente infinita). Na prática, ao ler valores finitos, o cuidado principal é evitar divisão por zero. - Resistências negativas não são físicas no contexto básico — o programa deve avisar ou rejeitar entradas negativas.
- Sempre lidar com entradas em ponto flutuante e aceitar vírgula ou ponto decimal para facilitar uso.
Passo 4
Algoritmo passo a passo que o programa implementará:
- Ler
, e do usuário (aceitar números com vírgula ou ponto). - Validar: se alguma entrada não for número, pedir novamente; se alguma for negativa, avisar e pedir novamente.
- Se qualquer
, definir imediatamente. - Caso contrário, calcular a soma das reciprocidades:
- Se
(caso extremo), tratar como resistência equivalente infinita; caso contrário calcular
- Exibir o resultado de forma legível (por exemplo com algumas casas decimais) e uma mensagem clara se
for zero ou infinita.
Passo 5
Exemplo numérico passo a passo (para aprender a fazer na prova): suponha
,
,
.
Calcule as reciprocidades:
Calcule as reciprocidades:
Somando:
Logo
Esse é o tipo de conta que você pode fazer na prova: somar os inversos e inverter o resultado.
Passo 6
Programa em Python que implementa tudo explicado acima (leitura, validação, casos especiais e cálculo). Rode em qualquer terminal com Python 3. O programa aceita entradas com vírgula ou ponto e imprime uma mensagem clara se a resistência equivalente for zero ou infinita.
Resposta
#!/usr/bin/env python3
def read_resistor(name):
while True:
try:
s = input(f"Valor de {name} (ohms): ").strip().replace(',', '.')
val = float(s)
if val < 0:
print("Resistência negativa não é aceita. Digite um valor >= 0.")
continue
return val
except ValueError:
print("Entrada inválida. Digite um número (ex: 10, 2.5).")
def main():
print("Cálculo da resistência equivalente de 3 resistores em paralelo")
R1 = read_resistor("R1")
R2 = read_resistor("R2")
R3 = read_resistor("R3")
# Caso curto (qualquer resistor igual a zero)
if R1 == 0.0 or R2 == 0.0 or R3 == 0.0:
Re = 0.0
print("Resistência equivalente: 0,00 ohms (há um curto: um resistor = 0)")
return
# Soma das reciprocidades
S = 1.0 / R1 + 1.0 / R2 + 1.0 / R3
if S == 0.0:
print("Resistência equivalente: infinita (soma das condutâncias = 0)")
else:
Re = 1.0 / S
print(f"Resistência equivalente: {Re:.6f} ohms")
if __name__ == "__main__":
main()