Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[13.58.150.59] |
|
Страницы: (7) [1] 2 3 ... 6 7 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
нужно решить таку задачу на Turbo Prolog 2.0:
1. Пусьть дано координати трех точек на плоскости. Если они могут бить вершинами треугольника, определити его вид (разносторонний, равнобедрений, равносторонний). Найдите длину его висот и напечатайте их в порядке убивания. 2. (с помощю рекурсии) зарание спасибо |
Сообщ.
#2
,
|
|
|
Задача №2.
В условии не определено значение функции при n=m=0. Поэтому задача не решается. Если доопределить C(0,0)=1, тогда вот программа predicates c(integer,integer,real) goal clearwindow, c(5,3,X), write(X). clauses c(N,0,1):- N>=0. c(N,M,0):- M>N, N>=0. c(N,M,R):- N1=N-1, M1=M-1, c(N1,M1,R1), c(N1,M,R2), R=R1+R2. |
Сообщ.
#3
,
|
|
|
Сообщ.
#4
,
|
|
|
predicates c(integer,integer,real) goal clearwindow, c(5,3,X), write(X). clauses c(N,0,1):- N>0. c(N,M,0):- M>N, N>=0. c(N,N,1):- N>=0. c(N,M,R):- N1=N-1, M1=M-1, c(N1,M1,R1), c(N1,M,R2), R=R1+R2. |
Сообщ.
#5
,
|
|
|
такая задача. нужно сделать на турбо пролог 2:
Пусть дано три числа. Если они могут бить длинами сторон треугольника опредилите его вид (прямоугольний, тупоугольний, остроугольний). Вичислите длину его висот и напичатайте их в порядке убивания. зарания спс. Добавлено 2. y=sin(x)+sin(sin(x))+...+sin(sin(sin...sin(x))) 3. пускай дано n - натуральное число, І. сколько цифр в числе? ІІ. Чему равна сума цефр в чесле. Пример: 23 - І. в числе 2 цифр. ІІ. сума цифр равна 5. зарания спс. |
Сообщ.
#6
,
|
|
|
Цитата 2. y=sin(x)+sin(sin(x))+...+sin(sin(sin...sin(x))) Константа n -количество слагаемых в сумме. constants n=3 predicates sum(integer,real,real,real) clauses sum(M,_,S,S):- M=n,!. sum(M,X,S,Sum):- M1=M+1, X1=sin(X), S1=S+X1, sum(M1,X1,S1,Sum). goal clearwindow, write("Input X="), readreal(X), X0=sin(X),S0=X0, sum(1,X0,S0,S), write(S),nl. Добавлено Цитата 3. пускай дано n - натуральное число, І. сколько цифр в числе? ІІ. Чему равна сума цефр в чесле. Пример: 23 - І. в числе 2 цифр. ІІ. сума цифр равна 5. predicates d(integer,integer,integer) clauses d(0,0,0):-!. d(X,C,S):- X1=X div 10, Y1=X-X1*10, %poslednja cifra d(X1,C1,S1), C=1+C1, S=Y1+S1. goal clearwindow, write("Input X="), readint(X), d(X,C,S), write(C," ",S),nl. |
Сообщ.
#7
,
|
|
|
Еще надо решить такие задачи в Turbo Prolog (тема: Списки):
21. Создайте предикат, вычисляющий по списку и числу, подсписок исходного списка, начинающийся с элемента с указанным номером. 39. Создайте предикат, формирующий список простых чисел, не превосходящих данного числа. |
Сообщ.
#8
,
|
|
|
Цитата 21. Создайте предикат, вычисляющий по списку и числу, подсписок исходного списка, начинающийся с элемента с указанным номером. domains list = integer* predicates sublist(integer,integer,list,list) clauses sublist(_,_,[],[]):-!. sublist(N,N,L,L):-!. sublist(M,N,[H|T],T1):- M<N, M1=M+1, sublist(M1,N,T,T1). goal write("N="), readint(N), write("L="), readterm(list,L), sublist(1,N,L,L1),write(L1),nl. |
Сообщ.
#9
,
|
|
|
Цитата 39. Создайте предикат, формирующий список простых чисел, не превосходящих данного числа. Предикат p формирует список целых чисел от 2 до N. Предикат prostoe возвращает успех (истину), если число является простым. Предикат d формирует список делителй числа N. domains list=integer* predicates p(integer,integer,list) prostoe(integer) d(integer,integer,list) clauses p(M,N,[]):- M>N,!. p(2,N,[2|T]):- p(3,N,T). p(M,N,[M|T]):- prostoe(M),!, M1=M+2, p(M1,N,T). p(M,N,L):- M1=M+2, p(M1,N,L). prostoe(N):- d(2,N,L), L=[N]. d(_,1,[]):-!. d(X,N,[X|T]):- N mod X=0,!, N1=N div X, d(X,N1,T). d(X,N,L):- X1=X+1, d(X1,N,L). goal clearwindow, write("Input N="), readint(N), p(2,N,L), write(L),nl. |
Сообщ.
#10
,
|
|
|
Здравствуйте!!!помогите пожалуйста написать программку в Turbo Prolog:
Определить предикат member(Element,List),который истинен,если число Element является элементом списка List.Например member(2,[3,2,5]) истинно (Ответ:Yes). |
Сообщ.
#11
,
|
|
|
http://www.intuit.ru/department/pl/plprolog/7/2.html
|
Сообщ.
#12
,
|
|
|
спасибо за ссылку))))))просто я совсем не понимаю что к чему((((,так что, извините... Как мне сделать вообще код всей этой проги,что бы всё работало?!плиз))))
хочется автомат по экз, который вообще не айс сдавать... |
Сообщ.
#13
,
|
|
|
Кристина, научить вас читать я не могу. Если вы никогда не открывали ТурбоПролог и не видели ни одной программы, то вам рано получать экзамен-автомат. В разделе полно готовых программ, работающих со списками целых чисел. Любая подойдёт к этой задаче.
Для тех кому не айс, функционирует раздел "Помощь студентам". Цитата Пример. Создадим предикат, позволяющий проверить принадлежность элемента списку. Предикат будет иметь два аргумента: первый — искомое значение, второй — список, в котором производится поиск. Построим данный предикат, опираясь на тот факт, что объект принадлежит списку, если он либо является первым элементом списка, либо элементом хвоста. Это может быть записано в виде двух предложений: member(X,[X|_]). /* X — первый элемент списка */ member(X,[_|T]) :– member(X,T). /* X принадлежит хвосту T*/ Заметим, что в первом случае (когда первый элемент списка совпадает с исходным элементом), нам неважно, какой у списка хвост, и можно в качестве хвоста указать анонимную переменную. Аналогично, во втором случае, если X принадлежит хвосту, нам не важно, какой элемент первый. Отметим, что описанный предикат можно использовать двояко: во-первых, конечно, для того, для чего мы его и создавали, т.е. для проверки, имеется ли в списке конкретное значение. Мы можем, например, поинтересоваться, принадлежит ли двойка списку [1, 2, 3]: member(2, [1, 2, 3]). Получим, естественно, ответ: "Yes". Подобным образом можно спросить, является ли число 4 элементом списка [1, 2, 3]: member(4, [1, 2, 3]). Ответом, конечно, будет "No". |
Сообщ.
#14
,
|
|
|
Спасибочки большое+) =) =) =) =)
|
Сообщ.
#15
,
|
|
|
а можете помочь мне с программой,очень надо
30. Создайте предикат, генерирующий все перестановки элементов списка, указанного в качестве первого аргумента предиката. 35. Создайте предикат, осуществляющий подсчет числа вхождений каждого элемента исходного списка. Ответом должен быть список пар, в которых первая компонента - элемент исходного списка, вторая - число его вхождений в первоначальный список. заранее благодарна |