Урок из серии «Программирование для школьников в среде Lazarus»
Алгоритм решения многих задач предполагает для достижения результата выполнение определенной последовательности действий несколько раз, то есть, являются циклическими.
В программе цикл может быть реализован при помощи конструкций 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. Проверьте работу приложения.
До встречи в следующем уроке!
«…пока условие не станет истинным (False)…»
Истинно испокон веков было (True)