![]() |
| | |||||||
| Регистрация | Правила | Блоги | Пользователи | Социальные группы | Поиск | Сообщения за день | Все разделы прочитаны |
| |
![]() |
| |
| | #1 | |||||||||||
| OLMER Новичок Регистрация: 28.05.2010
Сообщений: 39 Репутация: 0 (0) |
Прошу не пинать, толь начинаю учить Prolog. Как используя раздел GOAL не выводить значения переменных, которые используются только для "условий" вывода. Вот пример, так вывести записи с жёстко заданным "виталий_александрович":
А так при помощи переменной Х мы этого самого "виталий_александрович'а" выбираем запросом "parents(X, _ , дмитрий_витальевич)". В итоге:
Выполняется замечательно, но как убрать вывод переменной Х в результате? Так как имеет одно и то же значение - вывод инфы "некрасивый". P.S. Вопрос-оффтоп - как подружить копирование кириллицы из Пролога в буфер? Копирует в кривой кодировке, а каждый раз её перегонять через что-то подобное "Штирлицу" лень. Есть решения готовые? То бишь в Fonts установлено "Cyrrilic", и в программе текст нормально воспроизводится, но при копировании куда-либо - кракозябры. Как привести в порядок перегонку кодировки "CP1252 --> CP-1251"? | |||||||||||
| | ||||||||||||
| Другие темы раздела | |
| Задача "Семья". Prolog Надо создать программу, где отображены все члены семьи и кто кому кем приходится... У кого-нибудь есть такая? Вообще не представляю, как делать, а делать надо.. Задача "Семья". | Prolog Возведение в степень - непонятная ошибка. Нужно написать програму для возведения числа в степень 2-мя способами (рекурсивным и итерационным). Попробовал зделать сначала итерационным и заступорился выбивает ошибку: Basic domain becomes reference domain: unsigned. Не знаю как это исправить ибо в прологе я новичок. predicates .... Возведение в степень - непонятная ошибка. |
| | #2 | ||||||
| Грымзик Модератор Регистрация: 14.09.2009
Сообщений: 2,093 Репутация: 2056 (1056) |
Не выводить нельзя, можно писать дополнительные предикаты.
| ||||||
| | |||||||
| | #3 | ||||||
| OLMER Новичок Регистрация: 28.05.2010
Сообщений: 39 Репутация: 0 (0) |
Спасибо, для решения проблем с кодировкой можно, как вариант, юзать: http://www.artlebedev.ru/tools/decoder/advanced/ По поводу доп. предикатов - это понятно, по условию лабы должен быть только запрос в GOAL, вот и думал - может как красивее можно вывести. И ещё вопрос. Вот при таких запросах, как указывал выше (совмещённых) ругается на тип, если сравнивать с разных предикатов одной переменной, хотя всё вроде верно. Помогло только замена используемых доменов с типом symbol на "жёсткое" устоновление в тип symbol (без доменов). В смысле тип у обоих доменов один - symbol, но при запуске ругается. У всех так? Или я что-то не правильно понял? Пример:
person(Y,_,Age,_),parents(Y,_,X),parents(_,X,дмитрий_витальевич). | ||||||
| | |||||||
| | #4 | |
| Грымзик Модератор Регистрация: 14.09.2009
Сообщений: 2,093 Репутация: 2056 (1056) |
Да, это нормально. Если хотите использовать домены, то более конструктивно их создавайте. Например зачем father, mother, child, когда это можно заменить одним доменом person. Или можно с кучей типов, но тогда вот так делать a(X),b(Y),X=Y. | |
| | ||
| | #5 | ||||||
| OLMER Новичок Регистрация: 28.05.2010
Сообщений: 39 Репутация: 0 (0) |
Так и делал (добавлял дополнительное условие равенства в конце), но думал - может есть более "правильный" вариант. А по поводу общего домена, то так расписано для удобства восприятия - где указывается отец, где мать, а где сын, что бы у человека взглянувшего на код не возникло вопросов (с комментариями не хотелось заморачиваться, хотел читабельный код). Добавлено через 3 часа 28 минут Созрел новый вопрос - как выставить приоритет при создании конструкции из логических операций? На обычные скобки ругается. Что-то вроде:
Почему-то код выше не хочет воспринимать, и ругается на скобки. | ||||||
| | |||||||
| | #6 | ||||||
| Грымзик Модератор Регистрация: 14.09.2009
Сообщений: 2,093 Репутация: 2056 (1056) |
В данном диалекте скобки в логических конструкциях недопустимы.
| ||||||
| | |||||||
| | #7 | |
| aag Форумчанин Регистрация: 03.11.2011
Сообщений: 123 Репутация: 47 (61) |
Или схалтурить: charval(CharParam):-readchar(CharParam),upper_lower(CharParam,X),X>96,X<123. | |
| | ||
| | #8 | |
| OLMER Новичок Регистрация: 28.05.2010
Сообщений: 39 Репутация: 0 (0) |
Благодарю за ответы. aag, выше я написал подобную конструкцию, с одним диапазоном через условие И проблем и так не было бы. Надо помимо этого диапазона использовать ИЛИ ещё один диапазон. А в таком виде это невозможно. Решил проблему через дополнительный предикат, как предложила Грымзик. | |
| | ||
| | #9 | |
| aag Форумчанин Регистрация: 03.11.2011
Сообщений: 123 Репутация: 47 (61) | | |
| | ||
| После регистрации реклама в сообщениях будет скрыта | |
| | #10 | |
| OLMER Новичок Регистрация: 28.05.2010
Сообщений: 39 Репутация: 0 (0) | aag, в таком виде сразу выполняется И, затем ИЛИ, затем опять И, явно же другой приоритет действий. Но всё равно спасибо за потраченное время )
| |
| | ||
![]() |
| Похожие темы | |
| Тема | Автор |
| JavaScript Выводить картинку из в зависимости от значения переменной задача такая есть переменная которая принимает три значения 0,100,200 задача если 0 то ничего не происходит если 100 показать картинку 1.jpg если 200 показать картинку 2.jpg как это можно организовать подскажите или наведите на мысль | arahmanov |
| C# .NET Как получить/установить значение переменной по названию (название берется из строковой переменной) собственно сабж | ArchDuke |
| С++ для начинающих Загрузка переменной из DLL (GetProcAddress не берет значение переменной из *.dll) GetProcAddress не берет значение переменной из *.dll Не могу понять почему. Помогите. ------------------------- *********** DLL.h *********** #define DLL __declspec(dllexport) extern PINCRYPT HINSTANCE Lib_XXX; | NiТR0 |
| PHP для начинающих как передать значение переменной javaScript переменной PHP Сначала я пишу кусочек скрипта на javaScript. У меня там есть допустим переменная Day. В результате выполнения скрипта она имеет орпределенное значение. Потом я хочу это переменную обработать ПХП скриптом в том же HTML-файле.Можно ли просто написать $phpday=$day. Или это не будет работать.Если не... | sorceress |
| Visual Basic Как переменной описанной в программе присвоить значение переменной в Conditional Compilation Arguments? Kak mozhno peremennij opisanoj v programme prisvoit` znachenie peremennoj v Conditional Compilation Arguments??? Eto nado chtoto tipa etogo pista`???: Dim strTest As String strTest=Peremennaya Tak , chto li? no u menya ne rabotaet! mozhet kto znaet kak delat`? Zaranee spasibo, Web-Gear | AASoft |
| Опции темы | |
| |
| |