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;
Другие задания