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:
Resistência, o programa deve solicitar que ele informe os valores da Tensão e da Corrente
\section*{CÁLCULO DE GRANDEZAS ELÉTRICAS}
\section*{**************************************************}
Resistência, o programa deve solicitar que ele informe os valores da Tensão e da Corrente
Passo 1
O enunciado pede que a gente construa um programa interativo que apresente um menu com três opções (Tensão, Resistência, Corrente) e, a partir da escolha do eletricista, solicite os valores das outras duas grandezas para calcular a terceira usando a relação fornecida. Informações relevantes que o enunciado deu:
- A relação física é
. -
é a Tensão (em V). -
é a Resistência (em ). -
é a Corrente (em A). - Quando o eletricista escolher, por exemplo, Resistência, o programa deve pedir Tensão e Corrente e então calcular a Resistência. O mesmo vale para as demais escolhas.
Passo 2
Vamos entender a fórmula e o que cada símbolo significa (mini-aula rápida e prática).
- A fórmula dada é
. -
é a diferença de potencial elétrico entre dois pontos, medida em volts (V). -
é a oposição ao fluxo de corrente, medida em ohms ( ). -
é a intensidade de corrente que passa pelo circuito, medida em ampères (A).
-
- A interpretação prática: se você aplica uma tensão
em um resistor , passa por ele uma corrente . A relação é direta para circuitos resistivos lineares.
Passo 3
Como isolar cada variável (aqui faço álgebra passo a passo para você poder repetir na prova):
- Para calcular
quando conhecemos e : a fórmula já nos dá . Então
- Para calcular
quando conhecemos e : dividimos ambos os lados por (desde que ):
Explicação da operação: dividimos por
para “desfazer” a multiplicação por
. Lembre-se sempre de verificar se
é zero, porque divisão por zero não existe.
- Para calcular
quando conhecemos e : dividimos ambos os lados por (desde que ):
Mesma ideia: só pode fazer se
.
Passo 4
Escolha do método de implementação (por que esse método?)
- Vamos usar um programa de console interativo (ex.: Python) porque é simples, direto e suficiente para eletricistas que vão rodar no computador ou tablet.
- O programa terá essas etapas lógicas:
- Mostrar menu com as 3 opções.
- Ler a opção do usuário.
- Pedir os dois valores conhecidos (com validação).
- Calcular a grandeza pedida usando as fórmulas do Passo 3.
- Mostrar o resultado com unidade e formato legível.
- Optei por python por ser claro e direto — se preferir outra linguagem dá pra adaptar facilmente.
Passo 5
Validação de entradas (a parte que costuma pegar gente na prova):
- Sempre tente converter a entrada para número (usaremos ponto ou vírgula conforme sua preferência, mas no programa vamos aceitar o padrão do Python que usa ponto decimal).
- Se a conversão falhar, peça de novo — isto evita erros na hora da execução.
- Verifique divisores antes da divisão:
- Para calcular
, certifique-se que . Se , informe que a resistência é indefinida/infinita no contexto (ou que não é possível calcular). - Para calcular
, certifique-se que .
- Para calcular
- Permitir números negativos: tensão ou corrente podem ser negativas dependendo do referencial; resistência negativa normalmente não faz sentido em resistor passivo, mas o programa pode aceitar numericamente (ou você pode validar para
se preferir).
Passo 6
Detalhamento do fluxo de telas e mensagens (o que o eletricista verá e o que deve digitar)
- Mostrar:
CÁLCULO DE GRANDEZAS ELÉTRICAS- Tensão (em Volt)
- Resistência (em Ohm)
- Corrente (em Ampére)
Qual grandeza deseja calcular?
- Se escolher 1 (Tensão): pedir
(em ) e (em A) e calcular . - Se escolher 2 (Resistência): pedir
(em V) e (em A) e calcular (verificar ). - Se escolher 3 (Corrente): pedir
(em V) e (em ) e calcular (verificar ). - Mostrar resultado com 3 casas decimais (ou ajuste que preferir) e unidade apropriada.
Passo 7
Exemplos numéricos passo a passo (pra você ver a conta “mastigada” e poder repetir)
- Exemplo 1: calcular
sabendo e . Passo a passo: multiplicar 10 por 0,5 = 5. - Exemplo 2: calcular
sabendo e . Passo a passo: dividir 12 por 2 = 6. - Exemplo 3: calcular
sabendo e . Passo a passo: dividir 230 por 115 = 2.
Passo 8
Casos especiais e mensagens ao usuário
- Se o eletricista informar corrente
e você tentar calcular , informe gentilmente que não é possível dividir por zero e que, fisicamente, se a resistência poderia ser muito alta ou o circuito aberto — peça para verificar medições. - Se o eletricista digitar texto em vez de número, peça para digitar novamente.
- Dica prática: exiba as unidades junto aos prompts para evitar confusão (ex.: “Informe a corrente em A:”).
Passo 9
Boas práticas de implementação e testes rápidos
- Teste o programa com os exemplos do Passo 7.
- Garanta mensagens claras de erro (por exemplo: “Entrada inválida — digite um número”).
- Mostre o resultado com unidade e arredondamento (ex.: 3 casas decimais).
- Comentários no código ajudam na manutenção e também te dão argumentos na prova para explicar a lógica.
Passo 10
Aqui está um programa simples em Python que implementa tudo o que explicamos. Você pode copiar e executar num interpretador Python (versão 3.x). Ele trata validação de entrada e casos de divisão por zero.
Resposta
def ler_float(prompt):
while True:
s = input(prompt).strip()
try:
# substitui vírgula por ponto para conveniência
s = s.replace(',', '.')
return float(s)
except ValueError:
print("Entrada inválida. Digite um número (ex.: 12.5).")
def calcular_tensao(R, i):
return R * i
def calcular_resistencia(U, i):
if i == 0:
return None
return U / i
def calcular_corrente(U, R):
if R == 0:
return None
return U / R
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":
R = ler_float("Informe a resistência R (em Ω): ")
i = ler_float("Informe a corrente i (em A): ")
U = calcular_tensao(R, i)
print(f"Resultado: U = {U:.3f} V")
elif escolha == "2":
U = ler_float("Informe a tensão U (em V): ")
i = ler_float("Informe a corrente i (em A): ")
R = calcular_resistencia(U, i)
if R is None:
print("Não é possível calcular R: corrente i = 0 (divisão por zero). Verifique a medição.")
else:
print(f"Resultado: R = {R:.3f} Ω")
elif escolha == "3":
U = ler_float("Informe a tensão U (em V): ")
R = ler_float("Informe a resistência R (em Ω): ")
i = calcular_corrente(U, R)
if i is None:
print("Não é possível calcular i: resistência R = 0 (divisão por zero). Verifique a medição.")
else:
print(f"Resultado: i = {i:.3f} A")
else:
print("Opção inválida. Execute o programa novamente e escolha 1, 2 ou 3.")
if __name__ == "__main__":
main()