Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.116.67.212] |
|
Страницы: (7) « Первая ... 3 4 [5] 6 7 все ( Перейти к последнему сообщению ) |
Сообщ.
#61
,
|
|
|
Здравствуйте, не могу решить задачу "Вычислить x^n". Вроде должно выглядеть вот так, но в ошибке пишется типа see declrations power. В чём ошибка?
PREDICATES %первый аргумент - основание степени, второй - показатель степени, % третий - результат power (real, integer, real) CLAUSES %любое число в нулевой степени равно 1 power (_, 0, 1):- !. %xn=x(n-1)*x power (X, N, X_powerN):- M=N-1, %в следующей этой строке ошибка power (M, X_powerM), Xpower_N=Xpower_M*X. GOAL write ("Основание степени? "), readreal (X), write ("Показатель степени? "), readint (N), power (X, N, Result), write (X, " в степени ", N" =", Result). |
Сообщ.
#62
,
|
|
|
p(X,0,1):-!. p(0,X,0):-!. p(X,1,X):-!. p(X,N,R):- N1=N-1, p(X,N1,R1), R=X*R1. |
Сообщ.
#63
,
|
|
|
Большое спасибо. Работает
|
Сообщ.
#64
,
|
|
|
Помогите пожалуйста к зачёту, очень надо.
1)добавить к списку заданный элемент и найти длину хвоста списка 2)посчитать сумму ряда, если N дано. 1/((3N-2)(3N+1)) 3)задано 3 числа (Х1,У1) (Х2,У2) (Х3,У3) Найти их взаимное расположение, если: 1)они образуют прямую; 2)они образуют невырожденный треугольник. |
Сообщ.
#65
,
|
|
|
ЛИСИКА, с получением зачёта помогают в разделе "Помощь студентам", платно.
|
Сообщ.
#66
,
|
|
|
Цитата Swetlana @ Второе domains li=integer* predicates count(integer,li,integer) del(integer,li,li) max(li,integer) p2(li,li) goal clearwindow, p2([3,2,1,2,1,2,1,3,1],[1]), write("yes"); write("no"). clauses p2(_,[]):-!. p2(L,[H|T]):- max(L,N),!, count(H,L,N), p2(L,T). max([],0):-!. max([H|T],N):- count(H,[H|T],N1), del(H,T,T1), max(T1,N), N>=N1. max([H|T],N):- count(H,[H|T],N). del(_,[],[]):-!. del(H,[H|T],T1):- del(H,T,T1),!. del(X,[H|T],[H|T1]):- del(X,T,T1). count(X,[],0):-!. count(H,[H|T],N1):- count(H,T,N), N1=N+1. count(X,[H|T],N):- count(X,T,N). Swetlana,ввожу p2([3,2,2,1,2,1,2,1,3,1,2],[1]) пишет "да" или p2([3,2,1,2,1,2,1,3,1,2],[1]),тоже пишет "да" (((( |
Сообщ.
#67
,
|
|
|
PEOPLE NEED HELP!!! Полный завал с прологом!
Нужно описать предикат P(L1,L2), который истинен если в L2 повторяються только те элементы которые повторяються в L1. Например L1=[1,2,2,4,6,6,6,3] а L1=[8,4,2,2,6,6,6] Здесь пролог должен вывести ДА. Буду рад любой помощи!) |
Сообщ.
#68
,
|
|
|
Здравствуйте, помогите пожалуйста решить хоть что-нибудь из этого? Prolog
Заранее огромное спасибо) 1) Родственные отношения. Имеется N объектов и заданы отношения между ними: родитель, мужчина, женщина. Требуется определить новое отношение (в задании указано жирным шрифтом) и выявить круг лиц, ему удовлетворяющих. Определить предикат потомок и найти всех потомков и потомков конкретного лица. 2) Логические головоломки. Написать программу на языке Prolog, реализующую логическую головоломку. На международном конгрессе встретились 4 делегата из разных стран. Каждый из них владел только двумя языками из 4 (английский, французский, итальянский и немецкий). Однако оказалось, что не было такого языка, на котором они могли бы разговаривать вчетвером. И только был один язык, на котором могли вести беседу трое из них. Никто из делегатов не владеет французским и немецким языками одновременно. Хотя физик не говорит по- английски, он может служить переводчиком, если математик и биолог захотят поговорить друг с другом. Биолог говорит по-немецки и может говорить с химиком, хотя тот не знает немецкого. Физик, математик и химик не могут беседовать втроем на одном языке. ? Какими двумя языками владеет каждый из них ? 3) Логические головоломки. Написать программу на языке Prolog, реализующую логическую головоломку. Корнеев, Докшин, Мареев и Скобелев – жители нашего города. Их профессии – пекарь, врач, инженер и милиционер. Корнеев и Докшин – соседи и всегда на работу ездят вместе. Докшин старше Мареева. Корнеев регулярно обыгрывает Скобелева в пинг-понг. Пекарь на работу всегда ходит пешком. Милиционер не живет с врачом. Инженер и милиционер встречались единожды, когда милиционер оштрафовал инженера за нарушение правил. Милиционер старше врача и инженера. ? Определите профессии ? 4) Списки. Задан список целых чисел L. Сформировать список L1 из элементов: минимальный элемент всего списка L, минимальный элемент из последних n-1 элементов L и т.д. 5) Список структур Сформировать список структур. Предусмотреть предикат, дополняющий этот список информацией, вводимой с клавиатуры. Сформировать из исходного списка новый список структур и вывести его на экран. Определены структуры «дата рождения», «Ф.И.О.» (фамилия, имя, отчество), «персона» (Ф.И.О., дата рождения) и «супруги» (Ф.И.О., Ф.И.О.). Заданы N лиц, информация о которых представлена в виде фактов, содержащих структуры «персона» или «супруги». Найти все тупоугольные треугольники. |
Сообщ.
#69
,
|
|
|
Помогите решить задачу в Turbo Prolog
Задайте отношение между числами a, b и x, так чтобы х являлось корнем уравнения ax+b=0. Зарание блпгодарен !!! |
Сообщ.
#70
,
|
|
|
f(0,0,_):-
write("any x"),!. f(0,B,_):- write("No solution"),!. f(A,B,X):- X=-B/A, write("x=",X). |
Сообщ.
#71
,
|
|
|
Цитата Swetlana @ f(0,0,_):- write("any x"),!. f(0,B,_):- write("No solution"),!. f(A,B,X):- X=-B/A, write("x=",X). Это я так понимаю раздел clauses ??? А в predicates что нужно написать ??? |
Сообщ.
#72
,
|
|
|
Вроде задание звучит задайте отношение.
predicates f(real,real,real) goal write("a="), readreal(A), nl, write("b="), readreal(B), nl, f(A,B,X). clauses f(0,0,_):- write("any x"),!. f(0,B,_):- write("No solution"),!. f(A,B,X):- X=-B/A, write("x=",X). |
Сообщ.
#73
,
|
|
|
Swetlana
Спасибо большое за помощь |
Сообщ.
#74
,
|
|
|
Задача - вычислить длину списка, т.е. количество элементов в списке. Исходные данные берутся из БД.
Мое решение: domains list=integer* num=integer database length(list) predicates length_inp(list, num) start clauses start:- consult("db.ddb"), readterm(list,length(list)), length_inp([], 0). length_inp([_|T], L) :- length_inp(T, L_T), L = L_T + 1. goal start, length_inp(_, L), write(L). Не знаю как связать базу данных и предикаты. Жду помощи. Заранее благодарен! |
Сообщ.
#75
,
|
|
|
Доброго времени суток!
Необходимо реализовать программу, реализующую предикат concat с помощью repeat-цикла. Сейчас есть что-то такое: concat(X, Y, Res) :- Res = X, repeat, concat_ext(X, Y, Res), !. concat_ext (X, [], Res). concat_ext (X, Y, [El | Res]) :- getLastElement(Y, YNew, El), fail. repeat. repeat :- repeat. Вот. concat_ext - совершает действия по объединению списков. Если возвращает true (собрали новый список полностью) - выполнение цикла прекращается. Если список не пуст, по идее, нужно отрезать у него крайний элемент, соединить со списомом Res и вернуть на уровень выше. Так до тех пор, пока список не станет пустым. Но теперь проблема: как в цикл вернуть список, у которого мы отрезали крайний элемент? Или я чего-то не понимаю, или ошибочно спроектировал программу. Везде примеры repeat-циклов, которые не возвращают значений, а только выполняют какие-либо действия (вроде - считать и распечатать). Прошу подсказать в чем проблема. Заранее спасибо! |