![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 05.11.2009
Сообщений: 41
|
![]()
Может у кого найдется свободное время. В прологе ни в зуб ногой. пытался запускать на https://rextester.com/l/prolog однако это видимо Turbo prolog
Помогите с решением 1. Вычислить числа Фибоначчи без использования переменных N2 и F2. DOMAINS N = integer F = integer PREDICATES fib(integer,integer) CLAUSES fib(1,1) :- ! . fib(2,1) :- ! . fib(N,F) :- N1 = N - 1, fib(N1,F1), N2 = N - 2, fib(N2,F2), F = F1 + F2. 2. Вычислить факториал без использования отсечения. DOMAINS N = integer F = integer PREDICATES fact(integer,integer) CLAUSES fact(1,1) :- !. fact(N,F) :- N1 = N - 1, fact(N1, F1), F = N * F1. 3. Дана программа вывода цифр на экран в строку. Выполнить вывод цифр, каждую цифру с новой строки. DOMAINS N = integer PREDICATES write_number(integer) GOAL nl, write("This number: "), nl, write_number(0), nl. CLAUSES write_number(10). write_number(N) :- N < 10, write(N,' '), N1 = N + 1, write_number(N1). 4. Вычислить сумму цифр введенного числа c клавиатуры: PREDICATES summa(integer, integer) GOAL Y = 12345, summa(Y,X), write("Summa numeral ",Y,"= ",X) CLAUSES summa(X,Y) :- X<10, Y=X!. summa(X,Y) :- X1 = X div 10, summa(X1, Y1), Y = Y1 + X mod 10. 5. Решить задачу “Ремонт в Ханое”. Добавлено ограничение – нельзя перекладывать диски с 1–го стержня на 3-ий. DOMAINS loc = left ; mid ; right PREDICATES hanoi(integer) move(integer, loc, loc, loc) inform( loc, loc ) GOAL hanoi(3). CLAUSES hanoi(N) :- move( N, left, mid, right). move( 1, A, _ , C) :- inform(A,C), !. move( N, A, B, C) :- N1 = N - 1, move( N1, A, C, B), inform( A, C), move( N1, B, A, C). inform(Loc1, Loc2) :- nl, write("Disk c ", Loc1, " -> ", Loc2). 6. Отладить программу, решающую логическую задачу «В велосипедных гонках три первых места заняли Алеша, Петя и Коля. Какое место занял каждый из них, если Петя занял не второе и не третье место, а Коля – не третье?» PREDICATES name(symbol) mesto(symbol) prizer(symbol,symbol) solution(symbol,symbol,symbol,symbo l,symbol,symbol) CLAUSES name(alex). name(pier). name(nike). mesto(odin). mesto(dva). mesto(tri). prizer(X,Y) :- name(X), mesto(Y), X = pier, not ( Y = dva ), not(Y = tri); name(X), mesto(Y), X = nike, not(Y = tri); name(X), mesto(Y), not(X=pier), not(X=nike). solution(X1,Y1,X2,Y2,X3,Y3) :- name(X1),name(X2),name(X3), prizer(X2,Y2), prizer(X3,Y3), Y1 <> Y2, Y2 <> Y3, Y1 <> Y3, X1 <> X2, X2 <> X3, X1 <> X3, !. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
помогите пожалуйста перенести программу написанную в Prolog в Strawberry prolog | Олямбан | Помощь студентам | 1 | 14.11.2015 19:51 |
SWI prolog и Visual prolog поиск маршрута | Екатерина 123 | Помощь студентам | 0 | 27.08.2015 19:42 |
Prolog | hilos | Помощь студентам | 0 | 16.06.2013 19:40 |
prolog | Onni | Помощь студентам | 6 | 07.01.2013 22:27 |
Prolog | @Katushka@ | Помощь студентам | 0 | 03.10.2009 22:44 |