Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 12.04.2012
Сообщений: 12
1

Вычисление геометрической прогрессии с использованием рекурсии

12.04.2012, 14:32. Показов 4195. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите,пожалуйста,решить задачу.
Написать программу вычисления суммы геометрической возрастающей прогрессии с использованием рекурсии:
-программа должна производить вычисление ряда от меньшего члена прогрессии к большему.
-программа должна производить вычисление от большего члена к меньшему.
-оптимизировать программы с использованием оператора отсечения.

Я смогла организовать непосредственное вычисление прогрессии,а вот с условиями никак не могу справиться.Вот,что у меня получилось
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
predicates
run
nondeterm sum(integer,real,real,real)
clauses
run:- write("\n Vvedite chislo chlenov geometricheskoi progressii:"),
readint(N),
write("\n Vvedite znachenie pervogo chlena geometricheskoi progressii:"), 
readint(A), 
write("\n Vvedite znamenatel geometricheskoi progressii:"),
readint(K),
sum(N,A,K,Sum),
write("\n Summa n-ih chlenov geometricheskoi progressii:",Sum),
readchar(_),
run.
sum(0,_,_,0).
sum(N,A,K,B):- N>0,N1=N-1,
    A1=A*K,sum(N1,A1,K,B1),
    B=B1+A.
    goal
 sum(5,2,2,Sum).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.04.2012, 14:32
Ответы с готовыми решениями:

Вычисление n-го члена геометрической прогрессии, у которой первый член равен 2, а знаменатель равен 4
помогите пожалуйста реализовать на прологе: Вычисление n-го члена геометрической прогрессии, у...

Найти сумму первых N членов арифметической (геометрической) прогрессии с помощью рекурсии
Найти сумму первых N членов арифметической (геометрической) прогрессии с помощью рекурсии....

Найти сумму первых n-членов арифметической(геометрической) прогрессии с помощью рекурсии.
Найти сумму первых n-членов арифметической(геометрической) прогрессии с помощью рекурсии.Скоро...

Создание программы на языке C++ с использованием геометрической прогрессии
#include <stdio.h> #include <conio.h> int main() { int ak, q; int n; int i; ...

4
2505 / 1480 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
12.04.2012, 16:53 2
От меньшего к большему
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
predicates
run
nondeterm sum(integer,integer,real,real,real,real)
nondeterm sum(integer,real,real,real)
clauses
run:- write("\n Vvedite chislo chlenov geometricheskoi progressii:"),
readint(N),
write("\n Vvedite znachenie pervogo chlena geometricheskoi progressii:"), 
readint(A), 
write("\n Vvedite znamenatel geometricheskoi progressii:"),
readint(K),
sum(N,A,K,Sum),
write("\n Summa n-ih chlenov geometricheskoi progressii:",Sum),
readchar(_),
run.
sum(I,N,_,_,S,S):-I>N,!.
sum(I,N,A,K,TempS,S):- 
    TempS1=TempS+A,
    A1=A*K,I1=I+1,sum(I1,N,A1,K,TempS1,S).
 
sum(N,A,K,Sum):-sum(1,N,A,K,0,Sum).
 
goal
sum(5,2,2,Sum).
А от большего к меньшему - не совсем понятно что требуется. Каждый раз a^n высчитывать? Поэтому наверно можно считать подходящим то, что Вы написали.
1
0 / 0 / 0
Регистрация: 12.04.2012
Сообщений: 12
12.04.2012, 19:42  [ТС] 3
Спасибо большое)

Добавлено через 1 час 9 минут
Простите,а вы не могли бы пояснить,почему вы использовали в программе 2 функции sum и как именно работает этот отрывок программы
Prolog
1
2
3
4
5
6
sum(I,N,_,_,S,S):-I>N,!.
sum(I,N,A,K,TempS,S):- 
    TempS1=TempS+A,
    A1=A*K,I1=I+1,sum(I1,N,A1,K,TempS1,S).
 
sum(N,A,K,Sum):-sum(1,N,A,K,0,Sum).
0
2505 / 1480 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
12.04.2012, 20:50 4
2я sum - просто вспомогательная, поскольку к основной sum нужны некоторые начальные значения (1-индекс элемента, с которого начинаем считать, 0 - начальная сумма ряда).
1
0 / 0 / 0
Регистрация: 12.04.2012
Сообщений: 12
12.04.2012, 20:55  [ТС] 5
спасибо)
0
12.04.2012, 20:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.04.2012, 20:55
Помогаю со студенческими работами здесь

Рекурсия: вычисление суммы первых n членов геометрической прогрессии
Написать рекурсивную программу вычисляющую сумму первых n членов геометрической прогрессии

Определить, являются ли элементы массива членами геометрической прогрессии, и вывести значение знаменателя прогрессии
Задан размер массива вещественных чисел и значения его элементов. Определить, являются ли его...

Найти двадцать первых членов геометрической прогрессии с известным первым членом прогрессии и ее знаменателем
помогите пожалуйста двадцатью первыми членами геометрической прогрессии с известным первым членом...

Описать рекурсивную функцию для нахождения n-го члена геометрической прогрессии по первому члену прогрессии
Описать рекурсивную функцию для нахождения n-го члена геометриче- ской прогрессии по первому члену...

Вычисление факториала с использованием рекурсии
function Factrl (n: integer): longint; begin if n = 0 then Factrl:= 1; if n = 1 then ...

Вычисление факториала числа с использованием рекурсии
Очень срочно нужно, помогите если кто знает. Задача 11 Вычисление факториала числа с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru