Вопросы с меткой [prolog]

Пролог (англ. Prolog) — язык и система логического программирования, основанные на языке предикатов математической логики дизъюнктов Хорна, представляющей собой подмножество логики предикатов первого порядка.

Фильтрация
Сортировка
Метки
0 голосов
1 ответ
79 показов

Сложить дни летних месяцев

Дано 12 фактов. Необходимо найти сумму летних дней (92 должно получится) месяц(1,январь,31). месяц(2,февраль,29). месяц(3,март,31). месяц(4,апрель,30). месяц(5,май,31). месяц(6,июнь,30). месяц(7,июль,...
Naik's user avatar
  • 51
0 голосов
0 ответов
28 показов

Считывание чисел из файла в Turbo Prolog 2.0

Есть ли возможность считать числа из файла в Turbo Prolog 2.0, если они записаны в строку? При использовании readint происходит переход на новую строку.
Александр's user avatar
0 голосов
0 ответов
32 показа

Выводит не список, в котором удаляются повторяющиеся элементы, а исходный. Strawberry Prolog, не SWI Prolog

Вот сама программа remove_duplicates([], []):-!. remove_duplicates([X|Xs], Ys):- member(X, Xs), !, remove_duplicates(Xs, Ys). remove_duplicates([X|Xs], [X|Ys]):- not(member(X, Xs)), !, ...
beardile's user avatar
0 голосов
1 ответ
85 показов

Ошибка при компиляции кода на Prolog в онлайн компиляторе

Код: predicates nondeterm object3(list,list,string) clauses Object3(I,O,sentence):- Object3(I,R,noun_group), Object3(R,O,verb_group). Object3(I,O,verb_group):- Object3(I,R,verb), Object3(R,O,...
Fury's user avatar
  • 11
0 голосов
0 ответов
92 показа

Prolog разбить список на N подсписков

Помогите с реализацией, нужно разбить список на N подсписков(частей), записывая в эти подсписки элементы поочередно. То есть, нужно задать список чисел , например, [0,1,2,3,4,5,6,7] и N, например, N=2....
Maks's user avatar
  • 1
4 голоса
0 ответов
226 показов

Считывать данные из подпроцесса в консоли Python в переменную

Всем добрый день. Подскажите, как можно решить такую проблему: У меня есть Python - файл, из которого запускается Prolog - файл. Данный Prolog - файл взаимодействует с пользователем в формате вопрос - ...
CameL's user avatar
  • 1,427
0 голосов
1 ответ
85 показов

Передать список (list) из Python в Prolog PySwip

Я пишу программу использую Prolog и Python, используя библиотеку PySwip. Мне необходимо передать список из Python в Prolog. На данный момент я сделал это так: from pyswip import Prolog p = Prolog() p....
CameL's user avatar
  • 1,427
1 голос
0 ответов
51 показ

Prolog избежать одинаковых вопросов пользователю

Всем привет, разрабатываю небольшую экспертную систему на языке SWI - Prolog. Столкнулся с таким вопросом. У меня есть набор фактов, а также is_true, и is_false, которые задаются пользователем animal(...
CameL's user avatar
  • 1,427
1 голос
0 ответов
35 показов

Считывания строк с файла в Прологе

Как считать с файла все строки? По заданию нужно реализовать подсчет слов в каждой строке и вывести в формате: строка N содержит М слов. Как это можно сделать? Есть наработка, как ее улучшить и почему ...
Марьяна's user avatar
0 голосов
1 ответ
143 показа

Генеалогическое дерево на языке Пролог

Проблема в следующем: я вызываю правило son, чтобы найти его родителей, но программа почему-то выдает каждого по два раза. Как это исправить? predicates nondeterm parent(symbol, symbol) ...
Алексей Гросс's user avatar
1 голос
1 ответ
138 показов

Реализация минимакса для игры

Есть такая задача про сложение цифр до заданного числа, где каждый по очереди игрок называет число из списка, которое после добавляется к общей сумме и если один из игроков в сумме получил заданное в ...
vados inferno's user avatar
0 голосов
1 ответ
36 показов

Задача на автоматы Prolog

Мне нужно написать предикат, который проверяет принимает ли конечный детерминированный автомат слово длины k(в моем случае number). Если да - возвращает первое слово, если нет - false. Написал вот ...
user435351's user avatar
0 голосов
1 ответ
50 показов

Автоматы на прологе

Как найти слово длины k которое принимает недетерминированный конечный автомат в прологе(если их много, достаточно будет одного)? Автомат записываю вот так: states([q0, q1, q2]). symbols([a, b]). ...
user435351's user avatar
1 голос
0 ответов
67 показов

Prolog удалить уникальные value в листе

Задача - удалить элементы листа, которые являются уникальными. Я написал предикат, который берет из листа те значение, у которых количество повторений в листе > 1. Проблема в том, что после ...
user435351's user avatar
1 голос
0 ответов
36 показов

Скрестить два списка

Дано 2 списка чётной длины. Как сделать список, состоящий из второй половины первого списка и первой половины второго?
Галахад Озерный's user avatar
1 голос
1 ответ
234 показа

Переписать содержимое файла в строку(или список). На SWI-Prolog

readFile(Path):- open(Path, read, Stream), get_char(Stream, Char1), process_the_stream(Char1, Stream), close(Stream). process_the_stream(end_of_file, _):-!. process_the_stream(Char, ...
Rylexium's user avatar
1 голос
1 ответ
117 показов

уничтожение уровней в списках Prolog

Нужна помощь с написание предикатов на Prolog Предикат destlev1 для уничтожения уровней в списке. Пример: исходный список [a,[b,[c]]], результирующий список [a,b,c]. Предикат destlev2 для уничтожения ...
porcupine.mp4's user avatar
1 голос
1 ответ
612 показов

Найти коэффициенты кубического сплайна на Turbo Prolog 2.0 при помощи метода Гаусса

Задача от преподавателя: найти коэффициенты кубического сплайна (cubic spline) на Turbo Prolog 2.0 при помощи метода Гаусса (Gaussian elimination with back substitution) — сделать простую программу, ...
user51515151's user avatar
0 голосов
1 ответ
127 показов

Как правильно обратиться к функции в Пролог, чтобы она вернула ответ?

Как правильно обратиться к этой функции купил_путёвку(x,y), чтобы она вернула ответ, например отвела точно на такой вопрос, где Иван или Петя купили путёвку, я пытаюсь обратится следующем образом ...
Сергей Александров's user avatar
2 голоса
1 ответ
505 показов

Prolog пересечение двух списков

Задание: Даны два списка.Занести элементы из первого списка в результирующий, если он однократно содержится во втором. Если элемент отсутствует во втором списке или содержится два или более раз, то в ...
SaluteUp's user avatar
2 голоса
0 ответов
109 показов

Нужно получить все комбинации множества длинной N Prolog

Задача: Построить все сочетания по n элементов заданного множества. Пример: ?-comb(2, [1, 2, 3], X). X = [[1, 2], [1, 3], [2, 3]]. Написал такие процедуры: comb(0, _, [[]]). comb(N, [X|T], [X|...
Al_Rez's user avatar
  • 23
1 голос
1 ответ
90 показов

Цвет фигур в Swi-Prolog

Пишу программу с окном и созданием Квадрата и Элипса :- use_module(library(pce)). start:-new(DW,dialog('Окно моей программы')),new(Picture,picture), send(Picture,width(350)), send(Picture, height(350)...
Develic's user avatar
  • 43
1 голос
1 ответ
83 показа

Как создать предикат?

Не получается создать предикат, удаляющий из списка все элементы с четных позиций. Есть у кого-то какие-то идеи?
iBullRay's user avatar
1 голос
1 ответ
322 показа

Работа с графикой в Swi-Prolog

Всем привет, я снова с глупым вопросом по Swi-prolog. В чём суть - у меня есть файл, с которого я должен отталкиваться для вывода картинки на экран. % draw(+Size) % draws a graphics with a given Size ...
Sergei Zhilinski's user avatar
0 голосов
1 ответ
71 показ

Использование математических операторов как элемент списка в Prolog

Всем привет. Изучаю пролог и столкнулся со следующей проблемой: необходимо написать предикат, преобразующий арифметическую запись в инфиксную нотацию. Т.е.: ?- infix2prefix(a*2+3,L), infix2prefix(E,L)...
Sergei Zhilinski's user avatar
1 голос
1 ответ
81 показ

Как реализовать иерархическое отношение для двух любых представителей рода?

Задание: Создать запрос к базе данных, который выдает иерархическое отношение для двух любых представителей рода (то есть. выясняется, кто является предком, а кто - потомком). База данных: ...
GOOse's user avatar
  • 11
0 голосов
1 ответ
39 показов

Примитивное вычисление зависимостей между Linux-пакетами

Подскажите как реализовать вывод зависимостей между пакетами, выводя их в необходимом порядке сборки с учетом зависимостей: сначала пакет который ни от чего не зависит, затем пакет, которые его ...
Dmitry Ponyatov's user avatar
0 голосов
1 ответ
116 показов

Определить количество предков

Вот пример программы, определяющей всех предков у какого-либо потомка father(andy,bob). father(bob,carl). father(carl,dan). father(dan,elon). father(elon,fred). predecessor(X, Z) :- father(X, Z). ...
demsee's user avatar
  • 13
1 голос
0 ответов
209 показов

Логическая задач "Определить фамилии друзей"?

В спортивный лагерь приехали три друга: Миша, Володя и Петя. Известно, что каждый из них имеет одну из фамилий: Иванов, Семенов, Герасимов. Миша не Герасимов, отец Володи инженер. Володя учится в 6 ...
demsee's user avatar
  • 13
1 голос
1 ответ
328 показов

Prolog. Сортировка списка в диапазоне от K до M

День добрый. Возник вопрос по решению данной задачи по языку Prolog: Применить сортировку выбором к элементам простого числового списка, начиная с k-го индекса и заканчивая m-ым. Саму сортировку ...
FatherAntelope's user avatar
0 голосов
1 ответ
735 показов

Prolog. Сравнение двух списков

Всем привет, начну сразу с задания. Звучит оно так: l1, l2 - списки, элементами которых являются атомы. Выяснить, содержит ли список l1 все элементы из списка l2 (только одно вхождение). ...
FatherAntelope's user avatar
0 голосов
1 ответ
642 показа

Prolog.Объединить два списка по условию

Нужно все нечётные и превышающие заданное число значения из второго списка добавить в первый. Я сделал так: add_to_list(L, X, [X|L]). isEven(X):- 1 is X mod 2. add_even(_, [], _, _). add_even(...
Виктор Титов's user avatar
0 голосов
1 ответ
226 показов

Задача про списки на прологе

Для двух заданных множеств проверить, что каждый нечётный элемент первого списка содержится во втором списике и каждый чётный элемент воторого не содержится в первом. Не могу понять почему мой код не ...
Виктор Титов's user avatar
0 голосов
1 ответ
41 показ

Как написать анализатор строки на prolog?

Есть строка-правило, например: "Если шея = длинная, и кожа = пятна, то животное = жираф.". Как реализовать из такой строчки правила вида: animal(жираф, [длинная,пятна]). И чтобы я к нему обратился так:...
Руслан Кадыров's user avatar
1 голос
1 ответ
2k показов

Ошибка - Singleton variables

Есть логическая задача: Три дочери писательницы Дорис Кей — Джуди, Айрис и Линда, тоже очень талантливы. Они приобрели известность в разных видах искусств — пении, балете и кино. Все они живут в ...
user avatar
0 голосов
1 ответ
30 показов

Как в прологе правильно описать логический вентиль?

Логический вентиль можно было бы описать таким образом: pred_or(1, 1). pred_or(1, 0). pred_or(0, 1). И аналогично остальные предикаты. Но, возможно, есть более правильный способ, чтобы указать ...
zcorvid's user avatar
  • 2,947
0 голосов
0 ответов
173 показа

Логическая задача про животных Turbo Prolog

Задана база знаний «Животные»: Живой - пес. Рекс - собака. Белка - кошка. Быстрый - лошадь. Живой - черный. Белка - белая. Рекс - рыжий. Быстрый - белый. Домашние животные - собака или кошка. Животные ...
user avatar
0 голосов
0 ответов
47 показов

Cannot represent due to `character_code'

Мой код: parent(pamela, bob). parent(tom, bob). parent(tom, liz). parent(bob, ann). parent(bob, patricia). parent(patricia, jim). ancestor(X, Y) :- parent(X, Y); ancestor(X, Z), parent(Z, Y). ...
zcorvid's user avatar
  • 2,947
0 голосов
1 ответ
21 показ

ERROR: Out of local stack

Мой код: parent(pamela, bob). parent(tom, bob). parent(tom, liz). parent(bob, ann). parent(bob, patricia). parent(patricia, jim). ancestor(X, Y) :- parent(X, Y); ancestor(X, Z), parent(Z, Y). % ...
zcorvid's user avatar
  • 2,947
1 голос
2 ответа
2k показов

Как сделать, чтобы при запросе выдавались все ответы, а не только один?

Мой код: parent(pamela, bob). parent(tom, bob). parent(tom, liz). parent(bob, ann). parent(bob, patricia). parent(patricia, jim). grandparent(X, Y) :- parent(X, Z), parent(Z, Y). % Кто прародители ...
zcorvid's user avatar
  • 2,947
0 голосов
1 ответ
136 показов

Не получается выполнить запрос в программе на Прологе

Написал такую конструкцию (в онлайн трансляторе ссылка): parent(Maria, Daria). query1() :- parent(Maria, Daria) ? query1(). И ничего не выводится. Как сделать так, чтобы результат запроса был ...
zcorvid's user avatar
  • 2,947
0 голосов
1 ответ
86 показов

Warning: Singleton variables

Подскажите, попробовал в онлайн трансляторе пролога (https://rextester.com/l/prolog_online_compiler) записать факт, как в туториалах описано: parent(Maria, Daria). Получил Warning: Warning: ...
zcorvid's user avatar
  • 2,947
1 голос
1 ответ
120 показов

PROLOG. Помогите решить задачу

Есть задача: "Расстановка мебели". Площадь разделена на шесть квадратов, пять из них заняты мебелью, шестой - свободен. Переставить мебель так, чтобы шкаф и кресло поменялись местами, при этом ...
Alrott SlimRG's user avatar
0 голосов
1 ответ
158 показов

Задача о расстановки королей на шахматной доске

Вообщем есть задача о расстановки королей, чтоб никто не бил друг друга. Аналог знаменитой о 8 ферзях. Я вроде сделал, но думаю, что-то не так с поиском. Список из 16 элементов, потому, что максимум ...
Alexander Vlasov's user avatar
0 голосов
1 ответ
314 показов

Prolog. Вычисление числа вхождения 1го элемента на основе стандартных предикатов обработки списков

Собственно вот код, к которому нужно это реализовать: % % Задание 3. % % Длина списка % length_new([], 0). length_new([_ | A], B):- length_new(A, C), B is C + 1. % Принадлежность к ...
Alrott SlimRG's user avatar
5 голосов
1 ответ
119 показов

Обнаружить StackOverflowError в других потоках

Я делаю интерпретатор языка Prolog. Язык основан на рекурсии, и неправильно написанные программы часто приводят к переполнению стека. Когда запускал свой интерпретатор из приложения JavaFX я заметил, ...
Maxim Falaleev's user avatar
1 голос
1 ответ
287 показов

Строка символов в Прологе

Мной написана программа осуществляющая подсчёт латинских символов на языке Prolog, ниже привожу её код: domains stroka=string predicates nondeterm check(char). inc(char,integer). nondeterm ...
Герасимов Станислав's user avatar
0 голосов
1 ответ
210 показов

Определить знак зодиака prolog

Как я понял мне надо задать правила типо: знак(овен,21,март). знак(овен,22,март). знак(овен,23,март). знак(овен,24,март). знак(овен,25,март). знак(овен,26,март). знак(овен,27,март). знак(овен,28,март)...
Anton's user avatar
  • 61
0 голосов
1 ответ
1k показов

Вычислить сумму ряда в Prolog

Программа должна спрашивать в пользователя: N - количество членов ряда, X - значение переменной. Вычислить сумму ряда с заданной точностью. Все что удалось сделать, так это посчитать факториал и ...
Vladyslav Kuhivchak's user avatar
2 голоса
1 ответ
295 показов

Задача на SWI-Prolog

Есть задача под названием 100. Смысл в ней такой: Имея последовательность 1,2,3,4,5,6,7,8,9 нужно поставить между ними 3 знака + или -, так чтобы получилось 100. Собственно я предполагаю, что ...
vados inferno's user avatar