Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
1) Sabe-se que o quilowatt de energia custa 0,05% do valor do salário mínimo (R$ 1000) e o consumo (kW) dessa residência ao longo do ano foi:
Janeiro 150
Fevereiro 52
Março 45
Abril 28
Maio 65
Junho 87
Julho 12
Agosto 100
Setembro 120
Outubro 45
Novembro 67
Dezembro 230
Sabe-se, que se o valor consumido for maior que 60 kW, deve ser aplicada uma taxa extra (bandeira amarela) igual a 2% do valor da conta, e se for maior que 100 kW, deve ser aplicada mais uma taxa (bandeira vermelha) igual a 5% do valor da conta (antes da bandeira amarela). Essas taxas devem ser somadas ao valor total da conta. Faça um programa que calcule e mostre a. o valor a ser pago por essa residência a cada mês; b. Se no mês de dezembro o consumo médio foi menor que 85 quilowatts, então deve ser dado um desconto de natal de 50% nesse mês;
Bom dia ! na verdade é tudo em um só programa .Já tentei e nada.
Bom dia @taina2007 eu estava estudando class e tals, esse seu exercicio caiu como uma luva para mim bota em pratica oque eu estou aprendendo.
Só fiquei em duvida em 2 casos, se passa-se 100 kws eu aplicaria as duas bandeiras no caso 2%, 5% ou só a de 5% considerei só a 5%;
A outra ficaria em questão do desconto de natal já se ele ultrapasse as bandeiras 60 ou 100 kws eu aplicaria ou não as bandeiras respectivamente 2%, 5% é depois daria o desconto de 50%, considerei que aplicaria a bandeira e depois daria o desconto.
Não sei se interpretei certo mas fica aí minhas ressalvas.
Primeiro criei a a página **kws.php** e fiz o seguinte código:
<?php
/**
* Kws
*/
class KW
{
private $mes;
private $valor;
private $allmeses;
function __construct($mes, $kw)
{
$this->setMes($mes);
$this->setValorKW($kw);
}
public function apresentar(){
echo "<p>Mês: ".$this->getMes().'</p>';
echo "<p>Valor(KW): ".$this->getValorKW().'</p>';
}
public function getMes(){
return $this->mes;
}
public function setMes($m){
$this->mes = $m;
}
public function getValorKW(){
return $this->valor;
}
public function setValorKW($kw){
$this->valor = $kw;
}
public function getAllMeses(){
return $this->allmeses;
}
public function setAllMeses($n){
$this->allmeses = $n;
}
public function calcular(){
$porcent = 0.05; // Porcentagem do KW do salário;
$totalp = 100; // total porcentagem;
$total = $porcent / $totalp; // Divide a porcentagens
$valor = 1000; // Valor do salario;
$resultKW = $valor * $total; // Multiplica o valor do salário pela porcentagem total.
if($this->getValorKW() > 60 && $this->getValorKW() < 100){ // verifica se o valor do Kw e maior que 60 e menor que 100;
if($this->getAllMeses() < 85 && $this->getMes() == 'Dezembro'){ // Verifica se a media anual consumida e menor que 85 e se o mês em questão e dezembro, se for dezembro ele calcula as bandeira e aplica o 50% de desconto só em dezembro;
$kwh = $resultKW * $this->getValorKW(); // Calcula o valor total em $ do KW.
$totalJuros = $kwh + (0.02 * $kwh); // Aplica a taxa 2% ;
$totalJuros2 = $totalJuros - (0.5 * $totalJuros); // Subtrai 50% de desconto em dezembro;
echo "<p>Valor sem juros: ".$kwh."</p>"; // Valro sem juros
echo "<p style='background:#b3e5fc; padding:5px;'>Aumento de 2%(Bandeira Amarela) + 50% de desconto por sua média de energia anual ser: ".$this->allmeses." não ultrapassando o limite!</p>"; // Mensagem
echo '<p>Valor total a pagar: '.$totalJuros2.'</p>'; // Valor total a pagar.
}else{// Se não e dezembro ele calcula somente com a bandeira necessaria e da o valor;
$kwh = $resultKW * $this->getValorKW();
$totalJuros = $kwh + (0.02 * $kwh);
echo "<p>Valor sem juros: ".$kwh."</p>";
echo "<p style='background:#ffeb3b; padding:3px;'>Aumento de 2%(Bandeira Amarela)</p>";
echo '<p>Valor total a pagar: '.$totalJuros.'</p>';
}
}elseif($this->getValorKW() >= 100){ // verifica se o valor de KW e maior ou igual a 100;
if($this->getAllMeses() < 85 && $this->getMes() == 'Dezembro'){// Verifica se a media anual consumida e menor que 85 e se o mês em questão e dezembro, se for dezembro ele calcula as bandeira e aplica o 50% de desconto só em dezembro;
$kwh = $resultKW * $this->getValorKW();// Calcula o valor total em $ do KW
$totalJuros = $kwh + (0.05 * $kwh); // Aplica a taxa de 5%;
$totalJuros2 = $totalJuros - (0.5 * $totalJuros); // Subtrai 50% de desconto em dezembro;
echo "<p>Valor sem juros: ".$kwh."</p>";
echo "<p style='background:#b3e5fc; padding:5px;'>Aumento de 5%(Bandeira Vermelha) + 50% de desconto por sua média de energia anual ser: ".$this->allmeses." não ultrapassando o limite!</p>";
echo '<p>Valor total a pagar: '.$totalJuros2.'</p>';
}else{ // Se não e dezembro ele não o desconto de 50%;
$kwh = $resultKW * $this->getValorKW();
$totalJuros = $kwh + (0.05 * $kwh);
echo "<p>Valor sem juros: ".$kwh."</p>";
echo "<p style='background:#f40000; padding:3px;'>Aumento de 5%(Bandeira Vermelha)</p>";
echo '<p>Valor total a pagar: '.$totalJuros.'</p>';
}
}elseif($this->getValorKW() <= 60 ){ // Verifica se p Kw menor ou igual a 60, nesse caso não há taxas extras de bandeiras;
if($this->getAllMeses() < 85 && $this->getMes() == 'Dezembro'){ // Verifica se a media anual consumida e menor que 85 e se o mês em questão e dezembro, se for dezembro ele calcula as bandeira e aplica o 50% de desconto só em dezembro;
$kwh = $resultKW * $this->getValorKW();
$totalJuros2 = $kwh - (0.5 * $kwh);
echo "<p style='background:#b3e5fc; padding:5px;'>50% de desconto por sua média de energia anual ser: ".$this->allmeses." não ultrapassando o limite!</p>";
echo '<p>Valor total a pagar: '.$totalJuros2.'</p>';
}else{ // Se não e dezembro ele não aplica a taxa de desconto no valor total.
$kwh = $resultKW * $this->getValorKW(); // Calcula o valor sem taxas;
echo '<p>Valor total a pagar: '.$kwh.'</p>'; // Mostra na tela o valor total a pagar;
}
}
}
}
?>
E na **index.php** eu fiz o seguinte código:
<style type="text/css">
body{
padding: 0;
margin:0;
}
</style>
<div style="text-align: center; background: #e9ebee; color:#1d2129; padding-top: 20px;">
<?php
require_once 'kws.php'; // Arquivo necessario para instanciar a class.
$array = array('Janeiro' => '150', 'Fevereiro' => '52', 'Março' => '45', 'Abril' => '28', 'Maio' => '65', 'Junho' => '87', 'Julho' => '12', 'Agosto' => '100', 'Setembro' => '120', 'Outubro' => '45', 'Novembro' => '67', 'Dezembro' => '230'); // Arrays dos meses e seus KW's
$somar = array_sum($array); // Soma valores do array
$conta_meses = count($array); // Conta elementos o array tem;
$consumo_medio = $somar/$conta_meses; // Divide o valor total de Kw's pelo valor de meses;
foreach ($array as $key => $item) { // Faz o foreach do array para separar os numeros do texto;
echo '<div style="border: 1px solid; border-color: #e5e6e9 #dfe0e4 #d0d1d5; border-radius: 30px; background-color: #fff; font-family: Tahoma; width:550px; margin:0 auto;">';
$mes = new KW( "$key", $array[$key]); // Instancia a class e passar o Nome do mês é o valor em KW's
if($key == 'Dezembro'){ // Verifica se o mês e dezembro.
$mes->setAllMeses($consumo_medio); // Se o mês for dezembro ele passa o valor do consumo médio anul.
}
$mes->apresentar(); // Apresenta o mês e seus Kw's.
$mes->calcular(); // Calcula quanto vai pagar;
echo "</div>";
echo '<br>'; // Quebra de linha;
}
?>
</div>
Fica ai um de vários métodos que possa se fazer essa questão, que sirva de exemplo para você criar o seu próprio, já que copiando e colando você não irá aprender que é o mais importante.
*[]'s*Blz.
Você não sabe por onde começar? Já fez algo?
No caso da questão 1 eu fária:
$porcent = 0.05; // Porcentagem do valor do KW do salário.
$totalp = 100; // Porcentagem total
$total = $porcent / $totalp; // Dividiaria as porcentagens
$valor = 1000; // Valor do salário.