Если нужно обойти указанные ограничения, то оператор for I := E1 to E2 do S можно заменить на последовательность операторов подобную:
I := E1;
while ( I <> E2 ) do begin
S1;
I := SUCC( I )
end;
а оператор for I := E1 downto E2 do S на: I := E1;
while ( I <> E2 ) do begin
S;
I := PRED( I )
end;
Хотя на блок-схемах оператор for изображают упрощенно (см. Рис. 4)., нужно помнить, что все вышеперечисленные действия происходят при каждом выполнении оператора. Это самый сложный оператор алгоритмических языков.
Задача №1
Написать программу, которая вычисляет сумму первых N членов последовательности an. Число N программа должна запрашивать у пользователя.
Для какого максимального числа N программа позволяет получить верный результат?
1)Решить задачу с использованием оператор цикла while.
2)Решить задачу с использованием оператор цикла for.
Задача №2
Написать программу которая вычисляет сумму первых членов ряда с точностью до ( т.е. пока величина очередного вычисленного члена ряда не станет меньше , где >0). Число программа должна запрашивать у пользователя.
Для какого минимального числа программа позволяет получить верный результат?
Требования к решению задач
Программа должна выводить на терминал реквизиты авторов (фамилию, имя и группу).
Программа должна подсказывать пользователю, что ему делать.
Функции вида an и n! вычислять через операцию умножения. Использовать логарифмические вычисления запрещается.
При выдаче результата вычислений программа должна выводить и параметры, веденные пользователем
Варианты задач.
№ |
Общий член последова- |
№ |
Общий член последова- |
|
тельности |
||||
варианта |
тельности an |
варианта |
||
an |
||||
|
|
|
||
1. |
(-1)n-1/3.5n |
13. |
1/3n+1/4n |
|
2. |
1/2n+1/3n |
14. |
(4n-16)/2n |
|
3. |
(2n-1)/2n |
15. |
en/n! |
|
4. |
10n/n! |
16. |
1/((2n – 3)(3n – 2)) |
|
5. |
1/((3n – 2)(3n – 1)) |
17. |
2n!/(n3) |
|
6. |
n!/(3n2) |
18. |
n!/4n |
7. |
2n/2n! |
19. |
2n/3n! |
8. |
3n/n! |
20. |
n5/n! |
9. |
2n/(n! |
21. |
1.85n/(3n!) |
10. |
1/((8n + 234)(1.3n – 1)) |
22. |
(6.4n – 123.98)/(8n – 1)) |
11. |
n!/nn |
23. |
2n/n! |
12. |
(-1)n/(3n4) |
24. |
(2n-1)/(2n!) |
Контрольные вопросы
1)Какие средства описания циклических алгоритмов имеются в языке ПАСКАЛЬ?
2)Как записываются операторы цикла языка ПАСКАЛЬ?
3)Как выполняются операторы цикла языка ПАСКАЛЬ?
4)Каковы особенности использования различных операторов цикла?
5)Каким образом можно организовать в операторах for и while выполнение не одного, а нескольких простых операторов?
6)Как и в каких случаях можно заменить один оператор цикла на конструкцию с использованием другого.