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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 17.08.2009, 17:12   #1
DOJ
Пользователь
 
Регистрация: 11.06.2009
Сообщений: 19
По умолчанию Работа с циклами

Дана тема:Разработать программу для итерационного поиска размера равномерных выплат по кредиту(размер общего платежа каждый месяц уменьшается, а погашение основного долга равномерно распределено на весь срок кредита от 1 до 5 лет). Выплаты и начисление процентов на оставшуюся сумму производятся ежемесячно. Исходные данные: размер кредита, срок выплат (от 1 до 5 лет), процентная ставка. В диалоге изобразить график изменения остатка от суммы кредита.
Проблема моя заключается в том, что не могу оформить ежемесяный перерасчет, то есть оформить цикл. Специально на форме разместила поля и кнопки, чтобы отчледить правильность расчета кредита.
Помоги пожалуйста товарищи программисты. Зарнее благодарю за помощь.

Код:
Код:
#include <vcl.h>
#pragma hdrstop
#include <math.h>

#include "Unit1.h"
//-------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//-------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//-------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{

float  sum, pr,v,g ,stm,stm1, nz, ch, zn, k, ka;
// ввод данных
sum=StrToFloat(Edit1->Text);
pr=StrToFloat(Edit2->Text);
v=StrToFloat(Edit3->Text);
//расчет значений для расчета суммы кредита
g=v*12;    //количество месяцв на которые брался кредит
stm=((pr/100)/g);  //месячная ставка
 Label6->Caption = "Ставка : " +
         FloatToStrF(stm,ffGeneral,7,8);
// воведение ставки в степень
   stm1=1+stm;
 nz=pow(stm1,g); //вовзведение в степень
 Label7->Caption = "Знаменатель : " +
         FloatToStrF(nz,ffGeneral,7,8);
//расчет знаменателя
  zn=stm*nz;
//расчет числителя
   ch=nz-1;
//расчет оплаты кредита
   k=zn/ch;
  ka=sum*k; //расчет кредита за месяц
  Label8->Caption = "Сумма кредита : " +
         FloatToStrF(ka,ffGeneral,7,8);

}
//-------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
Form1->Close(); 
}
//-------------------------------------------------------------------------

Последний раз редактировалось Sazary; 17.08.2009 в 17:16.
DOJ вне форума
Старый 17.08.2009, 23:49   #2
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

То есть вы хотите сказать, что вам нужно несколько раз вот это все пересчитать?
MaTBeu вне форума
Старый 18.08.2009, 15:37   #3
DOJ
Пользователь
 
Регистрация: 11.06.2009
Сообщений: 19
По умолчанию

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


Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{

float  sum, pst, stm, ppr, pkr, op, k, sq;
int i, srv, srv1;
  {
// ввод данных
sum=StrToFloat(Edit1->Text);   //сумма кредита
pst=StrToFloat(Edit2->Text);   //процентная ставка
srv=StrToFloat(Edit3->Text);   //срок выплат

//расчет значений для расчета суммы кредита
stm=(pst/100)/12; //месячная процентная ставка
 Label6->Caption = "Ставка : " +
         FloatToStrF(stm,ffGeneral,7,8);
// расчет срока выплаты
srv1=srv*12;
    }

do
 {
 //for (i=1; i>srv1);
 sq=pow((1+stm),srv1);
 ppr=stm*sum; //платеж по процентам
 k=((stm*sq)/(sq-1)); // коэффициент ануитентный
 pkr=k-ppr; //платеж кредита
 op=k*sum; //общий платеж
 srv1=srv1-1; //срок выплат сокращается на 1
 sum=sum-pkr;//для перерасчета суммы кредита
 
    Label7->Caption = "Общий платеж : " +
        FloatToStrF(op,ffGeneral,7,8);
           }  while (srv>1);

  Label8->Caption = "Платеж по процентам: "+
         FloatToStrF(ppr,ffGeneral,7,8);

}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
Form1->Close();
}
Может оформить через массив, чтобы делал перерасчет?

Последний раз редактировалось MaTBeu; 19.08.2009 в 22:27.
DOJ вне форума
Старый 27.08.2009, 18:39   #4
DOJ
Пользователь
 
Регистрация: 11.06.2009
Сообщений: 19
По умолчанию

Благодарю, тех кто даже не пытался помочь, разобралась. Ошибка была в расчетных формулах.
DOJ вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с циклами\массивами. Выручайте. S0ft44 Паскаль, Turbo Pascal, PascalABC.NET 2 15.05.2009 20:46
VBA работа с циклами melani Помощь студентам 2 28.03.2009 10:26
Работа с циклами 2. Вопрос SPQR Помощь студентам 5 27.10.2007 11:20
Работа с циклами. Надюха Помощь студентам 3 26.10.2007 09:29