Тема 3 Язык программирования ПРОЛОГ
Лабораторное занятие 4 Стандартные предикаты ввода и вывода языка Visual Prolog
Вопросы Стандартные предикаты ввода/вывода. Стандартные предикаты ввода/вывода. Разработка и отладка программ на языке Visual Prolog. Разработка и отладка программ на языке Visual Prolog.
Методические указания /*************************************************************************** Copyright (c) 2006 SGU Project: Project: FileName: PR2N05. PRO FileName: PR2N05. PRO Purpose: Purpose: Written by: PDC Written by: PDC Modifyed by: Modifyed by: Comments: на базе программы CH02E05. PRO Eugene Akimov Comments: на базе программы CH02E05. PRO Eugene Akimov****************************************************************************/predicates car(symbol,long,integer,symbol,long) - nondeterm (o,o,o,o,i) car(symbol,long,integer,symbol,long) - nondeterm (o,o,o,o,i) truck(symbol,long,integer,symbol,long) - nondeterm (o,o,o,o,i) truck(symbol,long,integer,symbol,long) - nondeterm (o,o,o,o,i) vehicle(symbol,long,integer,symbol,long) - nondeterm (o,o,o,o,i) vehicle(symbol,long,integer,symbol,long) - nondeterm (o,o,o,o,i) Пример оформления заголовка программы
Информационный блок по стандартным предикатам ввода и вывода Visual Prolog.
Предикаты ввода/вывода Рассмотрим стандартные предикаты ввода/вывода, включая предикаты, которые позволяют выполнять операции с файлами. Рассмотрим стандартные предикаты ввода/вывода, включая предикаты, которые позволяют выполнять операции с файлами.
Предиката вывода информации В Visual Prolog включены три стандартных предиката для вывода. Это: Это: предикат write; предикат write; предикат nl; предикат nl; предикат writef. предикат writef.
Предикат write Предикат write может быть вызван с произвольным числом аргументов: Предикат write может быть вызван с произвольным числом аргументов: write (Paraml, Param2, ParamЗ,..., ParamN) % (i,i, i,..., i) write (Paraml, Param2, ParamЗ,..., ParamN) % (i,i, i,..., i) Эти аргументы могут быть либо константами из стандартных доменов, либо переменными. Если это переменные, то они должны быть входными параметрами. Эти аргументы могут быть либо константами из стандартных доменов, либо переменными. Если это переменные, то они должны быть входными параметрами.
Варианты предиката write стандартный предикат стандартный предикат write write пользовательский предикат пользовательский предикат writeN writeN writelist writelist
Внимание Обратите внимание на наличие в строках обратного слеша (\). Это управляющий символ. Чтобы напечатать непосредственно символ \ (обратный слэш), вы должны ввести два обратных слеша подряд. Обратите внимание на наличие в строках обратного слеша (\). Это управляющий символ. Чтобы напечатать непосредственно символ \ (обратный слэш), вы должны ввести два обратных слеша подряд.
Предикат nl Стандартный предикат nl (от англ. new line новая строка) всегда используется вместе с предикатом write. Он обеспечивает переход на новую строку на экране дисплея. Стандартный предикат nl (от англ. new line новая строка) всегда используется вместе с предикатом write. Он обеспечивает переход на новую строку на экране дисплея.
Предикат writef/* Предикат writef позволяет выполнить форматированный вывод; он имеет следующий формат: Предикат writef позволяет выполнить форматированный вывод; он имеет следующий формат: writef(FormatString, Argl,Arg2,Arg3,...,ArgN)% (i,i,i,i,...,i) writef(FormatString, Argl,Arg2,Arg3,...,ArgN)% (i,i,i,i,...,i)
Стандартные предикаты ввода информации Visual Prolog включает в себя несколько стандартных предикатов для чтения. Из них четыре основных: Visual Prolog включает в себя несколько стандартных предикатов для чтения. Из них четыре основных: - readln для чтения всей строки символов; - readln для чтения всей строки символов; - readint для чтения целых значений; - readint для чтения целых значений; - readreal для чтения вещественных значений; - readreal для чтения вещественных значений; - readchar для чтения символьных значений. - readchar для чтения символьных значений. И дополнительно readterm для чтения любых термов, включая составные объекты. И дополнительно readterm для чтения любых термов, включая составные объекты.
Разработка и отладка программ на языке Visual Prolog.
Программа
Программа goal writelist([2,4,6,8,10,12,14,16,18,20,22]). writelist([2,4,6,8,10,12,14,16,18,20,22]).
Задание N В системе Visual Prolog откройте программу CH012E05. PRO (в папке Лз 4). В системе Visual Prolog откройте программу CH012E05. PRO (в папке Лз 4). Переведите данную программу на русский язык (русификация программы). Переведите данную программу на русский язык (русификация программы). Проанализировать структуру программы с точки зрения использования стандартных предикатов ввода/вывода Проанализировать структуру программы с точки зрения использования стандартных предикатов ввода/вывода
Второе задание В системе Visual Prolog откройте программу CH06E01. PRO (в папке Лз 4). В системе Visual Prolog откройте программу CH06E01. PRO (в папке Лз 4). Переведите данную программу на русский язык (русификация программы). Переведите данную программу на русский язык (русификация программы). Проанализировать структуру программы с точки зрения использования стандартных предикатов ввода/вывода Проанализировать структуру программы с точки зрения использования стандартных предикатов ввода/вывода
Позовите преподавателя !
Дополнительные задания
Задание 1 Откройте программу PR16N01. PRO (папка Лз 4). Проведите пробный запуск программы. Откройте программу PR16N01. PRO (папка Лз 4). Проведите пробный запуск программы. Преобразуйте текст программы используя кириллические шрифты (переведите программу на русский язык, там где это возможно). Преобразуйте текст программы используя кириллические шрифты (переведите программу на русский язык, там где это возможно).
Задание 5 Откройте программу PR2N05. PRO (папка ЛЗ 3). Откройте программу PR2N05. PRO (папка ЛЗ 3). Проведите пробный запуск программы. Проведите пробный запуск программы. Преобразуйте текст программы используя кириллические шрифты. Преобразуйте текст программы используя кириллические шрифты. Модифицируйте программу (изменение цели, изменение фактов, изменение предложений). Модифицируйте программу (изменение цели, изменение фактов, изменение предложений).
Справочный материал Visual Prolog поддерживает недетерминированный вывод, основанный на недетерминированных предикатах. Visual Prolog поддерживает недетерминированный вывод, основанный на недетерминированных предикатах. Целью управления детерминизмом является сокращение используемой памяти и времени выполнения. Целью управления детерминизмом является сокращение используемой памяти и времени выполнения. Режим детерминизма задаются ключевыми словами determ, nondeterm и т.д. Режим детерминизма задаются ключевыми словами determ, nondeterm и т.д.
Справочный материал Анализ потока параметров При вызове предиката аргументы, значения которых известны, рассматриваются как входные аргументы (i), а неизвестные как выходные аргументы (о). Список входных и выходных аргументов для данного предиката называют потоком параметров (flow pattern). Если, например, предикат имеет два параметра, то существуют четыре варианта потока параметров: (i, i) (i, о) (о, i) (о, о)