Uma empresa, que presta serviço à companhia de energia elétrica do estado, necessita de um programa que auxilie os seus eletricistas no cálculo das principais grandezas da Eletricidade que são Tensão, Resistência e Corrente. Sabe-se que U=Ri, onde, U é a Tensão (em V), R é a Resistência (em ’ \Omega ) e i a Corrente (em A). Você foi contratado(a) pela empresa para atender a essa solicitação. Construa um programa que apresente o seguinte menu:

**************************************************
\section*{CÁLCULO DE GRANDEZAS ELÉTRICAS}
\section*{**************************************************}

  1. Tensão (em Volt)
  2. Resistência (em Ohm)
  3. Corrente (em Ampére)

Qual grandeza deseja calcular ?

Em seguida, o programa deve solicitar que o eletricista informe o valor das outras duas grandezas para realizar o cálculo. Quando o eletricista escolher:
Tensão, o programa deve solicitar que ele informe os valores da Resistência e da Corrente

Passo 1

O enunciado pede um programa que mostre um menu com três opções (Tensão, Resistência, Corrente) e, após o eletricista escolher qual grandeza quer calcular, solicite os valores das outras duas grandezas para calcular a escolhida usando a relação dada. Informações importantes fornecidas pelo enunciado:
  • A relação entre as grandezas é U = R\,i.
  • Grandezas e unidades:
    • U é a Tensão, em Volt (V).
    • R é a Resistência, em Ohm ( \Omega).
    • i é a Corrente, em Ampére (A).
  • O programa deve apresentar o menu:
    1. Tensão (em Volt)
    2. Resistência (em Ohm)
    3. Corrente (em Ampére)
  • Depois da escolha, o programa pede os dois valores restantes e calcula o valor pedido.

Passo 2

Vamos entender bem a fórmula dada: a lei de Ohm. A fórmula é
U = R\,i
onde:
  • U é a tensão elétrica (diferença de potencial) medida em volts;
  • R é a resistência elétrica medida em ohms ( \Omega);
  • i é a corrente elétrica medida em ampères.
Isso significa que a tensão é o produto da resistência pela corrente. É uma coisa bem direta: se você dobrar a corrente e mantiver a resistência, a tensão dobra, etc.

Passo 3

Agora vamos aprender como isolar cada variável — isto é, como calcular qualquer uma delas a partir das outras duas usando álgebra simples:
  • Para calcular a tensão (quando você tem R e i):
U = R\,i
  • Para calcular a resistência (quando você tem U e i), dividimos ambos os lados por i:
R = \frac{U}{i}
  • Para calcular a corrente (quando você tem U e R), dividimos ambos os lados por R:
i = \frac{U}{R}
Explicação do passo da divisão: dividir ambos os lados da igualdade por uma mesma quantidade não nula mantém a igualdade. Por isso a condição “não nulo” é importante — se o denominador for zero, a divisão é indefinida.

Passo 4

Condições e validações que o programa precisa cuidar (coisas que dão errado na prova se você esquecer):
  • Divisão por zero: ao calcular R precisamos que i \neq 0; ao calcular i precisamos que R \neq 0. Se o usuário digitar zero no denominador, o resultado é indefinido — o programa deve detectar isso e avisar o eletricista em vez de tentar dividir.
  • Tipos numéricos: as entradas devem ser tratadas como números reais (p.ex. floats) — o eletricista pode digitar valores com casas decimais.
  • Valores negativos: em teoria elétrica prática, resistência negativa não é comum em resistores passivos, mas o programa pode aceitar valores negativos se for necessário para casos especiais; o importante é avisar se o usuário inserir entradas fisicamente estranhas. Para a prova, aceite números reais e foque na validação de zero quando necessário.

Passo 5

Estrutura lógica (fluxo) do programa — em palavras, etapa a etapa:
  1. Mostrar o menu com as três opções numeradas.
  2. Ler a escolha do usuário.
  3. Se a escolha for 1 (Tensão):
    • Pedir ao usuário os valores de R e i.
    • Converter essas entradas para número real.
    • Calcular U = R \cdot i.
    • Mostrar o resultado em Volt.
  4. Se a escolha for 2 (Resistência):
    • Pedir ao usuário os valores de U e i.
    • Validar que i \neq 0. Se i = 0, avisar que não é possível calcular.
    • Caso contrário, calcular R = U / i.
    • Mostrar o resultado em \Omega.
  5. Se a escolha for 3 (Corrente):
    • Pedir ao usuário os valores de U e R.
    • Validar que R \neq 0. Se R = 0, avisar que não é possível calcular.
    • Caso contrário, calcular i = U / R.
    • Mostrar o resultado em A.
  6. Tratar entradas inválidas (escolha fora de 1–3 ou valores não numéricos) com mensagens amigáveis e possivelmente permitir nova tentativa.

Passo 6

Como validar entradas numéricas na prova (sem código complexo): ao ler uma entrada do usuário, tente converter para número; se a conversão falhar, a entrada não é válida. No contexto de uma implementação simples (p.ex. em Python), usamos algo como:
  • Tentar fazer x = \text{float}(\text{entrada}).
  • Se der erro, avisar e pedir novamente.
Na prova, se você tiver que escrever o algoritmo, mostre explicitamente essa verificação.

Passo 7

Exemplos concretos e passo a passo aritmético (para você praticar as contas manualmente):
Exemplo A — calcular tensão:
  • Dados: R = 10\\ \Omega e i = 2\\ \text{A} (estou pegando esses valores como exemplo).
  • Fórmula: U = R\,i.
  • Substituindo: U = 10 \times 2.
  • Cálculo: U = 20.
  • Resultado: U = 20\\ \text{V}.
Exemplo B — calcular resistência:
  • Dados: U = 230\\ \text{V} e i = 2\\ \text{A}.
  • Fórmula: R = \dfrac{U}{i}.
  • Substituindo: R = \dfrac{230}{2}.
  • Cálculo: R = 115.
  • Resultado: R = 115\\ \Omega.
Exemplo C — calcular corrente:
  • Dados: U = 12\\ \text{V} e R = 4\\ \Omega.
  • Fórmula: i = \dfrac{U}{R}.
  • Substituindo: i = \dfrac{12}{4}.
  • Cálculo: i = 3.
  • Resultado: i = 3\\ \text{A}.
Fazendo essas contas manualmente você aprende o padrão: multiplicar quando pede U, dividir quando pede R ou i.

Passo 8

Decisões de implementação (por que escolhi essas opções):
  • Vou usar uma única execução simples (o programa roda, faz um cálculo e termina). Isso é suficiente para a prova; se precisar, a mesma lógica pode ser colocada num laço para repetir.
  • Vou escolher uma linguagem simples e muito usada: Python 3. Motivo: sintaxe curta, fácil de ler e de adaptar em prova como pseudocódigo.
  • Tratamento de erros: usarei verificação de divisões por zero e tratamento de entradas não numéricas com mensagens claras.

Passo 9

Boas práticas de saída e apresentação:
  • Mostrar unidades junto do número (ex.: “20 V”, "115 \Omega", “3 A”).
  • Arredondamento: mostrar os resultados com, por exemplo, duas casas decimais quando for float (usar arredondamento) para ficar apresentável, salvo se o valor for inteiro exato.
  • Mensagens amigáveis e claras — lembre que o eletricista pode não ser programador.

Passo 10

Segue o algoritmo final em forma de código Python pronto para ser usado. O código implementa: menu, leitura segura de número, verificação de divisão por zero, cálculo e saída formatada. Use este código no seu computador ou envie para os eletricistas da empresa.

Resposta

def leia_float(prompt):
    while True:
        try:
            s = input(prompt)
            # permite vírgula como separador decimal (opcional)
            s = s.replace(',', '.')
            return float(s)
        except ValueError:
            print("Entrada inválida. Digite um número (por exemplo 12,5 ou 12.5).")

def main():
    print("**************************************************")
    print("CÁLCULO DE GRANDEZAS ELÉTRICAS")
    print("**************************************************")
    print("1. Tensão (em Volt)")
    print("2. Resistência (em Ohm)")
    print("3. Corrente (em Ampére)")
    escolha = input("Qual grandeza deseja calcular ? (1/2/3): ").strip()

    if escolha == '1':
        # Calcular tensão U = R * i
        R = leia_float("Informe o valor da Resistência R (em Ohm): ")
        i = leia_float("Informe o valor da Corrente i (em A): ")
        U = R * i
        # Mostrar com duas casas decimais, removendo .00 se inteiro
        if abs(U - round(U)) < 1e-9:
            print(f"Resultado: U = {int(round(U))} V")
        else:
            print(f"Resultado: U = {U:.2f} V")

    elif escolha == '2':
        # Calcular resistência R = U / i (verificar i != 0)
        U = leia_float("Informe o valor da Tensão U (em V): ")
        i = leia_float("Informe o valor da Corrente i (em A): ")
        if abs(i) < 1e-12:
            print("Erro: corrente igual a zero. Não é possível calcular resistência (divisão por zero).")
        else:
            R = U / i
            if abs(R - round(R)) < 1e-9:
                print(f"Resultado: R = {int(round(R))} \u03A9")
            else:
                print(f"Resultado: R = {R:.2f} \u03A9")

    elif escolha == '3':
        # Calcular corrente i = U / R (verificar R != 0)
        U = leia_float("Informe o valor da Tensão U (em V): ")
        R = leia_float("Informe o valor da Resistência R (em Ohm): ")
        if abs(R) < 1e-12:
            print("Erro: resistência igual a zero. Não é possível calcular corrente (divisão por zero).")
        else:
            i = U / R
            if abs(i - round(i)) < 1e-9:
                print(f"Resultado: i = {int(round(i))} A")
            else:
                print(f"Resultado: i = {i:.2f} A")

    else:
        print("Opção inválida. Execute o programa novamente e escolha 1, 2 ou 3.")

if __name__ == "__main__":
    main()

Exercícios relacionados