При виконанні оператора for з зарезервованим словом downto параметр циклу зменшується на одиницю, а керуюча умова має вигляд <параметр циклу>
<кінцеве значення>.
Обчислення нескінченних сум. При розробці алгоритмів обчислення нескінченних сум процес потрібно організувати так, щоб для обчислення чергового доданку використовувалися результати обчислення попереднього доданку. Наприклад, для обчислення
-го доданку суми
потрібно
- ий доданок помножити на множник
, тобто
. Якщо такої закономірності немає, то можна цей підхід використати для обчислення окремих частин доданку. Наприклад, для обчислення доданків суми
можна окремо обчислювати
,
,
, а потім обчислити доданок
. Обчислення суми з заданою точністю
означає, що процес накопичення доданків суми завершується, якщо для
-го доданку справдиться умова
.
Для обчислення другої суми, аналогічно, як у попередньому прикладі, командою File|New Application створимо новий проект. Присвоїмо формі заголовок Caption = Обчислення суми. Командою File|Save All запишемо програмний модуль у файл з іменем ULAB2_2.pas, а проект – LAB2_2.dpr.
Розмістимо на формі три компоненти Edit для введення початкових даних x, a, e та два для виведення значення суми і кількості доданків.
Крім цього, розмістимо на формі дві керуючі кнопки (компонент Button) з написами Обчислити та Вихід (властивість Caption) і програмними іменами Button1, Button2 (властивість Name) Рис. 2.1.

Рис.1.3. Форма Обчислення функції
Обробники кнопок Обчислити та Вихід містяться у програмному модулі ULAB2_2 і мають вигляд:
{Обробник кнопки Обчислити}
procedure TForm1.Button1Click(Sender: TObject);
VAR a, x, eps: real;
s, sn, st3, stax: real;
n, nf: longint;
BEGIN
{Введення початкових даних}
x:=StrToFloat(Edit1.Text);
a:=StrToFloat(Edit2.Text);
eps:=StrToFloat(Edit3.Text);
n:=0; stax:=1; st3:=1; nf:=1;s:=0;
Repeat
n:=n+1;
stax:=stax*(a+x);
st3:=st3*3;
nf:=nf*n;
sn:=sin(stax)/(st3+nf);
s:=s+sn;
Until abs(sn) < eps;
{Виведення результатів}
Edit4.Text:=FloatToStr(s);
Edit5.Text:=IntToStr(n);
end;
{Обробник кнопки Вихід}
procedure TForm1.Button2Click(Sender: TObject);
begin
Close;
end;
Обчислення елементів нескінченної послідовності. При розробці алгоритмів знаходження елементів у нескінченній послідовності, які задовольняють певні умови, потрібно обчислювальний процес організувати так, щоб на кожному кроці обчислений елемент ставав попереднім для обчислення наступного елемента.
Приклад. Розробити програму, яка для заданих
знаходить і друкує перший член
і його номер у послідовності
, для якого виконується умова
і розглядається перших
членів послідовності.
Для розв’язання задачі командою File|New Application створимо новий проект. На екрані з’явиться форма із заголовком Form1. Установимо цій формі заголовок Caption = Елементи послідовності. Тепер командою File|Save All запишемо програмний модуль у файл з іменем ULAB2_2.pas, а проект – PAB2_2.dpr.
Розмістимо на формі два компоненти Edit для введення початкових даних x і e, два – для виведення результатів. Пояснення до цих компонентів зробимо за допомогою компонента Label (властивість Caption).

Рис. 2.2. Форма Елементи послідовності
Крім цього, розмістимо на формі дві керуючих кнопки (компонент Button) з написами Обчислити та Вихід (властивість Caption) Рис. 2.1.
Обробник кнопки обчислити міститься в програмному модулі ULAB2_2. і має вигляд:
{Обробник кнопки Обчислити}
procedure TForm1.Button1Click(Sender: TObject);
var x, e: real;
ap, an: real;
n: integer;
begin
{Початкові дані}
x:=StrToFloat(Edit1.Text);
e:=StrToFloat(Edit2.Text);
{Обчислення елемента}
an:=x; n:=0;
repeat
ap:=an;
n:=n+1;
an:=(ap+x/ap)/2;
until (abs(an-ap) < e) or (n >= 1000);
{Виведення результатів}
Edit3.Text:=FloatToStr(an);
Edit4.Text:=FloatToStr(n);
end;