Мои Конспекты
Главная | Обратная связь

...

Автомобили
Астрономия
Биология
География
Дом и сад
Другие языки
Другое
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Металлургия
Механика
Образование
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Туризм
Физика
Философия
Финансы
Химия
Черчение
Экология
Экономика
Электроника

Задания для самостоятельной работы





1)Коля и Саша носят фамилии Шилов и Гвоздев. Какую фамилию носит каждый из них, если Саша с Шиловым живут в разных домах.

2)В соревнованиях по бегу Юра, Гриша и Толя заняли три первых места. Какое место занял каждый ребенок, если Гриша занял не второе и не третье место, а Толя не третье?

3)Три подруги вышли в белом, зеленом и синем платьях и туфлях. Известно, что только у Ани цвета платья и туфлей совпадали. Ни туфли, ни платье Вали не были белыми. Наташа была в зеленых туфлях. Определить цвета платья и туфель на каждой из подруг.

4)На заводе работали три друга: слесарь, токарь и сварщик. Их фамилии Борисов, Иванов и Семенов. У слесаря нет ни братьев, ни сестер. Он самый младший из друзей. Семенов, женатый на сестре Борисова, старше токаря. Назвать фамилии слесаря, токаря и сварщика.

5)В бутылке, стакане, кувшине и банке находятся молоко, лимонад, квас и вода. Известно, что вода и молоко не в бутылке, сосуд с лимонадом находится между кувшином и сосудом с квасом, в банке - не лимонад и не вода. Стакан находится около банки и сосуда с молоком. Как распределены эти жидкости по сосудам.

6)Воронов, Павлов, Левицкий и Сахаров – четыре талантливых молодых человека. Один из них танцор, другой художник, третий-певец, а четвертый-писатель. О них известно следующее: Воронов и Левицкий сидели в зале консерватории в тот вечер, когда певец дебютировал в сольном концерте. Павлов и писатель вместе позировали художнику. Писатель написал биографическую повесть о Сахарове и собирается написать о Воронове. Воронов никогда не слышал о Левицком. Кто чем занимается?

7)Три друга заняли первое, второе, третье места в соревнованиях универсиады. Друзья разной национальности, зовут их по-разному, и любят они разные виды спорта. Майкл предпочитает баскетбол и играет лучше, чем американец. Израильтянин Саймон играет лучше теннисиста. Игрок в крикет занял первое место. Кто является австралийцем? Каким спортом увлекается Ричард?

8)Три девочки Маша, Рита, Лена пошли гулять. На улице было жарко, и они купили мороженое «Белка», «Стрелка», «Гагара». Какое мороженое купила каждая из девочек, если Лена купила не «Белку» и не «Гагару», а Рита – не «Гагару».

9)В комнате находятся Коля, Света, Оля. Каждый из них сидит на отдельной мебели (кровать, стул, диван). Известно, что Коля сидит не на стуле и не на кровати. Света не сидит на стуле. Кто где сидит?

10)На столе лежат ручка, карандаш, фломастер, красного, синего и зеленого цвета. Известно, что ручка лежит между предметом красного и зеленого цвета. Карандаш либо зеленый, либо синий.

11)Однажды в Артеке за круглым столом оказалось пятеро ребят из Москвы, Санкт-Петербурга, Новгорода, Перми, Томска: Денис, Игорь, Иван, Алеша, Сергей. Москвич сидел между томичем и Сергеем, санкт-петербуржец - между Денисом и Игорем, а напротив него сидел пермяк и Иван. Алеша ни разу не был в Санкт-Петербурге, а Денис не бывал в Москве и Томске, а томич с Игорем регулярно переписываются. Определите, кто в каком городе живет каждый из ребят.

12)На улице, встав в кружок, беседует четыре девочки: Аня, Валя, Надя, Галя. Девочка в зеленом платье – не Аня и не Валя - стоит между девочкой в голубом платье и Галей. Девочка в белом платье стоит между девочкой в розовом платье и Валей. Какого цвета платье у каждой из девочек?

13)Трое юношей: Коля, Дима и Юра влюблены в трех девушек: Аню, Лену, Вику. Но эта любовь без взаимности. Коля любит девушку, влюбленную в юношу, который любит Лену. Дима любит девушку, влюбленную в юношу, который любит Вику. Лена не любит Юру.

14)Составить базу знаний по сказке “Репка”. Фактами в этой базе должны быть утверждения типа тянет(X,Y). Составить правила, определяющие: кто первый тянет репку, кто последний тянет реку, кто тянет после бабки, кто тянет на четвертом месте.

15)Даны числа X, Y, Z, T. X меньше Yи меньше T; Y больше Z и больше T; Z больше X и меньше T. В каком порядке расположены эти числа.

16)На одной yлице стоят 5 домов, окpашенных в 5 pазных цветов. В каждом доме живет гpажданин дpyгой стpаны. Каждый из них пьёт свой напиток, курит свои сигареты и содержит своё домашнее животное. Определите, кто из них содержит рыб? Британец живёт в красном доме. У шведа есть собака. Датчанин пьёт чай. Зелёный дом стоит слева от белого и вплотную к немy. Хозяин зелёного дома пьёт кофе. У того, кто курит Pall-Mall, есть птицы. Хозяин желтого дома курит Dunhills. Хозяин среднего дома пьёт молоко. Норвежец живёт в пеpвом доме. Человек, который курит Blends, живёт рядом с хозяином котов. Тот, кто содержит лошадей, живёт pядом с тем, кто кypит Dunhills. Тот, кто курит Blue Master, пьёт пиво. Hемец кypит Prince. Норвежец живёт рядом с синим домом. У того, кто курит Blends, есть сосед, который пьёт водy.

Рекомендуемая литература

1. Информатика. Задачник-практикум в 2 т./Под ред. И.Г.Семакина, Е.К. Хеннера: Том.2.-М.:-БИНОМ. Лаборатория знаний, 2003.-278 с.:ил.

2. Практикум по логическому программированию: Методические рекомендации для студентов и преподавателей по лабораторному практикуму по курсу «Логическое программирование»/ Сост. Р.И. Баженов, И.И. Раскина. – Омск: Изд-во ОГПУ, 1995. – 85 с.

 

Лабораторная работа №6. Головоломки. Игровые программы.

Пример 1. Нарисовать конверт, не отрывая карандаша от бумаги и не проводя два раза по одной и той же линии. Введем обозначения, ребра – латинскими буквами, вершины - цифрами.

Знания о структуре графа можно представить следующим образом: rebro(a,1,2), rebro(a,2,1), rebro(b,2,3), rebro(b,3,2), rebro(c,1,3), rebro(c,1,2), rebro(c,3,1), rebro(d,2,4), rebro(d,4,2), rebro(e,2,5), rebro(e,5,2), rebro(f,3,4), rebro(f,4,3), rebro(g,3,5), rebro(g,5,3), rebro(h,4,5), rebro(h,5,4).

Решением задачи должен явиться список пройденных ребер графа, причем длина его должна быть равна 8, и в нем не должно быть повторяющихся ребер, что можно описать так:

prohod(T,P):-length(P,8),write_list(P),!.

prohod(T,P):-rebro(R,T,H), not(member(R,P), prohod(H,[R|P).

T-текущая вершина графа, а P-список пройденных ребер. Первое правило означает, что если длина списка P пройденных вершин становится равной 8, то список P выводится на печать. Это правило ограничивает рекурсивный перебор вершин и ребер, проводимый вторым правилом. Второе правило является генератором перебора, оно перебирает предикаты “rebro()” и находит такое ребро R, из текущей вершины Т в новую H, чтобы оно не принадлежало списку P, зато это ребро добавляется в качестве головы к списку P, и поиск дальнейшего пути производится уже из новой вершины H.

Пример 2. Программа “Угадай число”.

Программа 25. Логическая игра «Угадай число»

Predicates

play_the_game

give_info

play_it

generate_rand(integer)

play_it_sam(integer)

test_and_tell(integer,integer)

say_you_got_it_right(integer)

say_too_big

say_too_small

Clauses

play_the_game:-give_info, play_it.

/*информация для пользователя*/

give_info:-makewindow(1,7,7,"",0,0,25,80),

makewindow(2,7,7,"Угадай число", 2,20,22,45),

nl, write("Это игра Угадай число"),

nl, write("Я загадаю число из"),

nl, write("интервала [1,100]"),

nl, write("Я буду подсказывать больше"),

nl, write("или меньше задуманное число"),nl,

nl, write("Кода будешь готов- нажми space bar"),

nl,readchar(_),

clearwindow.

/*выполнение игры*/

play_it:-generate_rand(A),

play_it_sam(A).

/*генерация случайного числа*/

generate_rand(X):-

random(R),

X=1+R*100,

nl,write("Я загадал число"),

nl,write("Теперь дело за Вами"),nl.

/*запрос к пользователю */

play_it_sam(X):-

nl, write ("Введите свой вариант"),

nl, readint(G),

test_and_tell(X,G),

play_it_sam(X).

/* проверка и выдача результата*/

test_and_tell(X,X):- say_you_got_it_right(X),!.

test_and_tell(X,Y):- X>Y, say_too_big,!.

test_and_tell(_,_):- say_too_small.

/*выдача сообщений*/

say_too_big:-nl, write("Загаданное число больше").

say_too_small:-nl, write("Загаданное число меньше").

say_you_got_it_right(X):-nl, write("Вы правы"),

nl,write("Я загадал ",X),

nl, write("До новых встреч!"),

nl, write("Нажмите space bar"),

nl,readchar(_),

exit.

Goal

play_the_game.

 

Пример 3. Игра Баше – 23 спички. На столе 23 спички, 2 игрока по очереди берут от 1 до 3 спичек, проигравшим считается тот, кто возьмет последнюю спичку.

Программа 26. Логическая игра «Игра Баше – 23 спички»

Predicates

play_the_game

do_windows

play(integer,integer,integer)

play_it_again(integer,integer,integer)

real_int(real,integer)

 

Clauses

play_the_game:-do_windows,play(23,0,0).

/*правило для образования окон*/

do_windows:-makewindow(1,7,7,"",0,0,25,80),

makewindow(2,7,7,"Игра 23 спички", 1,5,22,40),

nl, write("Добро пожаловать!"),

M=23, H=0, C=0,

nl, write("Всего ",M," спички" ),

nl, write("По очереди мы будем перемещать " ),

nl, write("спички в свои кучки"),

nl, write("За раз можно взять 1, 2, 3 спички"),nl,

nl, write("Проиграет, тот кто заберет последнюю спичку"),

nl, write("Итак, начнем, всего ", M, "сп."),nl,

nl, write("я взял ",C," сп. Вы взяли ",H, " сп."),nl.

play(M,H,C):-play_it_again(M,H,C).

/*правило определения победителя*/

play_it_again(M,_,_):-

M<=0,

nl, write("Вы выиграли!"),

nl, write("Нажмите любую клавишу для выхода"),

readchar(_), clearwindow,!,exit.

play_it_again(1,_,_):-

nl, write("Я выиграл!"),

nl, write("Нажмите любую клавишу для выхода"),

readchar(_), clearwindow,!,exit.

play_it_again(M,_,_):-

nl, write("Ваш ход"),

nl, write("Сколько спичек вы хотите взять?"),

readint(Hn),

M2=M-Hn, H2=Hn,

write("Осталось ",M2,"сп."),

nl,write("Мой ход"),

random(F), Rea=1+3*F,

real_int(Rea,Rint),

M3=M2-Rint,

nl, write("Я беру ",Rint," сп."),

nl, write("Осталось ",M3, " сп."),nl,

M7=M3,H7=H2,C7=Rint,

play_it_again(M7,H7,C7).

/*вспомогательное правило*/

real_int(Re,In):-In=trunc(Re).

Goal

play_the_game

 




Поиск по сайту:







©2015-2020 mykonspekts.ru Все права принадлежат авторам размещенных материалов.