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:
\frac{1}{\operatorname{Re}}=\frac{1}{R 1}+\frac{1}{R 2}+\frac{1}{R 3}

Passo 1

O enunciado pede que escrevamos um programa que calcule a resistência equivalente de três resistores R1, R2 e R3 ligados em paralelo. Devemos ler os valores dos resistores no programa e devolver a resistência equivalente Re. Informações relevantes dadas:
\frac{1}{\operatorname{Re}}=\frac{1}{R1}+\frac{1}{R2}+\frac{1}{R3}
Entradas: os valores numéricos de R1, R2 e R3 (em ohms).
Saída desejada: o valor de \operatorname{Re} (em ohms), com tratamento de casos especiais (por exemplo, resistor com valor zero).

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: I=V/R). Dividindo tudo por V obtemos a soma dos inversos das resistências, que é a razão por onde surgiu a fórmula:
\frac{1}{\operatorname{Re}}=\frac{1}{R1}+\frac{1}{R2}+\frac{1}{R3}.
Uma forma útil de enxergar isso é usando condutância: definimos G=\frac{1}{R}. Para resistores em paralelo, as condutâncias somam:
G_{eq}=G_1+G_2+G_3,
onde G_{eq}=\frac{1}{\operatorname{Re}} e G_i=\frac{1}{R_i}. Então
\operatorname{Re}=\frac{1}{G_{eq}}=\frac{1}{\dfrac{1}{R1}+\dfrac{1}{R2}+\dfrac{1}{R3}}.

Passo 3

Casos especiais e validações importantes (que o programa deve cuidar):
  • Se qualquer R_i=0 (curto-circuito), a resistência equivalente é \operatorname{Re}=0 (curto no paralelo domina).
  • Se todos os R_i 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á:
  1. Ler R1, R2 e R3 do usuário (aceitar números com vírgula ou ponto).
  2. Validar: se alguma entrada não for número, pedir novamente; se alguma for negativa, avisar e pedir novamente.
  3. Se qualquer R_i=0, definir \operatorname{Re}=0 imediatamente.
  4. Caso contrário, calcular a soma das reciprocidades:
S=\frac{1}{R1}+\frac{1}{R2}+\frac{1}{R3}.
  1. Se S=0 (caso extremo), tratar como resistência equivalente infinita; caso contrário calcular
\operatorname{Re}=\frac{1}{S}.
  1. Exibir o resultado de forma legível (por exemplo com algumas casas decimais) e uma mensagem clara se \operatorname{Re} for zero ou infinita.

Passo 5

Exemplo numérico passo a passo (para aprender a fazer na prova): suponha R1=10\\ \Omega, R2=20\\ \Omega, R3=30\\ \Omega.
Calcule as reciprocidades:
\frac{1}{R1}=\frac{1}{10}=0{,}1,
\frac{1}{R2}=\frac{1}{20}=0{,}05,
\frac{1}{R3}=\frac{1}{30}\approx0{,}033333\ldots
Somando:
S=0{,}1+0{,}05+0{,}033333\ldots=0{,}183333\ldots
Logo
\operatorname{Re}=\frac{1}{S}\approx\frac{1}{0{,}183333\ldots}\approx5{,}454545\\ \Omega.
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()

Exercícios relacionados