Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2014, 15:28   #1
diman545
Новичок
Джуниор
 
Регистрация: 31.03.2014
Сообщений: 1
Вопрос Visual Prolog 5.2 Треугольник Паскаля

Добрый день! Возникла маленькая проблемка. Есть код программы, который по возможности надо разжевать) Собственно вот код:

% Вычисление значения K-ого элемента N-ой строки; E - результат
fact(0,0,P):-P=1,!.
fact(_,0,P):-P=1,!.
fact(B,B,P):-P=1,!.
fact(B,M,P):-BM=B-M,M1=M+1,!,mul(B,BM,M1,1,1,P).
mul(B,NM,B,NM,P,PP):-PP=P*B/NM.
mul(B,NM,IB,INM,P,P1):-IB1=IB+1,
!,INM1=INM+1,!,PP=P*IB/INM,!,mul(B,NM,IB1,INM1,PP,P1).

% Предикат вычисляющий N-ую строку
str(_,-1,Str,Rez):-concat(Str," \n ",Rez), !.%3: если строка построена добавляем перевод на новую строку и связываем несвязаную переменную Rez c str
%concat-склеивает стороки str c \n и помещает в rez
str(N,K,Str,Rez) :-fact(N,K,E),format(OutStr," % ",E),%если стр. не полностью сформир. то продолжаем ее сформировывать, вычисляя по формуле fact, иформируем в строку
concat(Str,OutStr,Str1),% %concat-склеивает стороки str c OutStr и помещает в Strl
KK=K-1,str(N,KK,Str1,Rez).%обратный счетчик, как только равно -1 переход в начало цикла

trip(N,N,Str,Rezult):- Rezult=Str,!. %2: если N1 = N2 , то в результат запишем str, возвращаемся на действие в кнопке
trip(N,Max,Str,Rezult):-str(N,N,Str,Rez),N1=N+1,!,trip(N1,M ax,Rez,Rezult).%N-текущ. стр, Max-максимум. стр, str-формиров. стр, N1-переход на след. стр, формирован. след. стр.

Объяснить надо следующее:
Какая тут используется рекурсия,восходящая или нисходящая?
mul(B,NM,IB,INM,P,P1):-IB1=IB+1,
!,INM1=INM+1,!,PP=P*IB/INM,!,mul(B,NM,IB1,INM1,PP,P1).
Надеюсь на вашу помощь)
diman545 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Треугольник Паскаля vadiprog Помощь студентам 4 02.10.2020 23:44
Треугольник Паскаля Ript Помощь студентам 3 03.06.2013 21:01
Треугольник Паскаля Kati Помощь студентам 2 12.10.2010 19:07
Треугольник Паскаля. Assembler ser_b Помощь студентам 0 05.06.2010 00:21