Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел2-QB-лр1-8.doc
Скачиваний:
55
Добавлен:
22.05.2015
Размер:
1.19 Mб
Скачать

2 Программы вычисления факториалов

Пример 2 Вычислить значение факториала n = 8!

Факториалом n! называется произведение натуральных чисел от 1 до n, т.е. n! = 1∙2∙3∙…∙n. Например, 3!=1∙2∙3, 6!=1∙2∙3∙4∙5∙6.

Таким образом, в примере требуется найти произведение натуральных чисел от 1 до 8.

Программа:

CLS

n = 1 'первое число факториала

N = 1 'начальное значение факториала

L1: N = N*(n + 1) 'накопление факториала N!

n = n + 1 'следующее число факториала

IF n < 8 THEN L1 ' проверка достижения значения 8!

?N ' печать N

n

N

1

1

1*2

2

2!*3

3

3!*4

7

7!*8

END

Ручное выполнение программы:

Проверка показывает, что факториал формируется как произведение предпоследнего и последнего значений переменной n.

Пример 2 Вычислить сумму нечётных факториалов s = 1! + 3! +5! +7! +… до s = 1000.

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

N = 1: n = 1: s = 1 ' s – начальная сумма факториалов

WHILE s <= 1000 'проверка конца цикла

N = N*(n+1)*(n+2) 'вычисление нечётного факториала

s = s + N 'накопление суммы факториалов

n = n + 2 ' приращение n

WEND

?s

END

Пример 3 Вычислить сумму чётных факториалов

s = 2! + 4! +6! +8! +… до s = 1000.

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

CLS: N = 2: n = 2: s = 2 ' s=2! – начальная сумма факториалов

80

DO UNTIL s > 1000 'проверка конца цикла

N = N*(n+1)*(n+2) 'вычисление чётного факториала

s = s + N 'накопление суммы факториалов

n = n + 2 ' приращение n

LOOP

?s

n

N

s

2

2

2

2*3*4

2+4!

4

4!*5*6

2+4!+6!

6

6!*7*8

2+4!+6!+8!

7

7!*8

END Проверка:

n

N

s

2

2

2

2*3*4

2+4!

4

4!*5*6

2+4!+6!

6

6!*7*8

2+4!+6!+8!

7

7!*8


n

N

s

2

2

2

2*3*4

2+4!

4

4!*5*6

2+4!+6!

6

6!*7*8

2+4!+6!+8!

7

7!*8

n

N

s

2

2

2

2*3*4

2+4!

4

4!*5*6

2+4!+6!

6

6!*7*8

2+4!+6!+8!

7

7!*8

n

N

s

2

2

2

2*3*4

2+4!

4

4!*5*6

2+4!+6!

6

6!*7*8

2+4!+6!+8!

7

7!*8


n

N

s

2

2

2

2*3*4

2+4!

4

4!*5*6

2+4!+6!

6

6!*7*8

2+4!+6!+8!

7

7!*8