ня подібних конструкцій не приводить до помилок компіляції, вони потенційно небезпечні і можуть приводити до неприємних наслідків. p align="justify"> Варіант for ... downto ... do ... циклу for аналогічний циклу for ... to ... do ... за винятком того, що в ньому керуюча змінна на кожному кроці виконання не збільшується, а зменшується на одиницю:
for j: = expression1 downto expression2 do statement;
Іноді буває зручно проводити перевірку на можливий вихід з циклу де-небудь в його середині, а не на початку або кінці. Такий вихід з циклу забезпечується процедурою Break модуля System, яка перериває виконання самого внутрішнього вкладеного циклу, будь то for, while або repeat. Зазначений модуль підключається до програми автоматично, якщо в цьому є необхідність. Приклад:
while true do; expression then Break;
statement2;
end;
Слід також згадати процедуру Continue, яка перериває виконання тіла самого внутрішнього циклу for, while або repeat і передає управління на його заголовок, так що починається виконання чергової ітерації циклу.
2. Розробка програми
Складемо алгоритми та блок-схеми рішення задач.
Завдання № 1.
1.Ввод значення.
. Обчислення значення функції.
. Висновок значення функції.
. Кінець.
Завдання № 2.
1.Ввод значення.
. Якщо значення - обчислюємо значення функції за формулою. Переходимо до п. 4. p>. Якщо значення - обчислюємо значення функції за формулою. Переходимо до п. 4. p>. Виводимо значення функції
. Кінець.
Завдання № 3.
1.Ввод значень меж інтервалу і, і кроки.
. Обчислюємо кількість точок на інтервалі за формулою
.
3.Начало циклу.
. Якщо - переходимо до п. 9.
. Обчислюємо значення аргументу за формулою.
. Обчислюємо значення функції за формулою
.
7. Виводимо значення аргументу і функції.
8.Переходім до наступної точки. . Переходимо до п. 4. p>. Кінець.
Складемо блок-схему алгоритмів (малюнок 1).
В
Рис.
В
Малюнок 1. Блок-схема алгоритму
Текст процедури представлений нижче.
procedure TMainForm.btnCalcClick (Sender: TObject); x, z, a, b, h: double;: string;, n: integer; pc.ActivePageIndex of
:: = StrToFloat (le1X.Text);: = Sqr (Sin (x))/Cos (x * x) - Sqr (Sin (x))/Cos (x * x); Z.Text: = FloatToStr (z);;
:: = StrToFloat (le2X.Text); x <= 3 then z: = x + 1z: = 1/(x * x + 1); F.Text: = FloatToStr (z );;
...