Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование_методичка_2017-01-12.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
7.62 Mб
Скачать

Лабораторная работа № 4. Циклы с заранее неизвестным числом повторений

Целью работы является освоение программирования алгоритмов с циклической структурой и выхода из цикла по условию, не зависящему от количества циклов. Примером такой задачи является вычисление суммы с бесконечным верхним пределом.

Проверка цикла осуществляется следующим образом. Так как выражение под знаком суммы постепенно убывает с ростом слагаемых в сумме (условие сходимости), то наступает момент, когда очередное слагаемое станет меньше наперед заданного числа (грубо говоря, точности вычисления сумм), и остальные слагаемые будут мало влиять на конечный результат. Поэтому, когда выражение под знаком суммы | (i) | будет меньше , то вычисления прекращаются и предполагается, что сумма найдена с заданной точностью.

Так как количество слагаемых заранее неизвестно, то циклом FOR пользоваться нельзя. Для этих целей предназначаются циклические операторы WHILE и REPEAT. Необходимо помнить, что у этих операторов параметр цикла автоматически не изменяется, и его надо менять принудительно. Поэтому при составлении блок-схемы алгоритма блок «Модификация» не используется.

При вычислении суммы должен вычисляться факториал по формуле:

Где П – знак произведения (аналогично знаку суммы), то есть 5! = 1· 2· 3· 4· 5 = 120. Факториал можно вычислить отдельным циклом, а можно и в цикле вычисления суммы. Для этого вводится дополнительная переменная, например f = j !, и затем в цикле умножается на текущее значение j.

Кроме значения суммы на печать полезно вывести значение счетчика циклов, то есть узнать, из скольких слагаемых состоит сумма.

Варианты заданий приведены в табл.7.1.

Примечание. В языке Турбо Паскаль под переменные типа INTEGER выделяется два байта, и допустимые для них значения находятся в диапазоне только от -32768 до 32767. Поэтому число 10!, реально равное 3628800, в этом случае будет представлено как 24320. Таким образом, выражение под знаком суммы может никогда и не стать меньше заданной точности. Для работы с большими целыми числами рекомендуется использовать вещественный тип REAL с диапазоном представления от 2.9·10-39 до 1.7·1038, или, в крайнем случае, целый тип LongInt с диапазоном от ‑2.147.483.648 до 2.147.483.647.

Таблица 7.1. Варианты заданий

№ вар.

Вычислить

При х, равном

Точность вычислений

1

0,149

10 -5

2

5,99

10 -3

3

3,1

10 -4

4

1,91

10 -5

5

1,42

10 -3

6

0,99

10 -4

7

1,51

10 -5

8

3,48

10 -3

9

7,55

10 -4

10

2,15

10 -5

11

0,81

10 -3

№ вар.

Вычислить

При х, равном

Точность вычислений 

12

0,77

10 -4

13

3,95

10 -5

14

1,62

10 -3

15

4,14

10 -4

16

1,24

10 -5

17

3,3

10 -3

18

2,8

10 -4

19

0,95

10 -5

20

4,5

10 -3

21

0,85

10 -4

22

2,4

10 -5

23

1,7

10 -3

№ вар.

Вычислить

При Х, равном

Точность вычислений 

24

4,2

10 -4

25

2,2

10 -5

26

3,1

10 -3

27

1

10 -4

28

8,5

10 -5

29

0,15

10 -3

30

2,9

10 -4