02. FELADAT · FORRÁSKÓD
Villanyszámla
Program.csAnimáció megnyitása →
namespace Feladat02_Villanyszamla
{
internal class Program
{
static void Main(string[] args)
{
const double ALAPDIJ = 2500.0; // havi rendelkezésre állási díj, Ft
const double AR1 = 36.0; // 0 - 100 kWh közötti rész egységára
const double AR2 = 45.0; // 100 - 250 kWh közötti rész egységára
const double AR3 = 70.0; // 250 kWh felett
const double AFA_KULCS = 0.27;
Console.WriteLine("=== Villanyszámla ===");
Console.Write("A havi fogyasztás (kWh): ");
double fogyasztas = double.Parse(Console.ReadLine());
if (fogyasztas < 0)
{
Console.WriteLine("A fogyasztás nem lehet negatív.");
}
else
{
double energiadij = Energiadij(fogyasztas, AR1, AR2, AR3);
double netto = ALAPDIJ + energiadij;
double afa = netto * AFA_KULCS;
double brutto = netto + afa;
Console.WriteLine();
Console.WriteLine($"Fogyasztói kategória: {Kategoria(fogyasztas)}");
Console.WriteLine($"Energiadíj: {energiadij:F2} Ft");
Console.WriteLine($"Rendelkezésre állási díj: {ALAPDIJ:F2} Ft");
Console.WriteLine($"Nettó összeg: {netto:F2} Ft");
Console.WriteLine($"ÁFA (27%): {afa:F2} Ft");
Console.WriteLine($"Fizetendő: {brutto:F2} Ft");
if (fogyasztas > 0)
{
// Valós osztás: a brutto double, ezért nem történik egész osztás.
double atlagar = brutto / fogyasztas;
Console.WriteLine($"Egy kWh átlagos bruttó ára: {atlagar:F2} Ft");
}
else
{
Console.WriteLine("Nulla fogyasztás esetén nincs értelmezhető átlagár.");
}
}
}
// Sávos (progresszív) energiadíj: minden sávban csak az oda eső rész számít a sáv árával.
static double Energiadij(double fogyasztas, double ar1, double ar2, double ar3)
{
double dij;
if (fogyasztas <= 100)
{
dij = fogyasztas * ar1;
}
else if (fogyasztas <= 250)
{
dij = 100 * ar1 + (fogyasztas - 100) * ar2;
}
else
{
dij = 100 * ar1 + 150 * ar2 + (fogyasztas - 250) * ar3;
}
return dij;
}
static string Kategoria(double fogyasztas)
{
string nev;
if (fogyasztas <= 100)
{
nev = "takarékos";
}
else if (fogyasztas <= 250)
{
nev = "átlagos";
}
else
{
nev = "nagyfogyasztó";
}
return nev;
}
}
}