TURBO PROLOG. Терёхин В.В. - 76 стр.

UptoLike

Составители: 

76
Альтернативной формой условия выборки по половому признаку явля-
ется предикат равенства Sex=M. Используя этот предикат равенства, можно
построить другое правило, имеющее тот же самый результат:
show_male_part_time :-
employee(Name, Sex, Dept, Pay_rate),
Sex="M",
write(Name,Dept, "$", Pay_rate),
nl,
fail.
Заметьте, что для этих правил некоторые подцели могут оказаться не-
успешными из-за невозможности удовлетворить условию полового при-
знака. Откат возникнет до
момента, когда информация, содержащиеся в фак-
те, будет выдана на экран. Предикат fail не потребуется, если условия пра-
вил невозможно выполнить, т.е. подцель будет неуспешной сама по себе.
Предикат fail включен в правило для того, чтобы вызвать откат, если условия
правила будут выполнены и все правило окажется успешным.
Теперь
предположим, что необходимо получить список служащих с
неполным рабочим днем, работающих в отделе обработки данных (Data
Processing Department). В этом случае условие, которое должно быть нало-
жено на значение объекта для переменной Dept есть Data. Два следующих
правила позволяют достичь желаемого результата:
show_list_data_proc :-
employee(Name,Sex,"DATA",Pay_rate),
write(Name,Sex,"$",Pay_rate),
nl,
fail.
show_list_data_proc :-
employee(Name,Sex,Dept,Pay_rate),
Dept="DATA",
write(Name,Sex,"$",Pay_rate),
nl,
fail.
Метод ОПН удобен для
программирования на Турбо-Прологе при-
кладных задач по обработке служебных данных. Типичными примерами об-
работки служебных данных являются следующие: создание платежной ве-
домости, вычисление выплаты, использующей данные из базы данных, гене-
рация отчета о выплатах. Программа, формирующая платежную ведомость
(листинг 4.3), является расширением программы о служащих.
Листинг 4.3
_________________________________________________________
/* Программа:
Платежная ведомость */
/* Назначение: Демонстрация использования */
/* построения правил и генерации отчета */
/* с использование ОПН-метода */
      Альтернативной формой условия выборки по половому признаку явля-
ется предикат равенства Sex=M. Используя этот предикат равенства, можно
построить другое правило, имеющее тот же самый результат:
      show_male_part_time :-
                        employee(Name, Sex, Dept, Pay_rate),
                        Sex="M",
                        write(Name,Dept, "$", Pay_rate),
                        nl,
                        fail.
      Заметьте, что для этих правил некоторые подцели могут оказаться не-
успешными из-за невозможности удовлетворить условию полового при-
знака. Откат возникнет до момента, когда информация, содержащиеся в фак-
те, будет выдана на экран. Предикат fail не потребуется, если условия пра-
вил невозможно выполнить, т.е. подцель будет неуспешной сама по себе.
Предикат fail включен в правило для того, чтобы вызвать откат, если условия
правила будут выполнены и все правило окажется успешным.
      Теперь предположим, что необходимо получить список служащих с
неполным рабочим днем, работающих в отделе обработки данных (Data
Processing Department). В этом случае условие, которое должно быть нало-
жено на значение объекта для переменной Dept есть Data. Два следующих
правила позволяют достичь желаемого результата:
      show_list_data_proc :-
                              employee(Name,Sex,"DATA",Pay_rate),
                              write(Name,Sex,"$",Pay_rate),
                              nl,
                              fail.
      show_list_data_proc :-
                              employee(Name,Sex,Dept,Pay_rate),
                              Dept="DATA",
                              write(Name,Sex,"$",Pay_rate),
                              nl,
                              fail.
      Метод ОПН удобен для программирования на Турбо-Прологе при-
кладных задач по обработке служебных данных. Типичными примерами об-
работки служебных данных являются следующие: создание платежной ве-
домости, вычисление выплаты, использующей данные из базы данных, гене-
рация отчета о выплатах. Программа, формирующая платежную ведомость
(листинг 4.3), является расширением программы о служащих.

                     Листинг 4.3
_________________________________________________________
/* Программа: Платежная ведомость                  */
/* Назначение: Демонстрация использования          */
/*        построения правил и генерации отчета     */
/*              с использование ОПН-метода         */


                                                                         76