Алгоритм решения многих задач предполагает для достижения результата выполнение определенной последовательности действий несколько раз, то есть, являются циклическими.
В программе цикл может быть реализован при помощи конструкций for, while и repeat.
Оператор цикла for … do
Оператор FOR используется в том случае, когда некоторую последовательность действий надо выполнить несколько раз, причем число повторений заранее известно.
Общий вид оператора:
For <счетчик> := <нач_знач> to <кон_знач> do
Begin
<тело цикла>
End;
где:
счетчик – переменная-счетчик числа повторений;
нач_знач – выражение, определяющее начальное значение счетчика цикла;
кон_знач – выражение, определяющее конечное значение счетчика цикла;
тело цикла – операторы, которые будут повторяться.
Переменная-счетчик, выражения нач_знач и кон_знач должны быть целого типа.
Количество повторений цикла можно вычислить по формуле: кон_знач – нач_знач +1.
Если между begin и end находится только один оператор, то begin и end можно не писать.
Например, в результате выполнения следующего программного кода:
tab1:=' ';
for i:= 1 to 5 do
begin
tab1:= tab1 + IntToStr(i) + ' ' + IntToStr(i*i) + chr(13);
end;
переменная tabl будет содержать изображение таблицы квадратов чисел.
Если в операторе for вместо слова to записать downto, то после очередного выполнения тела цикла значение счетчика будет не увеличиваться, а уменьшаться.
Операторы цикла с условием while и repeat
Операторыwhile и repeat используются в том случае, когда некоторую последовательность действий надо выполнить несколько раз, причем необходимое число повторений во время разработки программы не известно и может быть определено только во время работы программы.
Оператор цикла с предусловием while .. do
Общий вид оператора:
While условие do
begin
<тело цикла>
end;
где условие – выражение логического типа, определяющее условие выполнения тела цикла. Операторы тела цикла выполняются, пока условие не станет ложным (False).
Оператор цикла с постусловием и repeat… until
Общий вид оператора:
repeat
<тело цикла>
until условие
где условие – выражение логического типа, определяющее условие завершения цикла.
Операторы тела цикла выполняются до тех пор, пока условие не станет истинным (False).
Обратите внимание на различия. В операторе while … do выход из цикла происходит тогда, когда условие станет ложным, а в операторе repeat … until – когда условие станет истинным.
Задание. Напишите программу, определяющую доход по вкладу с учетом выбранных простых или сложных процентов. Простые проценты начисляются по окончании срока вклада, сложные проценты начисляются ежемесячно и прибавляется к сумме вклада.
Ход выполнения работы
1. Загрузите Lazarus, создайте новый проект. Сохраните файлы проекта в папке Доход по вкладу.
2. Создайте интерфейс по образцу.
3. Напишите обработчик события для кнопки Вычислить.
procedure TForm1.Button1Click(Sender: TObject);
var
sum:real; // сумма вклада
pr: real; // процентная ставка
period: integer; // срок вклада
profit: real; //доход по вкладу
sum2: real; //сумма при вычислении
//методом сложных процентов
i: integer;
begin
sum:=StrToFloat(Edit1.text);
pr:=StrToFloat(Edit2.text);
period:=StrToInt(Edit3.text);
if RadioGroup1.ItemIndex=0 then
// Выбран переключатель Простые проценты
profit:=sum*(pr/100/12)*period
else
// Выбран переключатель Сложные проценты
begin
sum2:=sum;
for i:=1 to period do
sum2:= sum2+sum2*(pr/100/12);
profit:=sum2-sum;
end;
sum:=sum+profit;
Label4.Caption:='Доход: '+FloatToStrF(profit,ffFixed,8,2)
+#13+'Сумма в конце срока вклада: '+FloatToStrF(sum, ffFixed,8,2);
end;
4. Проверьте работу приложения.