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: