Программирование в Логике. Чанышев О.Г. - 30 стр.

UptoLike

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

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