четверг, 10 июля 2008 г.

глава 6 упражнение 5

В королевстве Нейтронии, в которой денежной единицей является tvarp, установлены следующие ставки подоходного налога:

первые 5000 tvarp: 0%
следующие 10000 tvarp: 10%
следующие 20000 tvarp: 15%
свыше 35000: 20%

Например, кто-либо получающий 38000 tvarp должен был бы уплатить налог величиной 5000 х 0.00 + 10000 х 0.10 + 20000 х 0.15 + 3000 х 0.20, или 4600 tvarp.

Напишите программу, которая использует цикл для запроса о доходах и для отображения суммы налога. Цикл прерывается, когда пользователь вводит отрицательное число или нечисловое значение.
______________________________________________________


#include <iostream.h>
#include <stdlib.h>

int main()
{
int summa;
const int max =4; // можно было бы просто 4, но, имхо, был бы говнокод
double nalog=0;
const int e[max] = {5000, 10000, 20000, 35000}; // значения для ставок
const double procent[max] = {0.00, 0.10, 0.15, 0.20}; //процентные ставки
int i; // для счетчика

cout << "vvedite summu : ";
while (cin >> summa && summa > 0)
{
nalog =0;
for (i=0; i<max; i++)
{
summa = summa - e[i];
if (summa>=0)
nalog = nalog + e[i]*procent[i];
else
{
nalog = nalog + (e[i]+summa)*procent[i];
break;
};
};
cout << "nalog :" << nalog << "\nvvedite summu : ";
};


system("PAUSE");
return 0;
}

________________


сам понимаю, что куй знает что, но вот так вот... Если бы я не напрегся, то созерцали бы вы ...эээээм...... даже слова такого не знаю. Долго ипался, и уже хотел все сделать через иф елсе ))

Комментариев нет: