Форум программистов, компьютерный форум CyberForum.ru

Работа с пролог кодом из среды С++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Описать рекурсивную функцию PowerN(X, N) http://www.cyberforum.ru/cpp-beginners/thread1187176.html
Описать рекурсивную функцию PowerN(X, N) вещественного типа, находящую значение N-й степени числа X по формулам: X 0 = 1, X N = (X N/2)2 при четных N > 0, X N = X·X N−1 при нечетных N > 0, X N = 1/X −N при N < 0 (X 턠= 0 — вещественное число, N — целое; в формуле для четных N долж- на использоваться операция целочисленного деления). С помощью этой функции найти значения X N для данного X...
C++ Алгоритм построения сбалансированного дерева Ребят очень очень нужна ваша помощь. Объясните алгоритм построения сбаланс дерева.. в инете кодов куча, но разобраться ни в одном не получается. кому не сложно распишите пож-та, повороты при добавлении, как это происходит, и тд заранее спасибо откликнувшимся) http://www.cyberforum.ru/cpp-beginners/thread1187174.html
Создание слова по буквам C++
Помогите пожалуйста , нужно написать программу которая будет создавать слово по буквах . Например : буква А - её позиция в слове 3 , буква О - позиция 1 и буква С - позиция 2 и чтобы получилось на выводе слово ОСА
C++ Найти минимальное подмножество ребер, удаление которых превращает заданный связный граф в несвязный
Найти минимальное (по количеству ребер) подмножество ребер, удаление которых превращает заданный связный граф в несвязный. Есть начало программы. Помогите пожалуйста до конца дописать. #include #include #include"lib.h" int p,A,d,Mark,R=0; int svyaz(int N,int A) { int i=0,j,k,u,l=0;
C++ Работа с потоком изменить кодировку http://www.cyberforum.ru/cpp-beginners/thread1187166.html
Здравствуйте! У меня такой вопрос: я создаю новый поток... как мне сделать так чтобы он использовал кодировку chcp 1251? мне нужно чтобы он выводил русские буквы вот код программы #include <windows.h> #include <stdio.h> void main() { STARTUPINFO si; // параметры запуска нового приложения PROCESS_INFORMATION pi; // информация о новом процесе
C++ Vector и Select SQLite Здравствуйте. Столкнулся с двумя проблемами и не знаю в чём дело. Есть метод класса: std::vector< std::vector<char*> > preSelect() { try { sqlite3_stmt *stmt; const char *query = "SELECT id, title FROM films"; подробнее

Показать сообщение отдельно
Infernotiv
0 / 0 / 1
Регистрация: 08.03.2014
Сообщений: 8
25.05.2014, 00:52     Работа с пролог кодом из среды С++
Добрый вечер.

Мне дали задание в университете реализовать работу с Prolog кодом из среды С++. И есть инструкция как с помощью Swi-Prolog и Microsoft Visual Studio это сделать, но у меня все равно ничего не выходит

Чего я добился:

1. Это написал автомат на языке пролог:
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
'переход'('закрыты','оА','А открыт').
'переход'('А открыт','зА','закрыты').
'переход'('закрыты','оВ','В открыт').
'переход'('В открыт','зВ','закрыты').
'переход'('А открыт','оВ','открыты').
'переход'('открыты','зВ','А открыт').
'переход'('В открыт','оА','открыты').
'переход'('открыты','зА','В открыт').
'начальное'('закрыты').
'допустимо'(State1,[C],State2) :- 'переход'(State1,C,State2).
'допустимо'(State1,[C|Chars],State2) :- 'переход'(State1,C,St11), 'допустимо'(St11,Chars,State2).
'допустимо'(Chain) :- 'начальное'(S1), 'допустимо'(S1,Chain,_).
2. Пытаюсь работать с этой программой из Microsoft Visual Studio, и тут у меня уже большие проблемы...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include "stdafx.h"
#include "stdio.h"
#include "swi-cpp.h"
#include "stdlib.h"
 
#include <iostream> 
using namespace std; 
 
int main()
{
    try{
        PlEngine prolog(argv[0]);
        // пример вопроса без переменных:
        if (PlCall("'допустимо'(['оA','оB','зA','зB'])") == TRUE)
            cout << "[оA,оB,зA,зB] допустимо";
        else
            cout << "[оA,оB,зA,зB] недопустимо";
        // пример вопроса с переменными: 'переход'('закрыты',A,B)
        PlTermv result(2);
        result[0]="'закрыты'";
        if (PlCall("'переход'",result) == TRUE)
            cout << "закрыты - " << (char)result[1] << " - " (char)result[2];
        else
            cout << "закрыты - нет переходов"; 
        }
    catch (PlException& E) {cerr << (char)E;}
}
Выполнял я все по инструкциям, подключил libpl.dll к проекту (добавив libpl.dll и libpl.lib в папку debug, а swi-cpp.h и swi-prolog.h в папку проекта, также в меню Проект - Свойства - Компановщик - Ввод - Дополнительные зависимости добавил путь к .lib файлу). Не знаю все ли я правильно сделал, но в интернете прочитал что нужно подключать так.

В итоге при компиляции моего проекта на С++ выходит 28 ошибок...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
1>------ Построение начато: проект: swiProlog, Конфигурация: Debug Win32 ------
1>Построение начато 25.05.2014 0:17:54.
1>InitializeBuildStatus:
1>  Обращение к "Debug\swiProlog.unsuccessfulbuild".
1>ClCompile:
1>  Для всех выходных данных обновления не требуется.
1>  swiProlog.cpp
1>c:\users\макс\documents\visual studio 2010\projects\swiprolog\swiprolog\swiprolog.cpp(3): warning C4627: #include "swi-cpp.h": пропущен при поиске использования предкомпилированного заголовка
1>          Добавление директивы в "StdAfx.h" или перестройка предкомпилированного заголовка
1>c:\users\макс\documents\visual studio 2010\projects\swiprolog\swiprolog\swiprolog.cpp(13): error C2065: PlEngine: необъявленный идентификатор
1>c:\users\макс\documents\visual studio 2010\projects\swiprolog\swiprolog\swiprolog.cpp(13): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "prolog"
1>c:\users\макс\documents\visual studio 2010\projects\swiprolog\swiprolog\swiprolog.cpp(13): error C2065: argv: необъявленный идентификатор
1>c:\users\макс\documents\visual studio 2010\projects\swiprolog\swiprolog\swiprolog.cpp(13): error C3861: prolog: идентификатор не найден
1>c:\users\макс\documents\visual studio 2010\projects\swiprolog\swiprolog\swiprolog.cpp(15): error C2065: TRUE: необъявленный идентификатор
1>c:\users\макс\documents\visual studio 2010\projects\swiprolog\swiprolog\swiprolog.cpp(15): error C3861: PlCall: идентификатор не найден
1>c:\users\макс\documents\visual studio 2010\projects\swiprolog\swiprolog\swiprolog.cpp(20): error C2065: PlTermv: необъявленный идентификатор
1>c:\users\макс\documents\visual studio 2010\projects\swiprolog\swiprolog\swiprolog.cpp(20): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "result"
1>c:\users\макс\documents\visual studio 2010\projects\swiprolog\swiprolog\swiprolog.cpp(20): error C3861: result: идентификатор не найден
1>c:\users\макс\documents\visual studio 2010\projects\swiprolog\swiprolog\swiprolog.cpp(21): error C2065: result: необъявленный идентификатор
1>c:\users\макс\documents\visual studio 2010\projects\swiprolog\swiprolog\swiprolog.cpp(22): error C2065: result: необъявленный идентификатор
1>c:\users\макс\documents\visual studio 2010\projects\swiprolog\swiprolog\swiprolog.cpp(22): error C2065: TRUE: необъявленный идентификатор
1>c:\users\макс\documents\visual studio 2010\projects\swiprolog\swiprolog\swiprolog.cpp(22): error C3861: PlCall: идентификатор не найден
1>c:\users\макс\documents\visual studio 2010\projects\swiprolog\swiprolog\swiprolog.cpp(23): error C2065: result: необъявленный идентификатор
1>c:\users\макс\documents\visual studio 2010\projects\swiprolog\swiprolog\swiprolog.cpp(23): error C2144: синтаксическая ошибка: перед "char" требуется ")"
1>c:\users\макс\documents\visual studio 2010\projects\swiprolog\swiprolog\swiprolog.cpp(23): error C2064: результатом вычисления фрагмента не является функция, принимающая 0 аргументов
1>c:\users\макс\documents\visual studio 2010\projects\swiprolog\swiprolog\swiprolog.cpp(23): error C2059: синтаксическая ошибка: )
1>c:\users\макс\documents\visual studio 2010\projects\swiprolog\swiprolog\swiprolog.cpp(27): error C2061: синтаксическая ошибка: идентификатор "PlException"
1>c:\users\макс\documents\visual studio 2010\projects\swiprolog\swiprolog\swiprolog.cpp(27): error C2310: в блоках catch должен быть указан один тип
1>c:\users\макс\documents\visual studio 2010\projects\swiprolog\swiprolog\swiprolog.cpp(27): error C2065: E: необъявленный идентификатор
1>c:\users\макс\documents\visual studio 2010\projects\swiprolog\swiprolog\swiprolog.cpp(28): error C2317: для блока try, начинающегося в строке 12, нет соответствующих блоков catch
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:01.07
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Как вообще правильно можно запустить программу на Prolog'е в С++ ? И объясните пожалуйста где мои ошибки.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru