ВУЗ:
Составители:
Рубрика:
59
Контрольные вопросы и задания
1. 32_DATA есть атом?
2. Что является переменной в структуре summer_time(июнь,
июль,август)?
3. Сопоставимы ли термы date(D,M,Y) и date2(D1,M1,Y1)?
4. Какая из последовательностей строк является правильным
фрагментом Пролог-программы:
а) facts
f1(string,integer,integer)
f2(list1):-f3(list3)
б) clauses
p(X,Y,Z,S):-S1=X+Y,S2=S1+Z,S=S1+S2.
q(вася).
5. Является ли приведенный ниже фрагмент законченной
программой?
goal
comline(Koef), %Чтение параметра из командной строки
Z=Koef*sin(17),
write(Z).
6. Пусть zi1,…,ziN – некоторые конкретные значения и на-
чальное
значение B равно 0. Внутренняя БД задана в виде
facts
f(z11,…,z1N)
f(z21,…,z2N)
…………..
Верно ли определены правила суммирования первых эле-
ментов фактов f?
P(B,S):-f(A,_,…,_),B1=B+A,P(B1,S).
P(B,S):-S=B.
Соберите значения ziN в список, используя встроенный пре-
дикат findall.
Отсортируйте элементы полученного списка в порядке воз-
растания значений.
7. Создайте в программе некоторое множество фактов и со-
храните их в файле.
60
8. При помощи единственного невстроенного предиката (но
использующего предикат типа repeat) откройте файл и читайте
строки до появления некоторой определенной строки. Запомните
смещение до этой строки.
9. Найдите ошибку в программе перезаписи файла f1.txt в
файл f2.txt:
domains
file=fIn;fOut
predicates
rewrite_file
goal
openread(fIn,"f1.txt"),
openwrite(fOut,"f2.txt"),
rewrite_file,
closefile(fIn),closefile(fOut).
clauses
rewrite_file:-readln(fIn,S),!,write(fOut,S), rewrite_file;!.
10. Пусть "modul.exe text.txt -1 pars" – командная строка.
Используя встроенный предикат fronttoken напишите фрагмент
программы, берущий командную строку и выделяющий ее
от-
дельные компоненты.
11. Как известно, продукционная модель представления зна-
ний есть набор продукций,каждая из которой представляется пя-
теркой P(A,B,C,D,E), где
A – идентификатор продукции (любого типа: число, лексе-
ма, выражение);
B – область действия продукции;
C – условия выполнения ("запуска") продукции;
D – собственно продукция, в данном случае понимаемая как
некоторое множество операций, выполняемых над объектами,
принадлежащими множеству B;
E – множество операций, завершающих выполнение про-
дукции (в простейшем случае, приводящих систему в исходное
состояние).
Задание: напишите программу, которая
• моделирует предметную область при помощи множества
фактов типа объект(имя_объекта,список_свойств),
Контрольные вопросы и задания 8. При помощи единственного невстроенного предиката (но использующего предикат типа repeat) откройте файл и читайте 1. 32_DATA есть атом? строки до появления некоторой определенной строки. Запомните 2. Что является переменной в структуре summer_time(июнь, смещение до этой строки. июль,август)? 9. Найдите ошибку в программе перезаписи файла f1.txt в 3. Сопоставимы ли термы date(D,M,Y) и date2(D1,M1,Y1)? файл f2.txt: 4. Какая из последовательностей строк является правильным domains фрагментом Пролог-программы: file=fIn;fOut а) facts predicates f1(string,integer,integer) rewrite_file f2(list1):-f3(list3) goal б) clauses openread(fIn,"f1.txt"), p(X,Y,Z,S):-S1=X+Y,S2=S1+Z,S=S1+S2. openwrite(fOut,"f2.txt"), q(вася). rewrite_file, 5. Является ли приведенный ниже фрагмент законченной closefile(fIn),closefile(fOut). программой? clauses goal rewrite_file:-readln(fIn,S),!,write(fOut,S), rewrite_file;!. comline(Koef), %Чтение параметра из командной строки 10. Пусть "modul.exe text.txt -1 pars" – командная строка. Z=Koef*sin(17), Используя встроенный предикат fronttoken напишите фрагмент write(Z). программы, берущий командную строку и выделяющий ее от- 6. Пусть zi1,…,ziN – некоторые конкретные значения и на- дельные компоненты. чальное значение B равно 0. Внутренняя БД задана в виде 11. Как известно, продукционная модель представления зна- facts ний есть набор продукций,каждая из которой представляется пя- f(z11,…,z1N) теркой P(A,B,C,D,E), где f(z21,…,z2N) A – идентификатор продукции (любого типа: число, лексе- ………….. ма, выражение); Верно ли определены правила суммирования первых эле- B – область действия продукции; ментов фактов f? C – условия выполнения ("запуска") продукции; P(B,S):-f(A,_,…,_),B1=B+A,P(B1,S). D – собственно продукция, в данном случае понимаемая как P(B,S):-S=B. некоторое множество операций, выполняемых над объектами, Соберите значения ziN в список, используя встроенный пре- принадлежащими множеству B; дикат findall. E – множество операций, завершающих выполнение про- Отсортируйте элементы полученного списка в порядке воз- дукции (в простейшем случае, приводящих систему в исходное растания значений. состояние). 7. Создайте в программе некоторое множество фактов и со- Задание: напишите программу, которая храните их в файле. • моделирует предметную область при помощи множества фактов типа объект(имя_объекта,список_свойств), 59 60