Include "lab1.Inc"
Facts
single max(integer)
single min(real)
single countr(integer)
single count(integer)
single count1(integer)
server(string,string,string)
Predicates
nondeterm Bagg(integer, integer, real)
nondeterm Domax()
nondeterm Domin()
nondeterm Group(string)
Goal
Consult("base.dat"),write("Write language: "),readln(A),Group(A),nl.
Clauses
max(0).
min(10000000.0).
countr(0).
count(0).
count1(0).
Bagg(1,2,4.5).
Bagg(2,1,4.0).
Bagg(3,1,4.3).
Bagg(4,2,3.9).
Bagg(5,3,7.6).
Domax():-bagg(_,W,_),max(M),W>M,M1=W, assert(max(M1)), fail.
Domax():-bagg(_,W,_),max(M),countr(R),M=W,R1=R+1,assert(countr(R1)),fail.
Domax():-countr(N),N>1,write("Condition is not satisfied") or countr(N),N=1, max(M), write(M).
Domin():-bagg(_,C,W),min(M),W<M,C=1,M1=W, assert(min(M1)), fail.
Domin():-min(N),N=0,write("Condition is not satisfied") or min(N),N<10000000.0,write(N).
%Group():-server(_,_,_), count(C),C1=C+1,assert(count(C1)),fail.
Group(L):-server(N1,A1,L)/*,count1(C),count(C1),C<C1,C2=C+1,assert(count1(C2)),*/, write(L," ",N1," ",A1),nl,fail.
Group(_).
Дан набір фактів з відомостями про речовини. Для кожної речовини вказано: назву речовини, її питому вагу і провідність (провідник, напівпровідник, ізолятор). Вибрати дані про провідники і впорядкувати їх за спаданням питомої ваги. Результат вивести на екран.
Project: 1_NELINA(14V)
FileName: 1_NELINA(14V).PRO
Purpose: No description
Written by: Visual Prolog
Comments:
******************************************************************************/
Include "1_nelina(14v).Inc"
Predicates
Вещество(string, real,string )
Do(string)
Goal
Do(" проводник").
Clauses
conct([],L,L).
conct(L,[],L).
conct([A|B],[C|D],[A|L]):- A < C, conct(B,[C|D],L).
conct([A|B],[C|D],[C|L]):- C=< A, conct([A|B],D,L).
Вещество("углерод ", 12.01, " проводник").
Вещество("германий ",72.59, " полупроводник").
Вещество("цинк ", 65.39, " проводник").
Вещество("кремний ",28.086, " полупроводник").
Вещество("бензол ",78.11, " диэлектрик").
Do(П):- Вещество(Н, В, Пр), Пр=П, write(Н,В,Пр),nl,fail.
Do(_).
Дан набір фактів, які мають відомості про іграшки: назву іграшки, її вартість в копійках і вік дітей, для яких вона призначена. (Наприклад: для дітей від 2 до 5 років). Треба одержати ціни найбільш дорогого і найбільш дешевого конструкторів і різницю їх цін.
Global facts
single raznica(integer, integer)
Predicates
nondeterm toy(string, integer, integer, integer)
nondeterm max()
nondeterm min()
nondeterm do()
Goal
max(),
min(),
do.
Clauses
toy("konstructor1", 2, 5, 100).
toy("konstructor2", 2, 5, 45).
toy("konstructor3", 2, 5, 30).
toy("konstructor4", 2, 5, 25).
toy("konstructor5", 2, 5, 75).
toy("konstructor6", 2, 5, 90).
raznica(0, 100500).
max():-toy(_,_,_,Cena), raznica(A,B), Cena > A, assert(raznica(Cena, B)), fail.
max():-raznica(Cena,B), toy(N,_,_,Cena), write("Maksimal'naya stoimost: "), nl, write(N," ",Cena), nl, nl.
min():-toy(_,_,_,Cena), raznica(A,B), Cena < B, assert(raznica(A, Cena)), fail.
min():-raznica(A,Cena), toy(N,_,_,Cena), write("Minimal'naya stoimost: "), nl, write(N," ",Cena), nl, nl.
do:-raznica(A,B), C=A-B, write("Raznica cen = ",C).
Дан файл с фактами, які мають дати свят 2004 року і файл з фактами, які мають дати вихідних днів 2004 року. Сформувати новий файл з фактами, які мають дати, які є одночасно святковими і вихідними днями.
Global Facts
nondeterm dni1(string)
nondeterm dni2(string)
facts-new
dnis(string)
Predicates
nondeterm sort()
Goal
consult ("a.txt"),
consult ("b.txt"),
sort(),save("c.txt",new).
Clauses
sort():-dni1(A1), dni2(A1), assert (dnis(A1)), fail.
sort().
Дан набір фактів, які мають відомості про іграшки: назву іграшки, її вартість і вік дітей, для яких вона призначена. (Наприклад: для дітей від 2 до 5 років). Треба одержати назви іграшок, які підходять дітям від 4 до 10 років. Знайти серед них найдешевшу.
include "lab1.inc"
domains/* раздел описания доменов (пользовательские типы)*/
name=string
price=real
ageon=integer
ageoff=integer
prices=price*%список
predicates/* раздел описания предикатов */
Toy(name,price,ageon,ageoff)
Max(prices,real)
3
Print410
clauses/* раздел описания предложений */
Toy("Giraffe",1.95,6,10).
Toy("Wood Louse",15.80,0,3).
Toy("Lego",40.60,8,10).
Toy("King-Kong",92.80,4,10).
Toy("Duck",5.60,4,10).
Toy("Ball",45.60,4,10).
Toy("Iguana",20.08,4,10).
Print410:-Toy(Nam,Pri,4,10),
write("+ ", Pri, " ", Nam),
nl, fail.
Print410.
Max([X],X).
Max([H|Tail],H):-Max(Tail,M),H<M,!.
Max([_|Tail],M):-Max(Tail,M).
goal/* раздел внутренней цели*/
findall(Price,Toy(_,Price,4,10),L),
Max(L,X),
Toy(Name,X,4,10),
write("Игрушки для детей от 4 до 10:"),nl,
write(" Цена Наименование"),nl,
Print410,
write("Самая дешевая игрушка - \"", Name,"\" (",X,")."),nl.
Дан файл з фактами, які мають дати свят 2004 року і файл з фактами, які мають дати вихідних днів 2004 року. Порахувати кількість святкових днів в році. Можливий збіг святкового дня з вихідним, такі дні не рахуйте.
domains
date=integer
month=integer
facts -holy
holiday(date,month,integer)
single count(integer)
facts -week
weekend(date, month)
predicates
nondeterm Coi(date,month)%дата выходного
nondeterm Del
nondeterm Do(date)
goal
Consult("H:\\University\\FLP\\Labs\\Lab1\\Lab1b\\Obj\\holi.dat",holy),
Consult("H:\\University\\FLP\\Labs\\Lab1\\Lab1b\\Obj\\week.dat",week),
Del,
Do(N),
write("Праздников в году ",N, " (праздники, совпадающие с выходными не
учитываются).").
clauses
count(0).
Coi(Dat,Mont):-retract(holiday(Dat,Mont,_),holy).
Del:-weekend(D,M),
Coi(D,M),
fail.
Del.
Do(N):-holiday(_,_,_),
count(N),
N1=N+1,
assert(count(N1),holy),
fail.
Do(N):-count(N).
Дан набір фактів, який має інформацію про багаж декількох пасажирів. Інформація про багаж кожного окремого пасажира – це № місця пасажира, кількість його речей і загальна вага його речей. З’ясувати, чи є пасажир, багаж якого має тільки одну річ, з вагою більше загальної середньої ваги речей всіх пасажирів. Знайти тих пасажирів у яких багаж має більше речей чим одна, але легше загальної середньої ваги речей.