Linguagem C - Problema Resolvido 1: Calculadora de Tarifa de Energia
Introdução
Nos tópicos anteriores aprendemos sobre como programar uma estrutura condicional simples com a estrutura if(condição){comandos}. Esse comando permite que instruções entre as chaves sejam executadas somente se uma condição for verdadeira. Neste tópico vamos aprofundar um pouco mais o conhecimento sobre essa estrutura e seus usos.
Problema Resolvido: Desenvolver uma calculadora de tarifa de energia para equipamentos
Você foi contratado para fazer um programa que leia a quantidade de Watts de potência de um equipamento, a sua quantidade de horas de funcionamento diário e calcule a quantidade de Kilowatts/hora (kwh) e o valor em R$ que será pago ao final do mês. Considere a tarifa básica por Kwh cobrado de R$ 0,809360. Além disso, o programa deve considerar a bandeira tarifária em vigência, obedecendo às seguintes regras:
-
Bandeira verde: nenhum acréscimo por Kwh;
-
Bandeira amarela: a tarifa sofre acréscimo de R$ 0,01874 para cada kwh;
-
Bandeira Vermelha 1: a tarifa sofre acréscimo de R$ 0,03971 para cada kwh consumido;
-
Bandeira Vermelha 2: a tarifa sofre acréscimo de R$ 0,09492 para cada kwh consumido.
Resolução
Vamos imaginar como esse programa deve funcionar. Veja os quadrinhos abaixo:
No diálogo acima, o programa solicita a potência de um equipamento em Watts.O usuário digita a potência. Em seguida, o programa solicita a quantidade de horas por dia que o equipamento funciona e aguarda o usuário digitar. Após isso, o programa apresenta as bandeiras tarifárias, que são definidas pelos níveis dos reservatórios e quantidade de chuvas. Após ter lido todas essas informações, o programa faz o cálculo da quantidade de Killowatts hora (Kwh) e do valor a ser pago de acordo com a tarifa básica e a bandeira selecionada. Agora, vamos desenvolver o código do programa.
Etapa 1: Montando o “Esqueleto” do Programa
Vamos colocar a mão na massa! Crie um novo programa C no Repl.it (se não tiver acesso, você pode fazer no papel também) e siga os passos abaixo
Passo 1 - Inserindo a biblioteca padrão stdio.h
Como vimos nos tópicos anteriores, todo programa C possui a declaração da biblioteca padrão de entrada e saída stdio.h, que contém as funções scanf() e printf() que usaremos a seguir. Insira o código abaixo:
#include <stdio.h>
Passo 2 - Insira a função principal int main(void)
int main(void) {
return 0;
}
Etapa 2: Declarando as Variáveis
Como vimos no tópico anterior, todo programa opera sobre dados informados e armazenados em memória. Nesse caso, temos vários dados que precisamos armazenar. Como entrada de dados, temos:
-
a quantidade de watts de potência do equipamento;
-
a quantidade de horas de funcionamento do equipamento por dia;
-
a bandeira que será informada pelo usuário, sendo 1 para Verde, 2 para Amarela, 3 para Vermelha 1 e 4 para Vermelha 2.
Também precisamos declarar variáveis que armazenarão os valores calculados de killowatts/hora (kwh) e o valor a ser pago em R$.
Declare as variáveis abaixo da declaração da função int main():
As “//” definem comentários de código, ou seja, textos que serão ignorados pelo compilador e que servem para explicar partes do programa.
Etapa 3: Programando a Entrada de Dados
Vamos programar as entradas de dados utilizando os comandos printf() para exibir as mensagens de solicitação no console. Além disso, vamos utilizar comandos scanf() que realizarão a leitura do valor digitado e o armazenamento nas variáveis especificadas.
3.1. Mensagem e leitura da potência do equipamento:
Repare que o caractere de controle no scanf é o %f, que indica a leitura de um valor tipo float
3.2. Mensagem e leitura da quantidade de horas de funcionamento por dia
3.3 Mensagem e leitura da bandeira em vigência
Repare que utilizamos vários comandos printf() com um “\n” no início para imprimir em uma nova linha no console. Desse modo, cada bandeira é escrita em uma linha diferente no console. Ao final, fazemos a leitura da bandeira com o scanf() e o caractere %d, que indica a leitura de um valor inteiro.
Neste ponto, o programa possui todos os valores necessários ao cálculo do valor a ser pago para o equipamento: a quantidade de watts de potência, a quantidade de horas de funcionamento e a bandeira praticada. Vamos agora realizar os cálculos da quantidade de kilowatts/hora que o equipamento consome e fazer o cálculo do valor em R$ de acordo com a bandeira selecionada.
Etapa 4: Calculando a Quantidade de Killowatts/hora (kwh) do equipamento
4.1. Calcule a quantidade de kwh consumida ao longo de 1 mês com a fórmula abaixo:
Essa fórmula transforma o valor da variável watts em killowatts dividindo por 1000. Em seguida, multiplica o valor da variável horas por 30 para obtermos a quantidade de horas ao longo de 30 dias (1 mês). Por último, a quantidade de horas no mês é multiplicada pelo valor em killowatts.
4.2. Agora, imprima o valor na tela do console com duas casas decimais:
Etapa 5: Calculando o Valor em R$ de acordo com a Bandeira Selecionada
Como informado no enunciado, a tarifa básica praticada no Estado do Rio é de R$ 0,809360 por kwh. Sendo que, um valor deve ser somado à tarifa básica de acordo com a bandeira que o usuário selecionou. A bandeira (de 1 a 4) está armazenada na variável inteira bandeira. Vamos adicionar uma condicional if para cada bandeira de acordo com as regras abaixo:
-
Bandeira verde (opção 1): nenhum acréscimo por Kwh
-
Bandeira Amarela (opção 2): somar R$ 0,01874;
-
Bandeira Vermelha 1 (opção 3): somar R$ 0,0397;
-
Bandeira Vermelha 2 (opção 4): somar R$ 0,09492.
5.1 Bandeira Verde (Opção 1)
No código acima, o operador “==” é o operador de comparação por igualdade. Desse modo, a condição do if somente é verdadeira se o valor digitado pelo usuário e armazenado na variável bandeira for igual ao número inteiro 1.
Repare que se o usuário selecionou a bandeira verde (opção 1), nenhum valor é acrescentado e basta multiplicar a quantidade de kwh pela tarifa básica praticada no estado do RJ.
5.2. Bandeira Amarela (Opção 2)
Se a bandeira informada foi a amarela (opção 2), então devemos somar R$ 0,01874 à tarifa básica
5.3 Bandeira Vermelha 1 (Opção 3)
Se a bandeira é a vermelha 1, adicionamos o valor R$ 0,03971 à tarifa básica por kwh
5.4. Bandeira Vermelha 2 (Opção 4)
Nesse caso, se o usuário informou o valor 4 para a variável bandeira, devemos acrescentar R$ 0,09492 à tarifa básica.
Desse modo, dependendo do valor digitado para a bandeira 1, 2, 3 ou 4, uma das estruturas condicionais será ativada e o acréscimo correspondente será somado à tarifa básica. O valor em R$ será armazenado na variável valor.
5.5. Para finalizar nosso programa, vamos imprimir o valor calculado na tela.
Teste o seu programa executando várias vezes, selecionando bandeiras diferentes e conferindo se o acréscimo correto é somado à tarifa básica.
Empacotando
Nesta etapa aprendemos a utilizar múltiplas estruturas condicionais if(condição){comandos…} para selecionar uma fórmula diferente dependendo de uma opção digitada pelo usuário. Desse modo, utilizamos uma estrutura condicional para cada opção a fim de somarmos o valor correto correspondente a cada bandeira. Inicialmente, apresentamos o menu de opções de bandeiras para o usuário e, em seguida, adicionamos um if para cada opção. Veja a estrutura geral do comando if abaixo: