Содержание
- 2. 1. Имена в Прологе (Prolog)
- 3. 2. Предикаты в Прологе (Prolog)
- 4. 2. Предикаты в Прологе (Prolog)
- 5. 2. Предикаты в Прологе (Prolog)
- 6. 2. Предикаты в Прологе (Prolog)
- 7. Как это выглядит в Прологе:
- 8. 2. Предикаты в Прологе (Prolog)
- 9. 2. Предикаты в Прологе (Prolog)
- 10. Первая программа
- 12. Поиск братьев и сестер в семье Романовых
- 13. Поиск братьев и сестер в семье Романовых
- 14. Задание на закрепление темы прошлого занятия Суть задания: задаем предикат «нравится» с 2 термами. Они будут
- 15. Задание на закрепление темы прошлого занятия Теперь надо ответить на 3 вопроса: Вопрос1: занимается ли Юлия
- 16. Как следовало выполнить задание:
- 17. Попробуем создать некое подобие базы данных:
- 18. Теперь будем пробовать задавать разные цели: Цель1 (дала ответ, что машины марки Toyota есть). Цель2 (дала
- 19. Самостоятельное задание: Вывести все старые машины (старше 2003 года), создав для этого специальный предикат old_mashins. Вывести
- 20. Самостоятельное задание Известны высказывания о том, что хорошо, что плохо. Например, иметь квартиру хорошо, детей -
- 21. Решение самостоятельной задачи
- 22. Задача 1: Нахождение корней уравнения ax2+bx+c=0
- 23. Задача 2: Запутанные суждения Бутси – коричневая кошка. Корни – черная кошка. Мак – рыжая кошка.
- 25. Построение системы утверждений
- 26. Задача3: перевозка через реку волка, козы и капусты Крестьянин должен перевезти в лодке через реку волка,
- 27. Решение задачи 3
- 28. Задача 4: вычисление факториала. 0!=1 1!=1 n!=1*2*3*…*(n-1)*n=(n-1)!*n
- 29. СПИСКИ в прологе Указываются через запятую в квадратных скобках: Чтобы объявить список, надо
- 30. Голова и хвост списка
- 31. Как вывести все элементы списка
- 32. Подсчет количества элементов списка:
- 33. Получение нового списка из известного по правилу:
- 34. Самостоятельное задание Выведите новый список, который будет содержать все значения конкретного списка, удовлетворяющие какому-либо условию. Например,
- 35. Объединение списков
- 36. Встроенный предикат findall Встроенный предикат использует целевые утверждения в качестве одного из своих аргументов и собирает
- 37. Определение среднего возраста группы людей
- 38. Создание окон makewindow( , , , , , , , ).
- 39. Цвет текста и фона
- 40. Цвет рамки окна
- 41. Размер и положение окна Определение размеров и положения окон. Аргумент начальный номер строки предиката makewindow есть
- 42. Как в прологе вывести окно
- 43. Самостоятельное задание makewindow(1,7,7,"Полный экран",0,0,25,80) - данному окну присвоен номер 1. Символы в нем будут белые, фон
- 44. Предикаты для работы с окнами: Предикат shiftwindow используется для смены текущего окна (переключения). Его форма: shiftwindow(
- 45. Установка курсора в окне По умолчанию предполагается, что курсор расположен в верхнем левом углу окна. Однако
- 46. Пример вывода сообщений
- 47. Создание перекрывающихся окон
- 48. Создание меню с помощью окон
- 49. Создание меню с помощью окон
- 50. Файловая система в Прологе Пролог использует: current_readdevice (текущее устройство чтения), с которого считывается ввод; current_write_device (текущее
- 51. Доступ к файлу Для доступа к файлу надо сначала его открыть. Файл может быть открыт: для
- 52. Описание файла Когда Пролог открывает файл, он связывает символическое имя с действительным именем файла операционной системы
- 53. Альтернативы file Пролог распознает пять встроенных альтернатив file, описанных в таблице: Эти встроенные альтернативы не должны
- 54. Путь к файлу в Прологе Во время открытия файла необходимо помнить, что обратный слэш (\), используемый
- 55. Предикат openread/2 Предикат openread открывает файл OSFileName дли чтения, используя формат: openread(SymbolicFileName,OSFileName) % (i, i) Пролог
- 56. Предикат openwrite/2 Предикат openwrite открывает файл OSFileName для записи, используя формат: openwrite(SymbolicFileName,OSFileName) % (i,i) Если файл
- 57. Предикат openappend/2 Предикат openappend открывает файл OSFileName для записи в конец файла. При этом используется формат:
- 58. Предикат openmodify/2 Предикат openmodify открывает файл OSFileName и для записи, и для чтения; если файл уже
- 59. Предикат filemode/2 При открытии файла в текстовом режиме предикат filemode устанавливает указанный файл в текстовый или
- 60. Предикат closefile/1 Предикат closefile закрывает указанный файл; он использует формат: closefile(SymbollcFileName) % (i) Этот предикат всегда
- 61. Предикат readdevice/1 Предикат readdevice переопределяет current_read_device (текущее устройство чтения) или возвращает его имя. Предикат имеет формат:
- 62. Предикат writedevice/1 Предикат writedevice либо назначает, либо позволяет получить имя current_ write_device (текущего устройства записи). Он
- 63. Пример работы с файлом Программа помещает символы, набранные на клавиатуре, в файл TRYFILE.ONE на текущем диске,
- 64. Самостоятельное задание 1: допишите программу, чтобы она выводила эти символы и в файл, и на экран.
- 65. Переопределение стандартного ввода-вывода Домен file имеет три дополнительные опции: stdin, stdout, stderr. Преимущество этих файловых потоков
- 66. Предикаты работы со строками
- 67. Предикат filepos Предикат filepos может управлять позицией, где производится чтение или запись. Он имеет формат: filepos(SymbolicFileName,FilePosition,Mode)
- 68. Предикат eof/1 Предикат eof проверяет, является ли позиция, полученная в процессе чтения, концом файла. В этом
- 69. Задача 1: символы из одного файла переписать в другой файл, заменив их все на такие же,
- 70. Предикат flush/1 Предикат flush записывает содержимое внутреннего буфера в именованный файл. Он имеет формат. flush(SymbolicFileName) %
- 71. Предикат existfile/1 Предикат existfile выполняется успешно, если файл OSFileName будет найден. Формат его следующий: existfile(OSFileName) %
- 72. Предикат deletefile/1 Предикат deletefile удаляет файл, заданный его аргументом, и имеет формат: deletefile(OSFileName) % (i) Предикат
- 73. Предикат renamefile/1 Предикат renamefile переименовывает файл с именем OldOSFileName в NewOSFileName. Он имеет формат: renamefile(OldOSFileName, NewOSFileName)
- 74. Предикат disk/1 Предикат disk используется для изменения текущего диска и/или каталога/подкаталога и имеет формат: disk(Path) %(i),(о)
- 75. Предикат frontchar/3 Предикат frontchar действует согласно равенству: String1 = объединение Char и String2 и имеет следующий
- 76. Задача 2: преобразовать строку в список символов.
- 77. Предикат fronttoken/3 Предикат fronttoken выполняет три взаимосвязанные функции, в зависимости от типа аргументов, который используется для
- 78. Задача 3: разбить предложение на список слов.
- 79. Предикат frontstr/4 Предикат frontstr расщепляет String1 на две части. Синтаксис предиката: frontstr(NumberOfChars,String1,StartStr,EndStr) % (i,i,o,o) где StartStr
- 80. Предикат concat/3 Предикат concat устанавливает, что строка String3 является результатом сцепления String1 и String2. Он имеет
- 81. Предикат str_len/2 Предикат str_len решает следующие задачи: определяет или проверяет длину строки или возвращает строку пробелов
- 82. Предикат isname/1 Предикат isname проверяет, является ли аргумент допустимым именем согласно синтаксису Пролога, и имеет формат:
- 83. Предикаты преобразования типов
- 84. Предикат char_int/2 Предикат char_int преобразует символ в целое число или целое в символ и имеет формат:
- 85. Предикат str_char/2 Предикат str_char преобразует строку, содержащую один и только один символ, в символ или символ
- 86. Предикат str_int/2 Предикат str_int преобразует строку, содержащую целое число, в его текстовое представление и имеет формат:
- 87. Предикат str_real/2 Предикат str_real преобразует строку в вещественное число или вещественное число в строку и имеет
- 88. Предикат upper_lower/2 Предикат upper_lower преобразует строку, все символы (или часть символов) которой являются символами верхнего регистра,
- 89. Задача 4: определить предикат scanner, который преобразует строку в список лексем. Лексемы классифицируются с помощью связывания
- 91. Динамическая база фактов
- 92. Внутренняя база фактов состоит из фактов, которые вы можете непосредственно добавлять и удалять из вашей программы
- 93. Объявление внутренней базы фактов Ключевое слово database определяет начало объявления раздела database. Раздел database состоит из
- 94. Доступ к внутренней базе фактов Предикаты, принадлежащие внутренней базе фактов, доступны точно так же, как и
- 95. Пример использования базы
- 96. Удаление фактов во время выполнения программы Предикат retract унифицирует факты и удаляет их из внутренней базы
- 97. Удаление нескольких фактов сразу Предикат retractall удаляет из вашей базы фактов все факты, сопадающие с образцом
- 98. Пример удаления фактов из базы
- 99. Обратите внимание, какая запись удалилась из базы!
- 100. Задайте указанную цель. Ответьте на вопрос: почему Пролог выдал ошибку?
- 101. Удаление всех записей из базы тех людей, которые любят плавать
- 102. Занесение фактов во время выполнения программы Во время выполнения факты могут быть добавлены во внутреннюю базу
- 103. Проверка уникальности записи перед ее занесением
- 104. Пример занесения фактов в конец базы данных без проверки уникальности
- 105. Пример занесения фактов в начало базы данных с проверкой уникальности
- 106. Создание своей базы Мы будем хранить информацию о футболистах. Программа должна позволять записывать данные в базу,
- 107. Данные о футболистах
- 108. Описание предиката Для работы необходим предикат, кодирующий эту информацию. Подходящим является: player(p_name, /* полное имя игрока
- 109. 1
- 110. 2
- 111. 3
- 112. 4
- 113. Считывание фактов из файла Предикат consult считывает из файла fileName факты, описанные в разделе database, и
- 114. Создание экспертной системы
- 115. Определение, является ли лицо отцом по группе крови
- 121. Скачать презентацию