Aula 15 do curso básico de algoritmo em C
Código 07 – Requisitos
Para esse código, vamos imaginar o seguinte contexto: Um posto de gasolina precisa analisar o movimento de vendas de combustíveis.
Inicialmente o programa deverá obter o preço do litro do álcool, da gasolina comum e da gasolina aditivada.
Em seguida deverá obter as seguintes informações: a quantidade de litros vendidos de álcool, a quantidade de litros vendidos de gasolina comum e a quantidade de litros vendidos de gasolina aditivada.
O programa deverá calcular e imprimir o valor recebido pelo posto, o percentual vendido de cada produto e o lucro (em reais) obtidos pelo posto, levando-se em conta que a margem de lucro de cada produto é:
Álcool – 10% do valor
Gasolina comum – 15% do valor
Gasolina aditivada – 20% do valor
Obs: Usaremos a biblioteca (library) locale.h nesse código, ela nos permitirá escrever as mensagens no console usando o printf ( ), sem que tenhamos que nos preocupar com determinados caracteres típicos de alguns idiomas e seus valores equivalentes em octal, como por exemplo: Ç, ç, Á, á etc.
Já vimos um pouco disso nos códigos anteriores, agora vamos usar a biblioteca locale.h para resolver isso de uma forma mais prática.
Código 07
#include <stdio.h>/*Instrução de pré-processamento, habilita nosso programa a usar essa biblioteca de entradas e saídas, possui funções como scanf e printf*/ #include <stdlib.h>/*Instrução de pré-processamento, habilita nosso programa a usar essa biblioteca, para poder usar o system("PAUSE"); */ #include <locale.h>/*Instrução de pré-processamento, habilita nosso programa a usar essa biblioteca, para usar caracteres como: ç, Ç, Â ,â etc. No printf( )*/ //Calcula o valor multiplicando o preço pela quantidade e retorna o valor calculado float calcValor (float preco, float qtd) { return preco*qtd; } /*Calcula o lucro multiplicando a quantidade do produto pelo preço do produto e pelo percentual de lucro de cada produto, a divisão por cem é por causa da porcetagem referente a margem de lucro de cada produto*/ float calcLucro (float qtd, float pr, float perc) { return (qtd*pr*perc)/100; } //Calcula o percentual vendido de cada produto (Álcool, Gasolina comum, Gasolina Aditivada) float calcPercentual (float qtdProd, float qtd1, float qtd2) { //o número 100 na conta é porque a resposta está em porcentagem return 100 * qtdProd / (qtdProd + qtd1 + qtd2); } //Ponto inicial do código int main (void) { //Declaração das variáveis float prAlc, prGas, prAdit, qtdAlc, qtdGas, qtdAdit, valRec, percAlc, percGas, percAdit, lucro; /*Ativa a configuração da biblioteca locale.h para português*/ setlocale(LC_ALL, "Portuguese"); //Ativa a configuração da biblioteca locale.h para português //Interações com o usuário printf ("Digite o preço do álcool: "); scanf ("%f", &prAlc); fflush(stdin); printf ("\nDigite o preço da gasolina: "); scanf ("%f", &prGas); fflush(stdin); printf ("\nDigite o preço da gasolina aditivada: "); scanf ("%f", &prAdit); fflush(stdin); printf ("\nDigite a quantidade vendida do álcool: "); scanf ("%f", &qtdAlc); fflush(stdin); printf ("\nDigite a quantidade vendida da gasolina comum: "); scanf ("%f", &qtdGas); fflush(stdin); printf ("\nDigite a quantidade vendida da gasolina aditivada: "); scanf ("%f", &qtdAdit); fflush(stdin); //calcula o valor recebido de cada produto, soma e armazena em valRec valRec = calcValor(prAlc, qtdAlc) + calcValor(prGas, qtdGas) + calcValor(prAdit, qtdAdit); /*Chamadas da função calcPercentual ( ) para calcular o percentual vendido de cada produto*/ percAlc = calcPercentual(qtdAlc, qtdGas, qtdAdit); //qtdGas e qtdAdit serão qtd1 e qtd2 em calcPercentual percGas = calcPercentual(qtdGas, qtdAlc, qtdAdit); //qtdAlc e qtdAdit serão qtd1 e qtd2 em calcPercentual percAdit = calcPercentual(qtdAdit, qtdAlc, qtdGas); //qtdAlc e qtdGas serão qtd1 e qtd2 em calcPercentual //calcula o lucro de cada produto, soma e armazena o resultado em lucro lucro = calcLucro(qtdAlc, prAlc, 10) + calcLucro(qtdGas, prGas, 15) + calcLucro(qtdAdit, prAdit, 20);//Calcula o lucro e armazena em lucro //Imprime a mensagem final com as informações processadas no console printf("\n\nO valor arrecadado pelo posto foi de: R$ %.2f\n\nO percentual vendido de álcool foi de: %.2f \%% \n" "\nO percentual vendido de gasolina comum foi de: %.2f \%% \n" "\nO percentual vendido de gasolina aditivada foi de: %.2f \%% \n\nO lucro do posto foi de: R$ %.2f\n\n\n\n", valRec, percAlc, percGas, percAdit, lucro); system("PAUSE"); return 0; }