Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Prolog
Перезагрузить страницу Visual Prolog 7.0 help!
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
sherlock2003 sherlock2003 вне форума
Новичок
 
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 19.12.2006
По умолчанию 19.12.2006, 20:45

Привет всем.

Кто знает, как создать самую простую программу на Visual Prolog 7.0? Сначала
хотя бы чтобы было пустое окно, а затем просто добавляешь код из файла .pro (уже написанный)?

Помогите плиз!

Как КОМПИЛИРОВАТЬ?

Пытаюсь сделать build - он долго все компилирует - и в результате файл занимает около 1, 42 МБ.
Мне такой не нужен. Нужен самый простой.

Где эти все файлы должны лежать и почему возникает ошибка, если вставить код из чужого файла .pro

Спасибо!
Ответить с цитированием
  (#2 (permalink)) Старый
Alison Alison вне форума
Member
 
Сообщений: 4,771
Сказал(а) спасибо: 0
Поблагодарили 119 раз(а) в 116 сообщениях
Регистрация: 17.11.2004
По умолчанию 19.12.2006, 22:06

Пройдитесь по ссылкам:
http://www.visual-prolog.com/vip6/Tu...09/default.htm
http://www.hardforum.ru/t71057
http://www.hardforum.ru/t55148
Там описаны первые шаги.
Ответить с цитированием
  (#3 (permalink)) Старый
sherlock2003 sherlock2003 вне форума
Новичок
 
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 19.12.2006
По умолчанию 20.12.2006, 16:51

Пробую написать write("..."), при компиляции пишет undeclared identifier write /1

В чем дело?
Ответить с цитированием
  (#4 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 7,909
Сказал(а) спасибо: 2
Поблагодарили 297 раз(а) в 297 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 20.12.2006, 19:40

Приведите полный исходник. Тогда можно грамотно ответить.
Ответить с цитированием
  (#5 (permalink)) Старый
sherlock2003 sherlock2003 вне форума
Новичок
 
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 19.12.2006
По умолчанию 20.12.2006, 19:45

Код:
/*****************************************************************************

                        Copyright © Unregistered

******************************************************************************/

implement sen_An
    open core

constants
    className = "sen_An".
    classVersion = "".

clauses
    classInfo(className, classVersion).

clauses
    run():-
        write (Holmes),
                TaskWindow = taskWindow::new(),
        TaskWindow:show().
end implement sen_An

goal
       mainExe::run(sen_An::run).
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
Alison Alison вне форума
Member
 
Сообщений: 4,771
Сказал(а) спасибо: 0
Поблагодарили 119 раз(а) в 116 сообщениях
Регистрация: 17.11.2004
По умолчанию 20.12.2006, 22:18

Сначала Вы пишете про самую простую программу. А сами сразу создаете gui-проект, а не консольный. Но в этом проекте у Вас ничего нет. Все это не слишком понятно.
Раз вы хотите в своем приложении просто вывести строку (значения переменной Holmes у Вас почему-то нет), то проще всего ее вывести так.
Найдите в файле TaskWindow.pro определение предиката onShow:
Код:
    onShow(_, _CreationData):-
        _MessageForm = messageForm::display(This).
и замените его на следующее предложение:
Код:
    onShow(_, _CreationData):-
        _MessageForm = messageForm::display(This),
        Holmes="Hello World!",
        stdio::write(Holmes).
Теперь в окне Messages Вашего приложения будет написано:
Hello World!
Ответить с цитированием
  (#7 (permalink)) Старый
sherlock2003 sherlock2003 вне форума
Новичок
 
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 19.12.2006
По умолчанию 20.12.2006, 23:04

Спасибо, я уже попробовал с помощью примеров разобраться, хотя там не совсем то.

А вот чем отличается этот gui - проект от консольного?

У меня, кстати, файл exe большой - 1,4 Мб. и довольно долго
компилирует. Как можно проще?

Как сделать простое обращение к БД, например, задаешь вопрос и она ищет в БД по заданному слову какое-нибудь предложение?
Ответить с цитированием
  (#8 (permalink)) Старый
Alison Alison вне форума
Member
 
Сообщений: 4,771
Сказал(а) спасибо: 0
Поблагодарили 119 раз(а) в 116 сообщениях
Регистрация: 17.11.2004
По умолчанию 20.12.2006, 23:31

Цитата:
Спасибо, я уже попробовал с помощью примеров разобраться, хотя там не совсем то.

А вот чем отличается этот gui - проект от консольного?
Начните все-таки с внимательного изучения Tutorials.
Попробуйте создать консольное приложение. Это приложение без gui.
В приведенных выше ссылках подробно описано, как это сделать. И вообще, для изучения основ программирования на Visual Prolog лучше использовать консольные приложения.
Цитата:
У меня, кстати, файл exe большой - 1,4 Мб. и довольно долго компилирует. Как можно проще?
У меня еще больше, особенно с dll. Проще поначалу без gui.
Цитата:
Как сделать простое обращение к БД, например, задаешь вопрос и она ищет в БД по заданному слову какое-нибудь предложение?
И в чем проблема? Опишите подробнее и конкретнее.
Ответить с цитированием
  (#9 (permalink)) Старый
sherlock2003 sherlock2003 вне форума
Новичок
 
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 19.12.2006
По умолчанию 20.12.2006, 23:45

В общем, я пока что получайник, а мне нужно срочно написать 2 программы. Очень прошу помочь. Вот код анализатора предложений (СМ. НИЖЕ):

Что означает в нем s_sentence(TOKL,TOKL2,sent(NOUNP,VERBP)):-
s_nounp(TOKL,TOKL1,NOUNP),
s_verbp(TOKL1,TOKL2,VERBP),
TOKL2 = [] ,!. Это типа процедуры? Что означают аргументы?

%Parser - то, что далее - это комментарий или нет? (nondeterm s_determ( TOKL, TOKL, DETERM ) и т.д.)

А что означает tokl(STR,[TOK|TOKL]) :-
fronttoken(STR,TOK,STR1),
check(TOK),!,
tokl(STR1,TOKL).
tokl(_,[]).

Спасибо!
-----------------------НАЧАЛО КОДА


Source Code for Semantic analyzer
Код:
GLOBAL DATABASE
  det( STRING )
  noun( STRING )
  rel( STRING )
  verb( STRING )

DOMAINS
  DETERM   = none; determ( STRING )
  NOUNP    = nounp( DETERM, STRING, RELCL)
  RELCL    = none; relcl( STRING, VERBP )
  SENTENCE = sent( NOUNP, VERBP )
  VERBP    = verb( STRING ); verbp( STRING, NOUNP )
  TOKL     = STRING*

PREDICATES
% Recognition of words in different forms
  is_det( STRING )
  is_noun( STRING )
  is_rel( STRING )
  is_verb( STRING )

% Parser
  nondeterm s_determ(   TOKL, TOKL, DETERM )
  nondeterm s_nounp(    TOKL, TOKL, NOUNP )
  nondeterm s_relcl(    TOKL, TOKL, RELCL )
  nondeterm s_sentence( TOKL, TOKL, SENTENCE )
  nondeterm s_verbp(    TOKL, TOKL, VERBP )

% scanner
  check(STRING)
  tokl( STRING, TOKL )

GOAL
    consult("sen_an.dba"),
    write("Try: every man that lives loves a woman\n"),
    write("Write a sentence: "),
    readln(STR),
    tokl(STR,TOKL),
    s_sentence( TOKL, RESTTOKL, SENT ),
    RESTTOKL = [],
    write(SENT).

CLAUSES

s_sentence(TOKL,TOKL2,sent(NOUNP,VERBP)):-
    s_nounp(TOKL,TOKL1,NOUNP),
    s_verbp(TOKL1,TOKL2,VERBP),
    TOKL2 = [] ,!.
s_sentence(_,_,_):-
    write(">> Sentence not recognized\n"),fail.

s_nounp(TOKL,TOKL2,nounp(DETERM,NOUN,RELCL)):-
    s_determ(TOKL,[NOUN|TOKL1],DETERM),
    is_noun(NOUN),
    s_relcl(TOKL1,TOKL2,RELCL).

s_determ([DETERM|TOKL],TOKL,determ(DETERM)):-
    is_det(DETERM).
s_determ(TOKL,TOKL,none).

s_relcl([REL|TOKL],TOKL1,relcl(REL,VERBP)):-
    is_rel(REL),
    s_verbp(TOKL,TOKL1,VERBP).
s_relcl(TOKL,TOKL,none).

s_verbp([VERB|TOKL],TOKL1,verbp(VERB,NOUNP)):-
    is_verb(VERB),
    s_nounp(TOKL,TOKL1,NOUNP).
s_verbp([VERB|TOKL],TOKL,verb(VERB)):-
    is_verb(VERB).

is_noun(X):-noun(X),!.
is_noun(X):-noun(Y),concat(Y,"s",X),!.

is_det(X):-det(X),!.

is_rel(X):-rel(X),!.

is_verb(X):-verb(X),!.
is_verb(X):-verb(Y),concat(Y,"s",X),!.
is_verb(X):-verb(Y),concat(Y,"ed",X),!.
is_verb(X):-verb(Y),concat(Y,"es",X),!.
is_verb(X):-verb(Y),concat(Y,"ing",X),!.

tokl(STR,[TOK|TOKL]) :-
    fronttoken(STR,TOK,STR1),
    check(TOK),!,
    tokl(STR1,TOKL).
tokl(_,[]).

check(WORD):-is_noun(WORD),!.
check(WORD):-is_det(WORD),!.
check(WORD):-is_rel(WORD),!.
check(WORD):-is_verb(WORD),!.
check(WORD):- write(">> Unknown word: ",WORD),nl.
Ответить с цитированием
  (#10 (permalink)) Старый
Alison Alison вне форума
Member
 
Сообщений: 4,771
Сказал(а) спасибо: 0
Поблагодарили 119 раз(а) в 116 сообщениях
Регистрация: 17.11.2004
По умолчанию 20.12.2006, 23:54

А причем здесь VIP7?
Вы (ваша группа) семестр изучали VIP7, но Вы почему-то не знаете, с какой стороны к нему подойти?
Или Вы изучали что-то другое, а у Вас вдруг начали спрашивать программы на VIP7?
В последнее я не верю.
Или что-то еще?
Ответить с цитированием
  (#11 (permalink)) Старый
sherlock2003 sherlock2003 вне форума
Новичок
 
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 19.12.2006
По умолчанию 21.12.2006, 00:16

Ну да, вроде нужно делать в нем, т.е. рекомендуют в нем, но я его почти не изучал, а программы пришлось делать. Я только недавно начал разбираться. Может, есть попроще компилятор? Хотя сейчас мне главное просто немного изменить код программы, чтобы она что-то новое начала делать

Вопрос еще такой: у меня есть код такого типа, как из него быстро сделать exe? какие нужны файлы, обязательно ли переписывать куда-то и базу данных куда?

Вопрос еще такой: у меня есть код такого типа, как из него быстро сделать exe? какие нужны файлы, обязательно ли переписывать куда-то и базу данных куда?
Ответить с цитированием
  (#12 (permalink)) Старый
Alison Alison вне форума
Member
 
Сообщений: 4,771
Сказал(а) спасибо: 0
Поблагодарили 119 раз(а) в 116 сообщениях
Регистрация: 17.11.2004
По умолчанию 21.12.2006, 11:55

Цитата:
обязательно ли переписывать куда-то и базу данных куда?
А где она сейчас?
В VIP52/Examples есть готовый проект sen_an.
Ответить с цитированием
Ads
  (#13 (permalink)) Старый
sherlock2003 sherlock2003 вне форума
Новичок
 
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 19.12.2006
По умолчанию 21.12.2006, 12:04

бд и все файлы просто в отдельной директории, м.б. нужно там, где пролог.

Если нетрудно, напишите все, что нужно сделать, если есть код файла .pro

так, чтобы сделалось exe-файл.

обычно уже есть вначале какой-то код - что с ним делать?
Ответить с цитированием
  (#14 (permalink)) Старый
Alison Alison вне форума
Member
 
Сообщений: 4,771
Сказал(а) спасибо: 0
Поблагодарили 119 раз(а) в 116 сообщениях
Регистрация: 17.11.2004
По умолчанию 22.12.2006, 13:42

Создайте проект Easywin.
Файлы с БД поместите в папку Exe.
Содержание файла .pro замените содержанием Вашего файла .pro или подключите свой файл с помощью include.
Раздел goal должен быть только один в проекте. Сама цель должна быть процедурой. Значения переменных, в отличие от TestGoal, нужно выводить явно с помощью write.

Речь идет, конечно, о VIP 5.2, т.к. уже выяснили, что VIP 7.0 здесь ни при чем.
Ответить с цитированием
  (#15 (permalink)) Старый
sherlock2003 sherlock2003 вне форума
Новичок
 
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 19.12.2006
По умолчанию 22.12.2006, 16:39

Не совсем понял, почему нельзя в 7.0, ведь это новее версия. Могу скачать и 5.2, если он есть у них на сайте.

Не знаете, почему в 7.0 появляется ошибка syntax error:

facts senan_db
det (string), /* вот здесь
noun (string)

etc.

А если это стереть, то в следующей. Я же скопировал их код!
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Visual Prolog ikoryakin Prolog 12 25.05.2014 13:10
Перенос программ из {TurboProlog.....Visual Prolog 5.2} в Visual Prolog 7 imported_Jenny_ Prolog 30 25.03.2013 19:15
visual prolog 5 seadevil Prolog 3 19.11.2011 21:49
код из turbo prolog в visual prolog posleg Prolog 4 13.06.2011 00:33
Visual Prolog 5.2 yJIaJIa Prolog 1 06.06.2011 15:54
Экспертная система на pdc prolog или visual prolog Anton7 Prolog 8 12.05.2011 13:39
Visual Prolog 7-7.3 Светочка Prolog 9 11.05.2011 15:29
Помогите переделать задачу из Turbo Prolog в Visual Prolog 5 imported_Anneta Prolog 3 23.12.2010 22:59
dll в visual prolog 5.2 kapo Prolog 1 17.06.2010 10:47
Visual Prolog <--> ISO-Prolog z556 Prolog 33 25.12.2009 09:55
Кто возьмется переписать маленькую программу с Turbo Prolog на Visual Prolog 5.0 (за плату) olik567 Prolog 4 07.10.2009 17:46
Кто возьмется переписать маленькую программу с Turbo Prolog на Visual Prolog 5.0 (за плату) Игоревна Задания за деньги 16 04.01.2008 17:20



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов