ПРОЛОГ  лабораторные работы, Упражнения и задачи из Основы ЭВМ. Бирский филиал Башкирский государственный университет (БФ БашГУ)
anastasiya-mashkova
anastasiya-mashkova

ПРОЛОГ лабораторные работы, Упражнения и задачи из Основы ЭВМ. Бирский филиал Башкирский государственный университет (БФ БашГУ)

DOCX (41 KB)
30 стр-ы.
13Количество скачиваний
483Количество просмотров
100%на 1Количество голосов
Описание
лабораторные работы по программе пролог
20 баллов
Количество баллов, необходимое для скачивания
этого документа
Скачать документ
Предварительный просмотр3 стр-ы. / 30
Это только предварительный просмотр
3 стр. на 30 стр.
Скачать документ
Это только предварительный просмотр
3 стр. на 30 стр.
Скачать документ
Это только предварительный просмотр
3 стр. на 30 стр.
Скачать документ
Это только предварительный просмотр
3 стр. на 30 стр.
Скачать документ

Лабораторная работа 1.2. с 11

1.2 Тема: “Набор, редактирование и тестирование простейших программ в режиме Test Goal”

1. Имеется база данных, содержащая следующие факты:

любит(“Aнна,” яблоки).

любит(“Сергей”, бананы).

любит(“Андрей”, яблоки).

любит(“Света”, шоколад).

любит(“Вова”, шоколад).

любит(“Анна”, шоколад).

любит(“Света”, апельсины).

любит(“Вова”, бананы).

Составить программу, определяющую:

a. всех, кто любит бананы;

b. кто любит и шоколад, и яблоки;

c. что любит Вова;

d. что любят и Света, и Вова.

1. DOMAINS name=string

PREDICATES

nondeterm love(name, name)

CLAUSES

love(anna, yabloki).

love(sergey, banan).

love(andrey, yabloki).

love(sveta, shokolad).

love(vova, shokolad).

love(anna, shokolad).

love(sveta, apelsiny).

love(vova, banan).

GOAL

love(X, banan).

2)

GOAL

love(X, shokolad), love(Y, yabloki), X=Y.

3)

GOAL

love(vova, X).

4)

GOAL

love(vova, X), love(sveta, Y), X=Y.

2. Имеется база данных, содержащая следующие факты:

играет (“Саша”, футбол).

играет (“Катя”, теннис).

играет (“Саша”, теннис).

играет (“Андрей”, футбол).

играет (“Олег”, футбол).

играет (“Ольга”, теннис).

играет (“Катя”, волейбол).

играет (“Олег”, волейбол).

Составить программу, определяющую:

a. каким видом спорта увлекается Андрей;

b. всех, кто играет в волейбол;

c. каким видом спорта увлекаются и Ольга, и Саша;

d. кто увлекается и футболом, и волейболом.

1) DOMAINS

name=string

PREDICATES

nondeterm play(name, name)

CLAUSES

play(sasha, football).

play(katya, tennis).

play(sasha, tennis).

play(andrey, football).

play(oleg, football).

play(olga, tennis).

play(katya, voleyball).

play(oleg, voleyball).

GOAL

play(andrey, X).

2)

GOAL

play(X, voleyball).

3)

GOAL

play(olga, X), play(sasha, Y), X=Y.

4)

GOAL

play(X, football), play(Y, voleyball), X=Y.

3. Имеется база данных, содержащая следующие факты:

любит(“Aнна,” яблоки).

любит(“Сергей”, бананы).

любит(“Андрей”, яблоки).

любит(“Света”, шоколад).

любит(“Вова”, шоколад).

любит(“Анна”, шоколад).

любит(“Света”, апельсины).

любит(“Вова”, бананы).

фрукты(яблоки ).

фрукты(бананы).

фрукты(апельсины ).

конфеты(шоколад).

a. используя имеющиеся факты, составить новое правило люб_фрукты(Х) и определить всех, кто любит фрукты;

b. используя имеющиеся факты, составить новое правило люб_конфеты (Х) и определить всех, кто любит конфеты;

c. используя имеющиеся факты, составить правило люб_вкусное) и определить всех, кто любит и фрукты, и конфеты.

1)

DOMAINS

name=string

PREDICATES

nondeterm love(name, name)

fruit (name)

sweet(name)

nondeterm loveF (name, name)

nondeterm loveS (name, name)

nondeterm loveALL (name, name)

CLAUSES

love(anna, yabloki).

love(sergey, banan).

love(andrey, yabloki).

love(sveta, shokolad).

love(vova, shokolad).

love(anna, shokolad).

love(sveta, apelsin).

love(vova, banan).

fruit (yabloki).

fruit (banan).

fruit (apelsin).

sweet (shokolad).

loveF (X, Y):-love(X,Y), fruit(Y).

loveS (X, Z):-love(X,Z), sweet(Z).

loveALL (X, H):-love(X,H).

GOAL

loveF(X,Y).

2)GOAL

loveS(X,Y).

3)

GOAL loveALL(X,Y).

4. Имеется база данных, содержащая следующие факты:

играет (“Саша”, футбол).

играет (“Катя”, теннис).

играет (“Саша”, теннис).

играет (“Андрей”, футбол).

играет (“Олег”, футбол).

играет (“Ольга”, теннис).

играет (“Катя”, волейбол).

играет (“Олег”, волейбол).

женщина(“Катя”).

женщина(“Ольга”).

мужчина(“Саша”).

мужчина(“Андрей”).

мужчина(“Олег”).

a. используя имеющиеся факты, составить новое правило волейбол_жен (Х) и определить всех женщин, играющих в волейбол;

b. используя имеющиеся факты, составить новое правило футбол_муж (Х) и определить всех мужчин, играющих в футбол;

c. используя имеющиеся факты, составить правило теннис_пара(Х,Y), позволяющее найти смешанную теннисную пару (мужчина+женщина). Определить все такие пары.

1)

GOAL

vo(X, Y).

2)

GOAL

mf(X, Y).

3)

DOMAINS

name=string

PREDICATES

nondeterm play(name, name)

woman (name)

man(name)

nondeterm vo(name, name)

nondeterm mf (name, name)

nondeterm tp (name, name)

CLAUSES

play(sasha, football).

play(katya, tennis).

play(sasha, tennis).

play(andrey, football).

play(oleg, football).

play(olga, tennis).

play(katya, voleyball).

play(oleg, voleyball).

woman (katya).

woman (olga).

man (sasha).

man (andrey).

man(oleg).

vo(X,Y):-play(X, Y), woman(X), Y = voleyball.

mf(X,Y):-play(X,Y), man(X), Y = football.

tp(X, Y):-play(X, tennis), play (Y, tennis), man (X), woman (Y).

GOAL

tp(X, Y).

1.3. Тема “ Создание простейших проектов ” c.15 Доработайте исходный код примера следующим образом:

1) добавьте новое правило бабушка и определите, кто является бабушкой;

2) добавьте новое правило внук и определите, кто внук Анны;

3) добавьте новое правило брат и определите, кто брат Димы;

4) добавьте новое правило сестра и определите, кто сестра Ивана.

1)

DOMAINS

name=string

PREDICATES

nondeterm parent(name,name)

woman(name)

man(name)

nondeterm baba(name, name)

CLAUSES

parent(ivan,katya).

parent(anna,oleg).

parent(oleg,dima).

parent(igor,olga).

parent(oleg,viktor).

parent(igor,ivan).

man(dima).

man(ivan).

man(igor).

man(oleg).

man(viktor).

woman(katya).

woman(olga).

woman(anna).

baba(X,Z):-parent(X,Y), parent(Y,Z), woman(X).

GOAL

baba(X,Y).

2)

DOMAINS

name=string

PREDICATES

nondeterm parent(name,name)

woman(name)

man(name)

nondeterm vnyk(name)

CLAUSES

vnyk(X):-parent(anna, Y), parent(Y, X), man(X).

GOAL

vnyk(X).

3)

DOMAINS

name=string

PREDICATES

nondeterm parent(name,name)

woman(name)

man(name)

nondeterm brat(name)

CLAUSES

brat(Y):-parent(X, dima),parent(X,Y), man(Y).

GOAL

brat(X).

4)

DOMAINS

name=string

PREDICATES

nondeterm parent(name,name)

woman(name)

man(name)

nondeterm sestra(name)

CLAUSES

sestra(Y):-parent(X, ivan),parent(X,Y), woman (Y).

GOAL

sestra(X).

1.4. Тема “Поиск с возвратом” с. 18

1. База данных содержит следующие факты:

увлекается(“Коля”, гитара).

увлекается(“Оля”, скрипка).

увлекается(“Дима”, плаванье).

увлекается(“Таня”, теннис).

спорт(плаванье).

спорт(теннис).

муз_инстр(скрипка).

муз_инстр(гитара).

а) составить правило спортсмен и определить, кто увлекается спортом;

б) проследить за поиском решения с помощью отладчика;

в) построить целевое дерево поиска с возвратом.

2. База данных содержит следующие факты:

увлекается(“Дима”, плаванье).

увлекается(“Таня”, теннис).

увлекается(“Коля”, гитара).

увлекается(“Оля”, скрипка).

спорт(плаванье).

спорт(теннис).

муз_инстр(скрипка).

муз_инстр(гитара).

а) составить правило музыкант и определить, кто увлекается музыкой;

б) проследить за поиском решения с помощью отладчика;

в) построить целевое дерево поиска с возвратом.

1) DOMAINS

name = string

PREDICATES

nondeterm uvl(name, name).

nondeterm sport(name).

nondeterm muz(name).

nondeterm sportsman (name).

CLAUSES

uvl (kolya, gitara).

uvl (olya, skripka).

uvl (dima, plavanie).

uvl (tanya, tennis).

sport (plavanie).

sport (tennis).

muz (gitara).

muz (skripka).

sportsman (Y):-uvl (Y, Z), sport(Z).

GOAL

sportsman(X), write(X),nl.

2)

DOMAINS

name = string

PREDICATES

nondeterm uvl(name, name).

nondeterm sport(name).

nondeterm muz(name).

nondeterm music (name).

CLAUSES

uvl (kolya, gitara).

uvl (olya, skripka).

uvl (dima, plavanie).

uvl (tanya, tennis).

sport (plavanie).

sport (tennis).

muz (gitara).

muz (skripka).

music (Y):-uvl (Y, Z), muz(Z).

GOAL

music(X), write(X),nl.

1.5. Тема “Управление поиском с возвратом:предикаты fail и отсечения” с. 23

1. База данных содержит факты вида: отдыхает(имя, город), украина (город), россия(город), женщина (имя), мужчина(имя ).

а) вывести список женщин, отдыхающих в России;

б) вывести список мужчин, отдыхающих на Украине.

1.

а)

PREDICATES

nondeterm otdix(symbol,symbol)

jen (symbol)

mu (symbol)

spisok

CLAUSES

otdix(russia,anna).

otdix(russia,petr).

otdix(ukr,petya).

otdix(ukr,luba).

jen (anna).

jen (luba).

mu (petr).

mu (petya).

spisok:-otdix(russia, X), jen(X), write (X),nl,fail.

GOAL

write("ЖЕНЩИНЫ РОССИИ"),nl,spisok.

б)

PREDICATES

nondeterm otdix(symbol,symbol)

jen (symbol)

mu (symbol)

spisok

CLAUSES

otdix(russia,anna).

otdix(russia,petr).

otdix(ukr,petya).

otdix(ukr,luba).

jen (anna).

jen (luba).

mu (petr).

mu (petya).

spisok:-otdix(ukr, X), mu(X), write(X),nl,fail.

GOAL

write("МУЖЧИНЫ УКРАИНЫ"),nl,spisok.

2. База данных содержит факты вида: книга(автор, название, издательство, год_издания), украина(город).

а) вывести весь список книг;

б) вывести список книг авторов Пушкина и Чехова;

в) вывести список книг, изданных в издательстве «Питер» не ранее 2000 года.

2.

а)

PREDICATES

nondeterm kniga(symbol,symbol, symbol, integer)

spisok

CLAUSES

kniga(pushkin, evgeny_onegin, azbuka, 2017).

kniga(chehov, vokrug_chehova, azbuka, 2010).

kniga(tolstoy,anna_karenina, veche, 2017).

kniga(pravilo15,saharnii_chelovek, piter, 2017).

spisok:-kniga(X, Y, Z, H), write(X, " ", Y, " ", Z, " ", H),nl,fail.

GOAL

write("ÂÑÅ ÊÍÈÃÈ"),nl,spisok.

б)

PREDICATES

nondeterm kniga(symbol,symbol, symbol, integer)

spisok

CLAUSES

kniga(pushkin, evgeny_onegin, azbuka, 2017).

kniga(chehov, vokrug_chehova, azbuka, 2010).

kniga(tolstoy,anna_karenina, veche, 2017).

kniga(pravilo15,saharnii_chelovek, piter, 2017).

spisok:-kniga(chehov, Y, Z, H), write("ЧЕХОВ", " ", Y, " ", Z, " ", H),nl,fail.

spisok:-kniga(pushkin, Y, Z, H), write ("ПУШКИН", " ", Y, " ", Z, " ", H),nl,fail.

GOAL

write("КНИГИ ЧЕХОВА И ПУШКИНА"),nl,spisok.

в)

PREDICATES

nondeterm kniga(symbol,symbol, symbol, integer)

spisok

CLAUSES

kniga(pushkin, evgeny_onegin, azbuka, 2017).

kniga(chehov, vokrug_chehova, azbuka, 2010).

kniga(tolstoy,anna_karenina, veche, 2017).

kniga(pravilo15,saharnii_chelovek, piter, 2017).

spisok:-kniga(X, Y, piter, H), H>2010, write(X, " ", Y, " ", "ПИТЕР", " ", H),nl,fail.

GOAL

write("ПИТЕР, >2010"),nl,spisok.

3. Составить программу, реализующую авиасправочник. В справочнике содержится следующая информация о каждом рейсе: номер рейса, пункт назначения, время вылета, дни(ежедн., чет, нечет). Вывести:

а) всю информацию из справочника;

б) информацию о самолетах, вылетающих в заданный пункт по четным дням;

в) информацию о самолетах, вылетающих ежедневно не позже указанного времени.

3.

а)

PREDICATES

nondeterm avia(integer,symbol, integer, symbol)

spisok

CLAUSES

avia(1, moskva, 21, ezhe).

avia(2, piter, 14, chet).

avia(3, ufa, 2, nechet).

avia(4, kazan, 13, ezhe).

spisok:-avia(X, Y, Z, H), write(X, " ", Y, " ", Z, " ", H),nl,fail.

GOAL

write("ÂÑÅ ÐÅÉÑÛ"),nl,spisok.

б)

PREDICATES

nondeterm avia(integer,symbol, integer, symbol)

spisok

CLAUSES

avia(1, moskva, 21, ezhe).

avia(2, piter, 14, chet).

avia(3, ufa, 2, nechet).

avia(4, kazan, 13, ezhe).

spisok:-avia(X, piter, Z, chet), write(X, " ", "piter", " ", Z, " chet"),nl,fail.

GOAL

write("В ПИТЕР ПО ЧЕТНЫМ"),nl,spisok.

в)

PREDICATES

nondeterm avia(integer,symbol, integer, symbol)

spisok

CLAUSES

avia(1, moskva, 21, ezhe).

avia(2, piter, 14, chet).

avia(3, ufa, 2, nechet).

avia(4, kazan, 13, ezhe).

spisok:-avia(X, Y, Z, ezhe), Z > 14, write(X, " ", Y, " ", Z, " ezhe") , nl,fail.

GOAL

write("Поздние ежедневники"),nl,spisok.

4. Составить программу, реализующую географический справочник. В справочнике содержится следующая информация о каждой стране: название страны, название столицы, численность населения, географическое положение (Европа или Азия ). Вывести:

а) всю информацию из справочника;

б) информацию о странах, численность населения которых превышает заданное значение;

в) информацию о европейских странах, численность населения которых не превышает заданное значение.

4.

а)

PREDICATES

nondeterm geo(symbol, symbol, integer, symbol)

spisok

CLAUSES

geo(kitai, pekin, 1380, azia).

geo(germany, berlin, 82, europe).

geo(france, paris, 66, europe).

geo(mongolia, ulan_bator, 3, azia).

spisok:-geo(X, Y, Z, H), write(X, " ", Y, " ", Z, " ", H) , nl,fail.

GOAL

write("ВЕСЬ СПИСОК"),nl,spisok.

б)

PREDICATES

nondeterm geo(symbol, symbol, integer, symbol)

spisok

CLAUSES

geo(kitai, pekin, 1380, azia).

geo(germany, berlin, 82, europe).

geo(france, paris, 66, europe).

geo(mongolia, ulan_bator, 3, azia).

spisok:-geo(X, Y, Z, H), Z > 80, write(X, " ", Y, " ", Z, " ", H), nl,fail.

GOAL

write("СТРАНЫ, В КОТОРЫХ БОЛЬШЕ 80 МЛН."),nl,spisok.

в)

PREDICATES

nondeterm geo(symbol, symbol, integer, symbol)

spisok

CLAUSES

geo(kitai, pekin, 1380, azia).

geo(germany, berlin, 82, europe).

geo(france, paris, 66, europe).

geo(mongolia, ulan_bator, 3, azia).

spisok:-geo(X, Y, Z, europe), Z < 80, write(X, " ", Y, " ", Z), nl,fail.

GOAL

write("ЕВРОПЕЙСКИЕ СТРАНЫ, ЧИСЛЕННОСТЬ КОТОРЫХ МЕНЬШЕ 80 МЛН."),nl,spisok.

5. Составить программу, реализующую словарь. В словаре содержится следующая информация: слово и его перевод (русские и английские слова). Реализовать вывод всего словаря, перевод с русского на английский, с английского на русский (с несколькими значениями).

5.

PREDICATES

nondeterm slovo(symbol, symbol)

russ(symbol)

eng(symbol)

spisok

CLAUSES

slovo(yabloko, apple).

slovo(dom, house).

russ(yabloko).

russ(dom).

eng(apple).

eng(house).

spisok:-slovo(X, Y), write(X, " - ", Y), nl,fail.

spisok:-slovo(X, Y), write(Y, " - ", X), nl,fail.

GOAL

write("ÂÅÑÜ ÑËÎÂÀÐÜ"),nl,spisok.

6. Составить программу, реализующую телефонный справочник. В справочнике содержится следующая информация о каждом абоненте: имя и телефон. Реализовать вывод всей информации из справочника, поиск телефона по имени, поиск имени по телефону

6.

а)

PREDICATES

nondeterm tel(symbol, integer)

spisok

CLAUSES

tel(anna, 111).

tel(vadik, 231).

tel(masha, 3334).

tel(sanya, 918).

spisok:-tel(X, Y), write(X, " - ", Y), nl,fail.

GOAL

write("ÒÅËÅÔÎÍÍÛÉ ÑÏÐÀÂÎ×ÍÈÊ"),nl,spisok.

б)

PREDICATES

nondeterm tel(symbol, integer)

spisok

CLAUSES

tel(anna, 111).

tel(vadik, 231).

tel(masha, 3334).

tel(sanya, 918).

spisok:-tel(X, Y), write(X, " - ", Y), nl,fail.

GOAL

readln(X), tel(X, Y), write(Y), nl,fail.

в)

PREDICATES

nondeterm tel(symbol, symbol)

spisok

CLAUSES

tel(anna, "111").

tel(vadik, "231").

tel(masha, "3334").

tel(sanya, "918").

spisok:-tel(X, Y), write(X, " - ", Y), nl,fail.

GOAL

readln(X), tel(Y, X), write(Y), nl,fail.

7. База данных содержит факты вида: ученик(имя, класс) и увлекается(имя, хобби). Составить программу, которая выводит:

а) список всех учеников и их увлечения;

б) подбирает одному из учеников указанного класса, увлекающемуся кино, пару из других классов. Вывести все возможные пары.

7.

а)

PREDICATES

nondeterm name(symbol, symbol)

nondeterm hobby(symbol, symbol)

spisok

CLAUSES

name(vadik, "7").

name(violeta, "9").

name(egor, "6").

name(anna, "8").

hobby(vadik, football).

hobby(violeta, football).

hobby(egor, birds).

hobby(anna, birds).

spisok:-name(X, Y), hobby(H, Z), X = H, write(X, " - ", Z), nl,fail.

GOAL

write("ÂÑÅ"),nl,spisok.

б)

PREDICATES

nondeterm name(symbol, symbol)

nondeterm hobby(symbol, symbol)

spisok

CLAUSES

name(vadik, "7").

name(violeta, "9").

name(egor, "6").

name(anna, "8").

hobby(vadik, football).

hobby(violeta, football).

hobby(egor, cinema).

hobby(anna, cinema).

spisok:-name(X, Y), hobby(H, Z), X = H, write(X, " - ", Z), nl,fail.

GOAL

readln(X), name(Y, X), hobby(Y, H), hobby(O, H), write(O), nl,fail.

8. База данных содержит факты вида: ученик(имя, класс) и играет(имя, вид_спорта). Составить программу, которая:

а) выводит список всех учеников заданного класса и вид спорта, которым они увлекаются;

б) подбирает одному из учеников указанного класса, играющему в бадминтон, пару из других классов. Вывести все возможные пары.

8.

а)

PREDICATES

nondeterm name(symbol, symbol)

nondeterm hobby(symbol, symbol)

CLAUSES

name(vadik, "7").

name(violeta, "6").

name(egor, "6").

name(anna, "7").

hobby(vadik, football).

hobby(violeta, football).

hobby(egor, bad).

hobby(anna, bad).

GOAL

readln(X), name(Y, X), hobby(Y, H), write(Y, " - ", H), nl,fail.

б)

PREDICATES

nondeterm name(symbol, symbol)

nondeterm hobby(symbol, symbol)

CLAUSES

name(vadik, "7").

name(violeta, "6").

name(egor, "6").

name(anna, "7").

hobby(vadik, football).

hobby(violeta, football).

hobby(egor, bad).

hobby(anna, bad).

GOAL

readln(X), hobby(Y, X), name(Y, H), write(Y), nl,fail.

1.6. Арифметические вычисления с 27 ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ

1. Составить программу для вычисления значения выражения Y=(X2+1)/ (X-2) для введенного X.

2. Составить программу для вычисления значения выражения S=2(X2+Y2)/ (X+Y) для введенных X и Y.

3. Составить программу для вычисления значения выражения z=exsinx +3lnx для введенного X.

4. Составить программу для вычисления значения выражения y=ln(lg(sinx +ex))для введенного X.

5. Составить программу для вычисления среднего арифметического двух введенных чисел.

6. Составить программу для вычисления среднего геометрического двух введенных чисел.

7. Составить программу для проверки введенного натурального числа на четность.

8. Составить программу для проверки попадает ли введенное число X в заданный промежуток [a,b].

9. Составить программу для выбора наименьшего из трех введенных чисел.

10. Составить программу для выбора наибольшего из трех введенных чисел.

1.

PREDICATES

nondeterm zn(real, real)

CLAUSES

zn(X,Y):-Y=(X*2+1)/(X-2).

GOAL

readreal(X), zn(X, Y), write(Y), nl, fail.

2.

PREDICATES

nondeterm zn(real, real, real)

CLAUSES

zn(X, Y, Z):-Z=2*(X*2+Y*2)/(X+Y).

GOAL

readreal(X), readreal (Y), zn(X, Y, Z), write(Z), nl, fail.

3.

PREDICATES

nondeterm zn(real, real)

CLAUSES

zn(X, Y):-Y=exp(X)*sin(X)+3*ln(X).

GOAL

readreal(X), zn(X, Y), write(Y), nl, fail.

4.

PREDICATES

nondeterm zn(real, real)

CLAUSES

zn(X, Y):-Y=ln(log(sin(X)+exp(X))).

GOAL

readreal(X), zn(X, Y), write(Y), nl, fail.

5.

PREDICATES

nondeterm zn(real, real, real)

CLAUSES

zn(X, Y, Z):-Z=(X+Y)/2.

GOAL

readreal(X), readreal(Y), zn(X, Y, Z), write(Z), nl, fail.

6.

PREDICATES

nondeterm zn(real, real, real)

CLAUSES

zn(X, Y, Z):-Z=(X*Y)/2.

GOAL

readreal(X), readreal(Y), zn(X, Y, Z), write(Z), nl, fail.

7.

PREDICATES

nondeterm zn(integer)

CLAUSES

zn(X):-X mod 2 = 0, write ("×ÅÒÍÎÅ"),!.

zn(X):-X mod 2 = 1, write ("ÍÅ×ÅÒÍÎÅ").

GOAL

readreal (X), zn(X), fail.

8.

PREDICATES

nondeterm zn(integer, integer, integer)

CLAUSES

zn(X, Y, Z):-Z>=X, Z<=Y, write("ÏÎÏÀË"),!.

zn(X, Y, Z):-write("ÍÅ ÏÎÏÀË").

GOAL

readreal (X), readreal(Y), readreal(Z), zn(X, Y, Z), fail.

9.

PREDICATES

nondeterm zn(integer, integer, integer)

CLAUSES

zn(X, Y, Z):-X<=Y, X<=Z, write(X),!.

zn(X, Y, Z):-Y<=X, Y<=Z, write(Y),!.

zn(X, Y, Z):-Z<=X, Z<=Y, write(Z).

GOAL

readreal (X), readreal(Y), readreal(Z), zn(X, Y, Z), fail.

10.

PREDICATES

nondeterm zn(integer, integer, integer)

CLAUSES

zn(X, Y, Z):-X>=Y, X>=Z, write(X),!.

zn(X, Y, Z):-Y>=X, Y>=Z, write(Y),!.

zn(X, Y, Z):-Z>=X, Z>=Y, write(Z).

GOAL

readreal (X), readreal(Y), readreal(Z), zn(X, Y, Z), fail.

1.7. Тема “Рекурсия” с 30

1. Вычислить сумму 1+2+3+…+N.

2. Подсчитать сумму ряда целых четных чисел от 2 до N.

3. Вычислить сумму ряда целых нечетных чисел от 1 до n.

4. Найти значение произведения: 2*4*6*...*26

5. Найти значение произведения: 1*3*5*...*11

6. Вычислить значение n-го члена ряда Фибоначчи: f(0)=0, f(1)=1, f(n)=f(n-1)+f(n-2).

7. Используя базу данных и правило предок из примера 2 составить правило для определения всех потомков-мужчин.

8. Используя базу данных и правило предок из примера 2 составить правило для определения всех потомков-женщин.

1.

PREDICATES

zn(integer, integer)

CLAUSES

zn(0,0):-!.

zn(X,Y):-X1 = X - 1, zn(X1, Y1), Y = Y1+X.

GOAL

readint (X), zn(X, Y), write (Y),nl.

2.

PREDICATES

zn(integer, integer)

CLAUSES

zn(1,0):-!.

zn(X,Y):-X1 = X - 1, zn(X1, Y1), Y = Y1+X.

GOAL

readint (X), zn(X, Y), write (Y),nl.

3.

PREDICATES

zn(integer, integer)

CLAUSES

zn(-1, 0):-!.

zn(0, 0):-!.

zn(X,Y):- X mod 2 = 1, X1 = X - 2, zn(X1, Y1), Y = Y1+X,!.

zn(X,Y):- X mod 2 = 0, X1 = X - 2, zn(X1, Y1), Y = Y1+X-1.

GOAL

readint (X), zn(X, Y), write (Y),nl.

4.

PREDICATES

fact(integer,integer)

CLAUSES

fact(0,1):-!.

fact(N,F):- N1=N-2, fact(N1,F1), F=N*F1.

GOAL

fact(26,F),write("F=",F),nl.

5.

PREDICATES

fact(integer,integer)

CLAUSES

fact(-1,1):-!.

fact(N,F):- N1=N-2, fact(N1,F1), F=N*F1.

GOAL

fact(13,F),write("F=",F),nl.

6.

PREDICATES

fib(integer,integer)

CLAUSES

fib(1,1):-!.

fib(2,1):-!.

fib(N,F):- N1=N-1, fib(N1,F1), N2=N-2, fib(N2,F2), F=F1+F2.

GOAL

readint(N), fib(N, F), write(F), nl.

7.

DOMAINS

name=string

PREDICATES

Здесь пока нет комментариев
Это только предварительный просмотр
3 стр. на 30 стр.
Скачать документ