A task: write a program to calculate the cost of electricity on the testimony of two-tariff electricity meter. There is a two-tariff electricity meter. Readings are taken at the end of the month. Data for calculating – the difference between the readings of the previous month and the current (day and night tariff.) Initial data:
- daily rate (with 7-00 am to 23-00);
- night charge (with 23-00 to 7-00 morning );
- The first tariff zone – to 100 kWh time: 0.456 UAH
- The second tariff zone – from 100 to 600 kWh time: 0.789 UAH
- A third tariff zone – over 600 kWh time: 1.479 UAH
- night charge – 50% of the value of each daily tariff zone
Decision:
C++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 | #include <iostream> using namespace std; int main() { setlocale(LC_ALL, "rus"); cout << "Расчет стоимости электроэнергии двухтарифного электросчетчика" << endl; cout << "\t\t\t1.09.2015 " << endl; cout << "_____________________________________________________________" << endl; cout << " Ночной тариф 50% от стоимости каждой дневной тарифной зоны" << endl; cout << "\t________Стоимость по тарифным зонам_______ " << endl; cout << "" << endl; cout << "\t\tДо 100 кВт*час - 0.456 грн " << endl; cout << "" << endl; cout << "" << endl; cout << "\t\tОт 100-600 кВт*час - 0.789 грн " << endl; cout << "" << endl; cout << "" << endl; cout << "\t\tCвыше 600 кВт*час - 1.479 грн " << endl; cout << "____________________________________________________________ " << endl; char l; // переменная для продолжения или прекращения расчета int td1; // предыдущие показания День int td2; // настоящие показания День int qd; // разница показаний электросчетчика День int tn1; // предыдущие показания Ночь int tn2; // настоящие показания Ночь int qn; // разница показаний электросчетчика Ночь float q; // Суммарные показания День + Ночь float sd1; // Сумма до 100 кв День float sn1; // Сумма до 100 кв Ночь float sdn1; // Сумма до 100 кв День + Ночь float sd2; // Сумма от 100 до 600 кв День float sn2; // Сумма от 100 до 600 кв Ночь float sdn2; // Сумма от 100 до 600 кв День + Ночь float sd3; // Сумма более 600 кв День float sn3; // Сумма более 600 кв Ночь float sdn3; // Сумма более 600 кв День + Ночь float so; // сумма по всем тарифам float d = 0.456; // тариф до 100 кв float f = 0.789; // тариф от 100 до 600 кв float h = 1.479; // тариф от 600 кв do { cout << "Введите (День) предыдущие показания электросчетчика: "; cin >> td1; cout << "Введите (День) настоящие показания электросчетчика: "; cin >> td2; cout << "__________________________________________ " << endl; if (td2 == 0 || td2 <= td1) // Условие на проверку правильности ввода снятых показаний День { cout << "Проверьте показания электросчетчика !!!!" << endl; cout << "__________________________________________ " << endl; return 0; } cout << "__________________________________________ " << endl; cout << "Введите (Ночь) предыдущие показания электросчетчика: "; cin >> tn1; cout << "Введите (Ночь) настоящие показания электросчетчика: "; cin >> tn2; cout << "__________________________________________ " << endl; if (tn2 == 0 || tn2 <= tn1) // Условие на проверку правильности ввода снятых показаний Ночь { cout << "Проверьте показания электросчетчика !!!! " << endl; cout << "__________________________________________ " << endl; return 0; } qd = td2 - td1;// разница показаний электросчетчика День cout << "Всего День кВт*час : " << qd << endl; qn = tn2 - tn1;// разница показаний электросчетчика Ночь cout << "Всего Ночь кВт*час : " << qn << endl; q = qd + qn; cout << "Суммарные показания (День + Ночь ) кВт*час: " << q << endl; cout << "__________________________________________ " << endl; if (q > 600 && q != 600) // Тариф 3 { sd3 = (qd / q) * (q - 600) * h; // Сумма до 100 Кв День sn3 = (qn / q) * (q - 600) * (h / 2); // Сумма до 100 Кв Ночь sdn3 = sd3 + sn3; // Сумма до 100 кв День + Ночь cout << "Всего к оплате День + Ночь свыше 600 кВт*час (грн) : " << sdn3 << endl; cout << " " << endl; sd2 = (qd / q) * 500 * f; sn2 = (qn / q) * 500 * (f / 2); sdn2 = sd2 + sn2; cout << "Всего к оплате День + Ночь от 100 до 600 кВт*час (грн) : " << sdn2 << endl; cout << " " << endl; sd1 = (qd / q) * 100 * d; sn1 = (qn / q) * 100 * (d / 2); sdn1 = sd1 + sn1; cout << "Всего к оплате День + Ночь до 100 кВт*час (грн) : " << sdn1 << endl; cout << " " << endl; so = sdn3 + sdn2 + sdn1; cout << "__________________________________________ " << endl; cout << "Всего к оплате по всем тарифам !!! (грн) : " << so << endl; } if (q>100 && q <= 600) // Тариф 2 { sd2 = (qd / q) * (q - 100)*f; sn2 = (qn / q) * (q - 100)*(f / 2); sdn2 = sd2 + sn2; cout << "Всего к оплате День + Ночь от 100 до 600 кВт*час (грн) : " << sdn2 << endl; sd1 = (qd / q) * 100 * d; sn1 = (qn / q) * 100 * (d / 2); sdn1 = sd1 + sn1; cout << "Всего к оплате День + Ночь до 100 кВт*час (грн) : " << sdn1 << endl; so = sdn2 + sdn1; cout << "__________________________________________ " << endl; cout << "Всего к оплате по всем тарифам !!! (грн) : " << so << endl; } if (q <= 100 && q != 0) // Тариф 1 { sd1 = qd*d; sn1 = (qn*(d / 2)); sdn1 = sd1 + sn1; cout << "Всего к оплате День + Ночь до 100 кВт*час (грн.) : " << sdn1 << endl; so = sdn1; cout << "__________________________________________ " << endl; cout << "Всего к оплате по всем тарифам !!! (грн) : " << so << endl; } cout << "__________________________________________" << endl; cout << "Продолжить расчет дальше (y/n)? "; cin >> l; } while (l == 'y'); } |
The work program:
5.0
10
good afternoon. I want to show you my version of the solution. I think, it is somewhat easier, proposed above.
#include
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");
int lastmonthday(0), lastmonthnight(0), monthday(0), monthnight(0), day(0), night(0);
double money(0);
do
{
cout < < lastmonthday; cout << monthday; cout << lastmonthnight; cout << monthnight; day = 0; night = 0; if (monthday > lastmonthday) day = monthday - lastmonthday;
else cout < < " Неверные дневные показания!!! Текущие меньше конечных!!!"; if (monthday < lastmonthnight) night = monthnight - lastmonthnight; else cout << " Неверные ночные показания!!! Текущие меньше конечных!!!" << endl; } while ((day == 0) || (night == 0)); cout << "______________________________________" << endl; cout << " Всего день кВт*ч = " << day << endl; cout << " Всего ночь кВт*ч = " << night << endl; cout << "______________________________________" << endl; cout << " дневной тариф до 100 кВт*ч 0.456 грн " <= 100) { money = 100 * 0.456; cout << " сумма за сто дневных кВт*ч = " << 100 * 0.456 << endl; } else { money = day*0.456; cout << " сумма за " << day << " дневных кВт*ч = " << day*0.456 <= 600) { cout << " дневной тариф от 100 до 600 кВт*ч 0.789 грн " << endl; money += ((500 * 0.789) + (day - 600)*1.479); cout << " сумма за 500 дневных кВт*ч = " << 500 * 0.789 <100)&(day<600)) { cout << " дневной тариф от 100 до 600 кВт*ч 0.789 грн " << endl; cout << " сумма за " << day - 100 << " дневных кВт*ч = " << (day - 100)*0.789 <600) { cout << " дневной тариф от 600 кВт*ч 1.479 грн " << endl; cout << " сумма за " << day - 600 << " кВт*ч превышения составила " << (day - 600)*1.479 << endl; } cout << "_____________________________________________" << endl; cout << " ночной тариф до 100 кВт*ч " << 0.456 / 2 << " грн " <= 100) { money += 100 * (0.456 / 2); cout << " сумма за сто ночных кВт*ч = " << 100 * (0.456 / 2) << endl; } else { money += night*0.456 / 2; cout << " сумма за " << night << " ночных кВт*ч = " << night*0.456 / 2 <= 600) { cout << " ночной тариф от 100 до 600 кВт*ч " << 0.789 / 2 << " грн " << endl; money += ((500 * 0.789 / 2) + (night - 600)*1.479 / 2); cout << " сумма за 500 ночных кВт*ч = " << 500 * 0.789 / 2 <100)&(night<600)) { cout << " ночной тариф от 100 до 600 кВт*ч 0.789 грн " << endl; cout << " сумма за " << night - 100 << " ночных кВт*ч = " << (night - 100)*0.789 / 2 <600) { cout << " ночной тариф от 600 кВт*ч 1.479 грн " << endl; cout << " сумма превышение за " << (night - 600) << " ночныхх кВт*ч = " << (night - 600)*1.479 / 2 << endl; } cout << "_________________________________________________" << endl; cout << "Общая сумма к выплате = " << money << " грн" << endl; return 0; }
And another question to the creator of the task: Why in the condition specified time when it is considered day, and when night kWh. thought, where it is possible to stick, in for something that from the initial value to the final count day and share evidence on the day and night. But I decided not to split hairs. And as a result of your decision not to see the use of these data. So that's the question – what for? Probably, to please the brain with new information and make a little bit to think about the essence of the data :)
Thank you very much for the task.
I think that my program a little easier, but it seems like also believes, if I'm wrong, please correct.
int main()
{
using namespace std;
float tec=0;
float pred =0;
float tecc=0;
float predd =0;
float pervaya = 0.456;
float vtoraya = 0.789;
float tretiya = 1.479;
float sum=0;
float summ=0;
float s=0;//cумма день
float h=0;//сумма ночь
cout<<tec;
cout<<pred;
sum=tec-pred;
cout<<"- - - - - - - - - - - - - - - - - -"<<endl;
cout<>tecc;
cout<>predd;
summ=tecc-predd;
cout<<endl;
cout<<"- - - - - - - - - - - - - - - - - - -"<<endl;
cout<<"Vashi pocazaniya den "<<sum<<endl;
cout<<"Vashi pocazaniya noh "<<summ<<endl;
if (sum<100)
{
s=sum*pervaya;
cout<<"pokazaniya den, tarif <100, k oplate ";
cout<
100||sum<600){
s=sum*vtoraya;
cout<<"pokazaniya den, tarif 100-600, k oplate ";
cout<
600){
s=sum*tretiya;
cout<600, k oplate ";
cout<<s;
}
cout<<endl;
if (summ<100)//считаю ночь
{
h=summ*(pervaya/2);
cout<<"pokazaniya noh, tarif <100, k oplate ";
cout<100||summ<600)
{
h=summ*(vtoraya/2);
cout<<"pokazaniya noh, tarif 100-600, k oplate ";
cout<600)
{
h=summ*(tretiya/2);
cout<600, k oplate ";
cout<<h;
}
cout<<endl;
cout<<s+h;
return 0;
}
Nevnimatelynыy, sorry, the fact that the above can be removed )
Bun kind of text information and a while loop to repeat, It can be finished by yourself, decision:
Emm… Thu somehow crooked running your tag text predformatirovannogo…
Cut half of the text… (
If a ride, here is the very counting function:
double summ(double value)
{
double result = 0;
double do100 = 0.456;
double do600 = 0.789;
double ot600 = 1.479;
if (value > 600)
{
result += ((value – 599) * ot600);
value = value – (value – 599);
}
if (value > 100)
{
result += ((value – 99) * do600);
value = value – (value – 99);
}
result += (value * do100);
return result;
}
night and day rate considered, equally, the derivation of the night on the divide 2 and summarize the results…
Do not write your comments in the code!
He does not want here, comments were made not for this.
And why do we need comments? Is not that, to share their solutions?
And for those, who did not notice: incorrectly written example of a solution in terms of a healthy Mathematics. Why summarize the day and night tariffs kW? Correctly count the number of daily * at the rate of this zone + Number of night * at the rate of the corresponding zone.
In the condition as mentioned “Night rate - 50% the cost of each day of the tariff zone”.
comments field – for, to be able to ask for something on the delicate question of syntax, at libraries composition, use designs, the pros and cons of various designs … and many. MH. More about anything with respect to the C ++ language.
But, First of all, site engine does not allow normally enter the code here (he distorts his!).
And secondly (And this is the main point!), who are interested in here nsHuntingErskie delights beginners? And what they expect? – that someone will evaluate and give a review to these attempts?
Look, pozhalusta, and tell my govnokod cope or not with the task enormous sposibo for your attention
#include
#include
using namespace std;
int main() {
setlocale(LC_ALL,”rus”);
cout << "\t ***Калькулятор Електричиства***" << endl;
cout << "\t*********************************"<< endl;
cout << "_________________________________________"<< endl;
cout << "Введите количиство киловат в дневной час \n" ;
double KBt = 0;
double a = 0.456;//cost to 100 kw
double b = 0.789;//Vartyst views 100 to 600 kw
double c = 1.479;//vartыst higher than 600
double z = 0;
char exsit = 'y';
double bulo = 0;
double stalo = 0;
double ruznica(0);
while(exsit == 'y'){
cout << "Введите прошлий показатель \n" <> Bull;
if(Bull <= 0){
cout <<" \t tOshibka! You entered shtoto not n" <> exsit;
}else
cout << "Введите сталое показание \n" <> table;
if(table <= 0){
cout <<" \t tOshibka! You entered shtoto not n" <> exsit;
}
else if(Bull < table){
Ruznic = care – Bull;
}
else
Ruznic = Bull -What;
if(ruznica 101 )&&(ruznica 601){
z = ruznica * c;
}
else
cout << "ERROR! ";
cout << "У вас " << ruznica << " KBt for dnivnoe time" << endl;
cout << "*******************************************"<< endl;
cout << "_________________________________________"<< endl;
//double KBt1 = 0;
double a1 = a/2;//cost to 100 kw
double b1 = b/2;//Vartyst views 100 to 600 kw
double c1 = c/2;//vartыst higher than 600
double z1 = 0;
//***___________****_________
double bulo1 = 0;
double stalo1 = 0;
double ruznica1(0);
cout << "Введите количиство киловат в ночной час \n" ;
cout << "Введите прошлий показатель \n" <> bulo1;
if(bulo1 <= 0){
cout <<" \t tOshibka! You entered shtoto not n" <> exsit;
}else
cout << "Введите сталое показание \n" <> stalo1;
if(stalo1 <= 0){
cout <<" \t tOshibka! You entered shtoto not n" <> exsit;
}
else if(bulo1 < stalo1){
ruznica1 = stalo1 – bulo1;
}
else
ruznica1 = bulo1 -stalo1;
if(ruznica1 101 )&&(ruznica1 601){
z = ruznica1 * c1;
}
else
cout << "ERROR! ";
cout << "У вас " << ruznica1 << " KBt per night" << endl;
PPA = z + z1;
cout << "Вам нужно сплатить " << KBT << " USD." << endl;
cout <> exsit;
// _getch();
}
return 0;
}
If I wrote cho on tilifone prog
CppDroid – C / C ++ IDE for Android.