4. Создайте проект, в котором вычисляется доход по вкладу. Программа должна обеспечивать расчет денежных сумм для простых или капитализированных вкладов. Если вклад простой, то процентная ставка начисляется от исходной суммы, и каждый месяц она одинаковая, а если капитализированный, то процентная ставка начисляется каждый месяц от суммы вклада в предыдущем месяце.
Объявим несколько переменных: i
— понадобится нам при расчёте капитализированного вклада; sum
— начальная сумма вклада; s
— срок его хранения; rate
— процентная ставка; sup_perc
— сумма дохода; sum_i
— для подсчёта капитализированного вклада.
Готовый обработчик для кнопки «Рассчитать»:
procedure Form1.button1_Click(sender: Object; e: EventArgs);
begin
var i, sum, s, rate : integer;
var sup_perc, sum_i : real;
if (TextBox1.Text <> '') and (TextBox2.Text <> '') and (TextBox3.Text <> '') then
begin
sum := StrToInt(TextBox1.Text);
s := StrToInt(TextBox2.Text);
rate := StrToInt(TextBox3.Text);
if CheckBox1.checked then
begin
sum_i := sum;
for i := 1 to s do
begin
sum_i := sum_i + rate / 100 * sum_i;
end;
Label4.Text := Concat(FloatToStr(sum_i), ' руб.');
end
else
begin
sup_perc := s * rate / 100 * sum;
Label4.Text := Concat(FloatToStr(sum + sup_perc), ' руб.');
end;
end
else
MessageBox.Show('Одно из полей не заполнено');
end;
Скачать готовый проект Pascal: Upr2-4.rar
Пояснения
Проверим, что все поля заполнены:
if (TextBox1.Text <> '') and (TextBox2.Text <> '') and (TextBox3.Text <> '') then
Запишем в переменные данные из полей:
sum := StrToInt(TextBox1.Text);
s := StrToInt(TextBox2.Text);
rate := StrToInt(TextBox3.Text);
Проверим состояние переключателя «Капитализированный»:
if CheckBox1.checked then
Если переключатель включён, рассчитаем капитализированный вклад. Для этого нам нужно создать цикл от 1 до s
, где s
— количество месяцев; переменной sum_i
присвоить начальную сумму вклада sum
; в каждой итерации цикла к sum_i прибавлять процент от предыдущего значения sum_i, т.е. каждый месяц мы вычисляем процент прибыли от предыдущего месяца и прибавляем к прибыли предыдущего месяца; после цикла вывести тоговый доход:
if CheckBox1.checked then
begin
sum_i := sum;
for i := 1 to s do
begin
sum_i := sum_i + rate / 100 * sum_i;
end;
Label4.Text := Concat(FloatToStr(sum_i), ' руб.');
end
Если же вклад не капитализированный, то вычисления будут следующими:
begin
sup_perc := s * rate / 100 * sum;
Label4.Text := Concat(FloatToStr(sum + sup_perc), ' руб.');
end;