189
nondeterm sort(str,slist,slist)
% поиск в списке элемента номер integer
nondeterm memnum(integer,slist,str)
% удаление из списка элемента str
nondeterm delete(str,slist,slist)
% удаление из 1-го списка 2-го списка
nondeterm delfromlist(slist,slist,slist,slist)
% определение длины списка
lenlist(slist,integer)
% вспомогательная функция, возвращает i1 или i2, если i2<>0;
nondeterm checknum(integer,integer,integer)
% принимает тему, тип контроля, длину списка вопросов по этой теме;
% возвращает способ выбора, количество вопросов и ответов (i,i,i,o,o,o)
nondeterm getinfo(str,str,integer,str,integer,integer)
% следующий вопрос адаптивного опроса (i,o), (предыдущий, следующий)
anextquery(str,str)
% следующий вопрос из группы (если он есть
% и максимальная оценка за него выше, чем предыдущая)
nondeterm nextqout(slist,str,real,str)
% первый вопрос из следующей группы (i,i,o)
nondeterm nextgroup(slist,str,str)
% удалить начало списка до элемента str (i,i,o)
nondeterm head(slist,str,slist)
% сортировка списка по значению свойства
insert(string,string,slist,slist,integer)
% свойство, элемент, вх.список, вых.список, способ упорядочения
insert_sort(string,slist,slist,integer)
acs(string,string,string) % упорядочение по возрастанию (0)
decs(string,string,string) % упорядочение по убыванию (1)
goal
envsymbol("TS",Var), % получить значение переменной TS
concat(Var,"\\swap\\kbp.out",SWP), % определить путь к файлу обмена
comline(C), % получить командную строку
usage(C), C<>"", % если она пуста, выдать сообщение
consult(C), % подключить файл с заданием
command(Cmd), % считать из него предикат задания
openwrite(datafile,SWP), % открыть swap-файл
writedevice(datafile), % перенаправить в него выходной поток
write(" "),
execute(Cmd), % выполнить предикат
closefile(datafile), % закрыть swap-файл
save("cnt.db"). % сохранить БД
clauses
usage("") :- write("Usage: task_filename"),nl.
usage(_).
execute("formgroup") :-
dbname(DBname),
consult(DBname),
formgroup,!.