2. В режиме калькулятора вычислить X = (2 + 5) * 3,4, т.е. вводя значения 2, 5, 3.4 с клавиатуры.
goal
write("X = "),
readint(X),
nl,
write("K = "),
readint(K),
nl,
write(“N= “),
readreal(N),
nl
Z=(X+K)*N,
write("Z = ",Z).
Результат: 23,8
Задание 7. Реализовать приведенную программу с внешней связью, выполнив все четыре арифметические операции.predicates
operation(symbol,real,real)
clauses
operation("+",X,Y):-Z=X+Y,
write(X,"+",Y,"=",Z),
nl.
operation("-",X,Y):-Z=X-Y,
write(X,"-",Y,"=",Z),
nl.
operation("*",X,Y):-Z=X*Y,
write(X,"*",Y,"=",Z),
nl.
operation("/",X,Y):-Z=X/Y,
write(X,"/",Y,"=",Z),
nl.
Результат: Z=8+2 Z=8-2 Z=8*2 Z=8/2
Z=10 Z=6 Z=16 Z=4
1 Solution 1 Solution 1 Solution 1 Solution
2. Реализовать эту же программу с внутренней целью
predicates
operation(symbol,real,real)
Goal
write(“Vvedite chisla”),
nl,
readreal(X),
nl,
readreal(Y),
nl,
operation(“+”,X,Y),
operation(“-“,X,Y),
operation(“*”,X,Y),
operation(“/ “,X,Y).
clauses
operation("+",X,Y):-Z=X+Y,
write(X,"+",Y,"=",Z),
nl.
operation("-",X,Y):-Z=X-Y,
write(X,"-",Y,"=",Z),
nl.
operation("*",X,Y):-Z=X*Y,
write(X,"*",Y,"=",Z),
nl.
operation("/",X,Y):-Z=X/Y,
write(X,"/",Y,"=",Z),
nl.
Результат: Vvedite chisla
2
4
2+4=6
2-4=-2
2*4=8
2/4=0,5
Задание 9.Реализовать программу задания 4 с новой целью, использующей встроенный предикат fail, и проанализировать полученный результат.
domains
name=symbol
predicates
men(name)
mama(name)
sons(name,name)
doughter(name,name)
deda(name,name)
brother(name,name).
goal
deda(X,”Vaciliy”),
write(X,”Vaciliy”),
nl.
clauses
men(“Vaciliy”).
men(“Michail”).
men(“Maxim”).
mama(“Olga”).
sons(“Michail”,”Olga”).
sons(“Maxim”,”Olga”).
doughter(“Olga”,”Vasiliy”).
deda(X,Y) :--men(X),men(Y),sons(X,Y),doughter(Z,Y),nl,
write(“ “,X),nl, fail.
brother(X,Y) :--men(X),men(Y), sons(X,Z),sons(Y,Z),X<>Y.
Результат: Michail
Maxim
Задание 10.Реализовать программы вычисления суммы следующих рядов:
1. 1 + 2 + 3 + ... + 9 + 10
2. 2 + 4 + 6 + ... + 14 + 16
3. 10 + 9 + 8 + ... + 2 + 1
4. 1 + 3 + 5 + ... + 13 + 15
domains
number,sum=integer
predicates
sum(number,sum)
goal
write(“Сумма ряда : “),
sum(1,sum), write(sum).
clauses
sum(11,0).
sum(Number, Sum) :--
New_number=Number+1,
sum(New_number,Partial_sum),
Sum=Number+Partial_sum.
Результат: Сумма ряда : 55
domains
number,sum=integer
predicates
sum(number,sum)
goal
write(“Сумма ряда : “),
sum(2,sum), write(sum).
clauses
sum(18,0).
sum(Number, Sum) :--
New_number=Number+2,
sum(New_number,Partial_sum),
Sum=Number+Partial_sum.
Результат: Сумма ряда : 72
domains
number,sum=integer
predicates
sum(number,sum)
goal
write(“Сумма ряда : “),
sum(9,sum), write(sum).
clauses
sum(0,11).
sum(Number, Sum) :--
New_number=Number-1,
sum(New_number,Partial_sum),
Sum=Number+Partial_sum
Результат: Сумма ряда : 55
domains
number,sum=integer
predicates
sum(number,sum)
goal
write(“Сумма ряда : “),
sum(1,sum), write(sum).
clauses
sum(17,0).
sum(Number, Sum) :--
New_number=Number+2,
sum(New_number,Partial_sum),
Sum=Number+Partial_sum.
Результат: Сумма ряда : 64
Задание 12.Написать программу, создающую список городов. Выполнить программу с различными внутренними и внешними целями.
domains
town_list=town*
town=symbol
predicates
towns(town_list)
goal
towns([A,B,C,D,E]),
write(A,”,”,B,”,”,C,”,”,D,”,”,E).
clauses
towns([ “Kazan”,”Nignekamsk”,”Elabuga”,”Bugulma”,”Almetevsk” ]).
Результат: Kazan, Nignekamsk, Elabuga, Bugulma, Almetevsk... # будет тесно интегрирован с языком XML[1]. 2.2 Паскаль Паскаль [PASCAL - акроним с французского - Program Applique a la Selection et la Compilation Automatique de la Litterature] - Процедурно-ориентированный язык программирования высокого уровня, разработанный в конце 1960-х гг. Никлаусом Виртом, первоначально для обучения программированию в университетах. Назван в честь французского ...
... THEN действия Полное IF Условие THEN действия 1 ELSE действия 2 Пример алгоритма ветвления на алгоритмическом языке QBasic: INPUT «1 или 2?» IF=1 OR I=2 THEN PRINT “Ок” ELSE PRINT “Вне диапазона” END IF Основные алгоритмические конструкции: Циклический алгоритм. Повторяющееся выполнение действий (групп действий),зависящее от выполнения условия, ...
... вы можете обрабатывать наряду с символами и числами. Он начинается с имени, называемого функтором (в данном случае date), за которым следуют три аргумента. Функтор в Visual Prolog — не то же самое, что функция в других языках программирования; это просто имя, которое определяет вид составного объекта данных и объединяет вместе его аргументы. Функтор не обозначает, что будут выполнены какие-либо ...
... названием "Prolog", а внутри него ярлык на файл "Prolog.exe" с названием "Prolog with databases", ярлык на help-файл и на файл "readme.txt". 3.3 Руководство пользователя программы интерпретатора языка Пролог 3.3.1 Запуск программы Запуск программы можно произвести несколькими способами. Нажать кнопку "Пуск", выбрать в меню пункт "Программы", выбрать пункт "Prolog". После того, как ...
0 комментариев