Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2011, 20:44   #1
revaldo666
Форумчанин
 
Регистрация: 24.06.2010
Сообщений: 251
По умолчанию Подсчёт кредит

Доброго времени суток форумчане.
нужна помощь...
чтото я совсем запутался..
Автокредит
Написать программу, расчитывающую кредит на покупку автомобиля.

Покупатель выбирает автомобиль, срок кредитования (в месяцах (от 0 до 36))
и первоначальный взнос (не менее 3% стоимости автомобиля).
Программа расчитывает сумму кредита и ежемесячную выплату по кредиту.

Условия кредитования:

Срок (в месяцах) Процентная ставка Разовая комиссия
(ежемесячно на оставшуюся сумму) (% от суммы кредита)
0-12 8.5% 2.5%
13-24 16.1% 2.5%
25-36 18.7% 2.5%

Вывести на экран модель автомобиля, его стоимость, первоночальный взнос, сумму кредита (с комиссией),
Расчитать и вывести на экран ежемесячную сумму на погашения кредита в виде:
№ месяца, сумма выплаты, остаток по кредиту


вот код
Код:
#include <iostream>
using namespace std;
int main ()
{
	float summ=0,ost;
	int a,b;
	float o=100000, m=124000, x=240000;
	cout <<"vuberite model:\n";
	cout <<"1:opel \n 2:mazda \n 3:xonda";
	cin>>a;
cout <<"vvedyte srok kreditovanij:\n";
	cout<<"1:12 mesjcev \n 2:24 mesjca\n 3:36 mesjcev\n";
	cin>>b;
	
	if (a==1)
	{
	summ=summ+o;
	summ=summ-(3/100);
//cout <<summ;
if(b==1)
	{b=12;
	}
	if(b==2)
	{b=24;
	}
	if(b==3)
	{
	b=36;
	}
	ost=summ/b;
	ost=ost+(8.5/100)+(2.5/100);
	
	for(int i=1; i<=b; i++)
	{
		summ=summ-ost;
	cout<<i<<" "<<summ<<endl;}
	}	
if (a==2)
{
	summ=summ+m;
	summ=summ-(3/100);
	//cout<<summ;
	if(b==1)
	{b=12;
	}
	if(b==2)
	{b=24;
	}
	if(b==3)
	{
	b=36;
	}
	//cout<<"\n"<<b;
	ost=summ/b;
	ost=ost+(8.5/100)+(2.5/100);
	
	for(int i=1; i<=b; i++)
	{
		summ=summ-ost;
	cout<<i<<" "<<summ<<endl;}
}
if (a==3)
{
summ=summ+x;
summ=summ-(3/100);
//cout <<summ;
if(b==1)
	{b=12;
	}
	if(b==2)
	{b=24;
	}
	if(b==3)
	{
	b=36;
	}
	//cout<<"\n"<<b;
	ost=summ/b;
	ost=ost+(8.5/100)+(2.5/100);
	
	for(int i=1; i<=b; i++)
	{
		summ=summ-ost;
	cout<<i<<" "<<summ<<endl;}
}	
	
	cin.get();
	return 0;
}
revaldo666 вне форума Ответить с цитированием
Старый 10.01.2011, 01:15   #2
revaldo666
Форумчанин
 
Регистрация: 24.06.2010
Сообщений: 251
По умолчанию

Если не я непонятно выразился, пишите, обьясню...
revaldo666 вне форума Ответить с цитированием
Старый 10.01.2011, 08:06   #3
Donatello
Форумчанин
 
Аватар для Donatello
 
Регистрация: 22.12.2010
Сообщений: 109
По умолчанию

Сделал код вроде бы более читабельным, но ничего особо не изменял пока что. Только пару ненужных действий убрал.
Теперь по вычислениям. Я добавил 2 коментария к первому ИФФ по вычислениям. В общем то что вы этим пытались сделать???

У вас видимо формулы не правильные вот и считает криво.

Например вот это
Код:
summ = o - ( 3 / 100 )
вы вычитаете от суммы 3%, но С++ вроде как проценты не знает поэтому нада сделать так
Код:
summ = o - ( o * ( 3 / 100 ))
Исправил все подсчеты, что бы проценты правильно высчитывались, по крайне мере по вашим формулам. Если брать опель то на 12 месяц идет -11000 я так понимаю это переплата, просто с кредитами лично не сталкивался, что и как правильно высчитывать незнаю. А в инете искать влом
Код:
#include <iostream>
using namespace std;
int main ()
{
        float summ, ost;
        int a,b;
        float o=100000, m=124000, x=240000;
        cout <<"vuberite model:" << endl;
        cout <<"1:opel\n2:mazda \n3:xonda" << endl;
        cin>>a;
        cout <<"vvedyte srok kreditovanij:" << endl;
        cout<<"1:12 mesjcev\n2:24 mesjca\n3:36 mesjcev\n";
        cin>>b;

        if (a==1)
        {
            summ = o - ( o * ( 3 / 100 ) );
            cout << summ << endl;

            if( b==1 )
                b=12;

            if( b==2 )
                b=24;

            if( b==3 )
                b=36;

            ost = summ / b;
            ost = ost + ( ost * ( 8.5 / 100 ) ) + ( ost * ( 2.5 / 100 ) );

            for(int i=1; i <= b; i++)
            {
                summ = summ - ost;
                cout << i << " " << summ << endl;
            }
        }

        if ( a == 2 )
        {
            summ = m - ( m * ( 3/100 ) );
            cout << summ << endl;
            if( b == 1 )
                b=12;

            if( b == 2 )
                b=24;

            if( b == 3 )
                b=36;

            ost = summ / b;
            ost = ost + ( ost * ( 8.5 / 100 ) ) + ( ost * ( 2.5 / 100 ) );

            for(int i=1; i <= b; i++)
            {
                summ = summ - ost;
                cout << i << " " << summ << endl;
            }
        }

        if (a==3)
        {
            summ = x - ( x * ( 3 / 100 ) );
            cout << summ << endl;
            if( b == 1 )
                b=12;

            if( b == 2 )
                b=24;

            if( b == 3 )
                b=36;

            ost = summ / b;
            ost = ost + ( ost * ( 8.5 / 100 ) ) + ( ost * ( 2.5 / 100 ) );

            for(int i=1; i <= b; i++)
            {
                summ=summ-ost;
                cout << i << " " << summ <<endl;
            }
        }

        cin.get();
        return 0;
}
Я бы изменил мир, но бог не дает исходников (c)

И сказал мыслитель, напиши свою проблему на бумаге и ты увидишь свои ошибки.

Последний раз редактировалось Donatello; 10.01.2011 в 08:42.
Donatello вне форума Ответить с цитированием
Старый 10.01.2011, 13:13   #4
revaldo666
Форумчанин
 
Регистрация: 24.06.2010
Сообщений: 251
По умолчанию

Та я то и сам незнаю))) поэтому каряво))
Ну всёравно огромное спасибо...
Может кто подскажет как сделать чтоб при расчёте остатка кридита сумма на последних 2-х месяцах в минус не уходила?
revaldo666 вне форума Ответить с цитированием
Старый 10.01.2011, 13:25   #5
Donatello
Форумчанин
 
Аватар для Donatello
 
Регистрация: 22.12.2010
Сообщений: 109
По умолчанию

Код:
ost = ost + ( ost * ( 8.5 / 100 ) ) + ( ost * ( 2.5 / 100 ) );
ну если тут поправить с "+" на "-" то будет тогда не -11000, а просто 11000
Но я уже писал мб эти -11к это то что ты переплачиваешь по кредиту??? ты же его не бесплатно и не безпроцентно берешь, ты берешь допустим 10к рублей и отдаешь ну допустим в итоге 11к рублей 1к рублей это переплата или по другом проц ставка по кредиту, и в итоге тот код который ты сделал, тупо пишет их как минусовую сумму, т.к. ты ее не научил что нету минусовых денег
Я бы изменил мир, но бог не дает исходников (c)

И сказал мыслитель, напиши свою проблему на бумаге и ты увидишь свои ошибки.
Donatello вне форума Ответить с цитированием
Старый 10.01.2011, 13:37   #6
revaldo666
Форумчанин
 
Регистрация: 24.06.2010
Сообщений: 251
По умолчанию

Цитата:
Сообщение от Donatello Посмотреть сообщение
Код:
ost = ost + ( ost * ( 8.5 / 100 ) ) + ( ost * ( 2.5 / 100 ) );
ну если тут поправить с "+" на "-" то будет тогда не -11000, а просто 11000
Но я уже писал мб эти -11к это то что ты переплачиваешь по кредиту??? ты же его не бесплатно и не безпроцентно берешь, ты берешь допустим 10к рублей и отдаешь ну допустим в итоге 11к рублей 1к рублей это переплата или по другом проц ставка по кредиту, и в итоге тот код который ты сделал, тупо пишет их как минусовую сумму, т.к. ты ее не научил что нету минусовых денег
хм...а ведь точно)))
щас попробуем)))
Спасибо))
revaldo666 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсчёт голосов eldar PHP 6 01.06.2009 12:40
Кредит, расчет. valerij Microsoft Office Excel 6 14.04.2009 23:15