|
2 / 2 / 0
Регистрация: 29.09.2008
Сообщений: 9
|
|||||||||||
Проектирование программы на Прологе15.03.2011, 22:46. Показов 2041. Ответов 3
Метки нет (Все метки)
Задумал использовать в качестве ядра обработки логики Prolog.
Но не совсем понял как проектировать программы на нем. Все примеры для изучения Prolog уже содержат базу фактов и операций над ними. Но в реальной программе база данных будет пуста. А потом она будет изменяться. Если взять SQL (по аналогии декларативности Prolog'а) то в результате истинности условия UPDATE мы получим измененные данные. Поясню на примере свое непонимание: Отрывок из книги Братко:
1. Для работы с базой данных нужно написать свой UPDATE (с помощью asserta и assertz, retract)? Причем с проверкой ситуации: Уже есть факт:
12:20 / 13:10 / bа511 / ежедневно мой UPDATE должен: проверить существование факта расписание( милан, лондон, X) если такой есть удалить факт добавить к списку X наш новый рейс, если такого рейса еще не было добавить в базу факт 2.1 Нужно заменить время вылета в рейсах из цюриха, увеличив скажем все на полчаса. получаем расписание( цюрих, X, Y) удаляем факт из базы получаем все элементы списка "выкусываем" время вылета, обрабатываем увеличивая, создаем новый рейс, копируя все из старого кроме времени вылета, добавляем в базу новый факт (UPDATE с проверкой уже написан, выше) 2.2, 2.3, ... заменить название рейса, дни вылета То же самое с удалением, создавать свой DELETE? 3. Как быть с ситуациями пытаемся добавить рейс, имя которого уже где-то используется, а рейсы должны встречаться только раз. Написать проверку-поиск по всем фактам? 4. Если нужно ввести кроме ежедневно повыходным то тогда: нужно обрабатывать не в предикате, а создавать фактом: ежедневно([пн, вт, ср, чт, пт, сб, вс]). ? или добавить предикат день_выл( День, повыходным) :-? То есть, для того чтобы работать с базой фактов, нужно вначале написать свой набор средств ее изменения, учитывающий формат хранения фактов, и обслуживающие предикаты, аналоги SELECT? Вначале - создаем инфраструктуру работы с базой фактов, а потом уж... Я в верном направлении мыслю?
0
|
|||||||||||
| 15.03.2011, 22:46 | |
|
Ответы с готовыми решениями:
3
Написанием программы на Прологе
4 программы на прологе (база знаний, работа со списками, графические возможности и функция)! |
|
Заблокирован
|
|||
| 15.03.2011, 23:58 | |||
0
|
|||
|
2 / 2 / 0
Регистрация: 29.09.2008
Сообщений: 9
|
|||
| 16.03.2011, 10:55 [ТС] | |||
|
Но раз по другому никак, то попробую. Конечно, нужно продумать метод обновления внешних данных - 1. параллельно: пишем в пролог БД; пишем во внешнюю БД, или 2. пишем в пролог БД, получаем из пролог БД измененные факты, записываем их(или изменения) во внешнюю БД. В первом случае возможно рассогласование данных. Во втором - потеря скорости выполнения.
0
|
|||
|
Заблокирован
|
|||
| 16.03.2011, 12:13 | |||
|
1
|
|||
| 16.03.2011, 12:13 | |
|
Помогаю со студенческими работами здесь
4
Проектирование программы
Проектирование программы на Python-е Проектирование программы для проката Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|