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 ’
) 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*{**************************************************}
- Tensão (em Volt)
- Resistência (em Ohm)
- 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
\section*{CÁLCULO DE GRANDEZAS ELÉTRICAS}
\section*{**************************************************}
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 é
. - Grandezas e unidades:
-
é a Tensão, em Volt (V). -
é a Resistência, em Ohm ( ). -
é a Corrente, em Ampére (A).
-
- O programa deve apresentar o menu:
- Tensão (em Volt)
- Resistência (em Ohm)
- 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 é
onde:
-
é a tensão elétrica (diferença de potencial) medida em volts; -
é a resistência elétrica medida em ohms ( ); -
é 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
e ):
- Para calcular a resistência (quando você tem
e ), dividimos ambos os lados por :
- Para calcular a corrente (quando você tem
e ), dividimos ambos os lados por :
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
precisamos que ; ao calcular precisamos que . 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:
- Mostrar o menu com as três opções numeradas.
- Ler a escolha do usuário.
- Se a escolha for 1 (Tensão):
- Pedir ao usuário os valores de
e . - Converter essas entradas para número real.
- Calcular
. - Mostrar o resultado em Volt.
- Pedir ao usuário os valores de
- Se a escolha for 2 (Resistência):
- Pedir ao usuário os valores de
e . - Validar que
. Se , avisar que não é possível calcular. - Caso contrário, calcular
. - Mostrar o resultado em
.
- Pedir ao usuário os valores de
- Se a escolha for 3 (Corrente):
- Pedir ao usuário os valores de
e . - Validar que
. Se , avisar que não é possível calcular. - Caso contrário, calcular
. - Mostrar o resultado em A.
- Pedir ao usuário os valores de
- 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
. - 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:
e (estou pegando esses valores como exemplo). - Fórmula:
. - Substituindo:
. - Cálculo:
. - Resultado:
.
Exemplo B — calcular resistência:
- Dados:
e . - Fórmula:
. - Substituindo:
. - Cálculo:
. - Resultado:
.
Exemplo C — calcular corrente:
- Dados:
e . - Fórmula:
. - Substituindo:
. - Cálculo:
. - Resultado:
.
Fazendo essas contas manualmente você aprende o padrão: multiplicar quando pede
, dividir quando pede
ou
.
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
", “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()