Составители:
Рубрика:
91
Листинг 4.9
_______________________________________________________________
/* Программа: Сумма ряда 1 */
/* Назначение: Демонстрация использования рекурсивного */
/* предиката для нахождения суммы S(N) ряда */
/* S, где N положительное целое число */
/* Пример: S(7) = 7+6+5+4+3+2+1 = 28 */
/* Указание: Запустите программу. Оператор цели */
/* включен в программу */
domains
number, sum = integer
predicates
sum_series(number, sum)
goal
sum_series(7,Sum),
write("Сумма ряда:"),nl,nl,
write(" S(7) = ", Sum), nl.
clauses
sum_series(1,1). /* сумма ряда */
sum_series(Number,Sum) :-
Number > 0,
Next_number = Number - 1,
sum_series(Next_number, Partial_Sum),
Sum = Number + Partial_Sum.
____________________________________________________________
Программа Сумма ряда 1 (листинг 4.9) использует правило рекурсии
для вычисления суммы ряда целых чисел от 1 до 7:
S(7) = 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28
или
S(7) = 7 + 6 + 5 + 4 + 3 + 2 + 1 = 28
Правило рекурсии программы выполняет вычисления по обычной схе-
ме сложения:
1 Начальное значение
+ 2 Следующее значение
___
3 Частичная сумма
+ 3 Следующее значение
___
6 Частичная сумма
...
Правило рекурсии имеет вид:
sum_series(1,1). /* сумма ряда */
sum_series(Number,Sum) :-
Листинг 4.9
_______________________________________________________________
/* Программа: Сумма ряда 1 */
/* Назначение: Демонстрация использования рекурсивного */
/* предиката для нахождения суммы S(N) ряда */
/* S, где N положительное целое число */
/* Пример: S(7) = 7+6+5+4+3+2+1 = 28 */
/* Указание: Запустите программу. Оператор цели */
/* включен в программу */
domains
number, sum = integer
predicates
sum_series(number, sum)
goal
sum_series(7,Sum),
write("Сумма ряда:"),nl,nl,
write(" S(7) = ", Sum), nl.
clauses
sum_series(1,1). /* сумма ряда */
sum_series(Number,Sum) :-
Number > 0,
Next_number = Number - 1,
sum_series(Next_number, Partial_Sum),
Sum = Number + Partial_Sum.
____________________________________________________________
Программа Сумма ряда 1 (листинг 4.9) использует правило рекурсии
для вычисления суммы ряда целых чисел от 1 до 7:
S(7) = 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28
или
S(7) = 7 + 6 + 5 + 4 + 3 + 2 + 1 = 28
Правило рекурсии программы выполняет вычисления по обычной схе-
ме сложения:
1 Начальное значение
+2 Следующее значение
___
3 Частичная сумма
+3 Следующее значение
___
6 Частичная сумма
...
Правило рекурсии имеет вид:
sum_series(1,1). /* сумма ряда */
sum_series(Number,Sum) :-
91
Страницы
- « первая
- ‹ предыдущая
- …
- 89
- 90
- 91
- 92
- 93
- …
- следующая ›
- последняя »
