С Новым годом! Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
5 / 5 / 5
Регистрация: 20.04.2015
Сообщений: 196

Объясните что к чему

10.04.2018, 10:40. Показов 2026. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Объясните как запустить файл .pro через visual prolog 5.2. вот прям с нуля если можно какие действия нужны.

Есть файлы .pro мне нужно их просто запустить чтобы всё работало. Как это сделать?

P.S. это мне нужно чтобы тупо сдать и забыть про всё это. Всем заранее спасибо!


Prolog
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
DOMAINS
 manufactor=string
 model=string
 type=string
 oblast=string
 os=android;windows;ios
 program=string
 chip=string
 diagonal=real
 gabarit=integer
 price=integer
 Item=navigator(manufactor,model,type,oblast,os,program,chip,diagonal,gabarit,price)
 
FACTS
 product(Item)
 
PREDICATES
 string win_os(os)
 determ printAll
 determ print(item)
 determ menu
 nondeterm choice(integer) - (i)
 nondeterm findByManufactor(manufactor, item) - (i,o)
 nondeterm findByModel(model, item) - (i,o)
 nondeterm findByType(type, item) - (i,o)
 nondeterm findByOblast(oblast, item) - (i,o)
 nondeterm findByOs(os, item) - (i,o)  
 nondeterm findByProgram(program, item) - (i,o)
 nondeterm findBychipChip(chip, item) - (i,o)
 nondeterm findByDiagonal(diagonal, diagonal, item) - (i,i,o)
 nondeterm findByGabarit(gabarit,gabarit, item) - (i,i,o)
 nondeterm findByPrice(price, price, item) - (i,i,o)
 os parseOs(string) 
 determ match(string, string) - (i,i)
 determ header
 
CLAUSES
 
 menu:- nl,write("1-Напечатать все"), nl,
        write("2-Поиск по Производителю"), nl,
        write("3-Поиск по Модели"), nl,
        write("4-Поиск по Типу модели"), nl,
        write("5-Поиск по Области пременения"), nl,
        write("6-Поиск по Операционной системе"), nl,
        write("7-Поиск по Программному обеспечению"), nl,
        write("8-Поиск по Чипсету"), nl,
        write("9-Поиск по Диагонали экрана"), nl,
        write("10-Поиск по Габариты"), nl,
        write("11-Поиск по Цене"), nl,
        write("e-Выход"), nl,
        write("Выберите действие: "), readint(C),
        consult("db_navigator.txt"),nl,choice(C),!,menu.
 menu:- nl,write(" Спасибо за работу с программой"),nl.
 
 header:- writef("%-15\t%-15\t%-25\t%-10\t%-15\t%-25\t%-15\t%-15\t%-15\t%-15", "Производитель:", "Модель:", "Тип:", "Область пременения:", "Операционная система:", "Программное обеспечение:", "Чипсет:", "Диагональ экрана:", "Габарит:", "Цена:"), nl.
 
 choice(1):- header, printAll.
 choice(2):- write("Выберите производителя: "), readln(Manufactor), 
         header, findByManufactor(Manufactor, Item), print(Item), fail; true.        
 choice(3):- write("Введите модель: "), readln(Model), 
         header, findByModel(Model, Item), print(Item), fail; true.      
 choice(4):- write("Введите Тип: "), readln(Type), 
         header, findByType(Type, Item), print(Item), fail; true.        
 choice(5):- write("Введите Область пременения: "), readln(Oblast), 
         header, findByOblast(Oblast, Item), print(Item), fail; true.        
 choice(6):- write("Введите Операционная система: "), readln(SM), 
         header, Os = parseOs(SM), findByOs(Os,Item), print(Item), fail; true.       
 choice(7):- write("Введите Программное обеспечение: "), readln(Program), 
         header, findByProgram(Program, Item), print(Item), fail; true.              
 choice(8):- write("Введите Чипсет: "), readln(Chip), 
         header, findBychipChip(Chip, Item), print(Item), fail; true.
 choice(9):- write("Введите минимальную диагональ: "), readreal(Min), write("Введите максимальную диагональ: "), readreal(Max),
         header, findByDiagonal(Min,Max,Item), print(Item), fail; true.
 choice(10):- write("Введите минимальную Габариты: "), readint(Min), write("Введите максимальную Габариты: "), readint(Max),
         header, findByGabarit(Min,Max,Item), print(Item), fail; true.
 choice(11):- write("Введите минимальную Цену : "), readint(Min), write("Введите максимальную Цену: "), readint(Max),
         header, findByPrice(Min,Max,Item), print(Item), fail; true.
         
 printAll:- retract(product(Item)),print(Item),fail.
 printAll.
 
 print(Item):- Item=navigator(Manufactor, Model, Type, Oblast, Os, Program, Chip, Diagonal, Gabarit, Price), SM=win_os(Os),
               writef("%-15\t%-15\t%-25\t%-20\t%-25\t%-25\t%-25\t%-25\t%-15\t%-15", Manufactor, Model, Type, Oblast, SM, Program, Chip, Diagonal, Gabarit, Price), nl.
 
 win_os(android,"андроид"). 
 win_os(windows,"Windows CE"). 
 win_os(ios,"IOS NEW"). 
 
 findByManufactor(Manufactor,Item):- retract(product(Item)), Item=navigator(ManufactorSrc,_,_,_,_,_,_,_,_,_), match(Manufactor,ManufactorSrc).
 findByModel(Model,Item):- retract(product(Item)), Item=navigator(_,ModelSrc,_,_,_,_,_,_,_,_), match(Model,ModelSrc).
 findByType(Type,Item):- retract(product(Item)), Item=navigator(_,_,TypeSrc,_,_,_,_,_,_,_), match(Type,TypeSrc).
 findByOblast(Oblast, Item):- retract(product(Item)), Item=navigator(_,_,_,OblastSrc,_,_,_,_,_,_), match(Oblast,OblastSrc).
 findByOs(Os,Item):- retract(product(Item)), Item=navigator(_,_,_,_,Os,_,_,_,_,_).
 findByProgram(Program, Item):- retract(product(Item)), Item=navigator(_,_,_,_,_,ProgramSrc,_,_,_,_), match(Program,ProgramSrc).
 findBychipChip(Chip,Item):- retract(product(Item)), Item=navigator(_,_,_,_,_,_,ChipSrc,_,_,_), match(Chip,ChipSrc).
 findByDiagonal(Min,Max,Item):- retract(product(Item)), Item=navigator(_,_,_,_,_,_,_,Diagonal,_,_), Diagonal >= Min, Diagonal <= Max.
 findByGabarit(Min,Max,Item):- retract(product(Item)), Item=navigator(_,_,_,_,_,_,_,_,Gabarit,_), Gabarit >= Min, Gabarit <= Max.
 findByPrice(Min,Max,Item):- retract(product(Item)), Item=navigator(_,_,_,_,_,_,_,_,_,Price), Price >= Min, Price <= Max.
  
 parseOs(S,android):- match("андроид",S),!.
 parseOs(S,windows):- match("Windows CE",S),!.
 parseOs(S,ios):- match("IOS NEW",S),!.
 
 match(S,SIn):- upper_lower(S,SLow), upper_lower(SIn,SInLow), searchstring(SInLow,SLow,Pos), Pos>0.
 
 
GOAL
menu.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.04.2018, 10:40
Ответы с готовыми решениями:

Объясните, что происходит в цикле?
Ребят, я не силен в питоне. Можете добавить комменты к этому куску кода h := 0 for each c in W loop index := h xor c h := T ...

Объясните подробнее алгоритм действий этих нескольких строчек кода. И что делает каждый предикат?
find_min_price:- findall(Price, products(_,_,Price), L), sort(L,), ...

Объясните подробно данный код программы. Знаю что это фильтр а пошагово что к чему не понимаю
void __fastcall TForm1::suiButton7Click(TObject *Sender) { tdiag -&gt; Filtered = false; tdiag -&gt; Filt = «id_p=« + suiEdit6 -&gt; Text; ...

7
Фрилансер
 Аватар для Black Fregat
3709 / 2082 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
11.04.2018, 13:03
Лучший ответ Сообщение было отмечено Valentin-TT как решение

Решение

1) Запускаем Visual Prolog
2) Меню -> Project -> New Project
3) На первой вкладке заполнить Project Name и Base Directory
4) На второй вкладке во втором комбо выбрать Easywin
5) Create
6-1) Двойной щелчок на файле .pro в дереве проекта, откроется окно редактирования. Весь код заменить своим.
6-2) Как вариант - просто заменить файл .pro в папке проекта, если имена совпадают
7) Кнопка с буквой "R" посередине тулбара

Добавлено через 4 минуты
Может быть полезным иногда ещё один шаг:
5.1) Меню -> Options -> Project -> Compiler Options
5.2) На вкладке Warnings в группе Default Predicate Type поставить Nondeterm
Тогда отпадёт не всегда понятная необходимость правильно расставлять детерменизм предикатов
1
5 / 5 / 5
Регистрация: 20.04.2015
Сообщений: 196
11.04.2018, 15:58  [ТС]
Цитата Сообщение от Black Fregat Посмотреть сообщение
Запускаем Visual Prolog
А в версии 8 всё тоже самое надо будет делать?
0
Фрилансер
 Аватар для Black Fregat
3709 / 2082 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
11.04.2018, 16:56
В восьмёрке этот файл придётся очень сильно рихтовать напильником
0
5 / 5 / 5
Регистрация: 20.04.2015
Сообщений: 196
11.04.2018, 17:09  [ТС]
Цитата Сообщение от Black Fregat Посмотреть сообщение
В восьмёрке этот файл придётся очень сильно рихтовать напильником

этот код он не воспринимает у меня пишет синтаксическая ошибка что в 5.2 версии что в 8-й версии

Prolog
1
 manufactor=string
а вообще когда файл main.pro создаётся что оттуда можно удалять а что нет? потому что я сразу всё удалил и вставил тот код и он не работает.
0
Фрилансер
 Аватар для Black Fregat
3709 / 2082 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
11.04.2018, 17:20
Этот код работает с непоименованной базой, начиная с какой-то версии Visual Prolog её перестал любить
Одно из двух:

1) Поименовать базу:
Строка 14:
Prolog
1
FACTS - mybase
Строка 52:
Prolog
1
consult("db_navigator.txt", mybase),nl,choice(C),!,menu.
2) Сделать базу глобальной:
Строка 1:
Prolog
1
GLOBAL DOMAINS
Строка 14:
Prolog
1
GLOBAL FACTS
Но всё равно понадобится файл с самой базой: "db_navigator.txt"

Добавлено через 1 минуту
Цитата Сообщение от Valentin-TT Посмотреть сообщение
когда файл main.pro создаётся что оттуда можно удалять а что нет?
В пятёрке смело удалять всё. В семёрке/восьмёрке - надо смотреть замещающий код
1
5 / 5 / 5
Регистрация: 20.04.2015
Сообщений: 196
11.04.2018, 17:20  [ТС]
Цитата Сообщение от Black Fregat Посмотреть сообщение
Но всё равно понадобится файл с самой базой: "db_navigator.txt"
База есть а он берёт базу из того же места где и main.pro?
0
Фрилансер
 Аватар для Black Fregat
3709 / 2082 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
11.04.2018, 17:29
Нет, из того места где лежит .exe (там подпапка Exe)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.04.2018, 17:29
Помогаю со студенческими работами здесь

Нуждаюсь в вас! Объясните, что к чему!
Добрый день. Помогите,пожалуйста, разобраться с несколькими лабораторными работами. Ломаю голову уже второй месяц, для меня это слишком...

ООП в паскале. Объясните что к чему
Проблема в следующем, хотелось бы понять как подключать дополнительные файлы исходных текстов к основному. не через uses же это делается...

Объясните что к чему с вычислением функции
Здравствуйте, Поясните,что к чему пожалуйста. Есть задание (сложил картинку),у меня код написан так: using System; ...

Код программ, объясните что к чему
Добрый день форумчане :) Дело такое, есть 3 задачи написать нужно в Pascal ABC. Сам я с паскалем вообще почти не работал, и даже не...

Объясните чему равно реактивное сопротивление
На схеме ниже U,R,{X}_{L} - реальные известные значения. Неизвестно {X}_{C}, но известно, что при размыкании ключа показания амперметра не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru