/Prolog-2

Primary LanguageProlog

Open in Visual Studio Code

LP_Lab2

Язык Пролог и его применение для решения логических задач

Цель работы: Написать и отладить Пролог-программу решения логической задачи в соответствии с номером варианта, проанализировать эффективность, безопасность и непротиворечивость решения. Под эффективностью и безопасностью понимать сведение к минимуму операций перебора и предотвращение зацикливания и комбинаторного взрыва нелогическими средствами языка Пролог. Под непротиворечивостью понимать поиск единственно верного решения (Примечание: каждая из задач лабораторной работы имеет ровно одно решение).

Вариант задания следут вычислять как ((N-1) mod 28) + 1, где N - номер по списку в группе.

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

  2. В одном городе живут 7 любителей птиц. И фамилии у них птичьи. Каждый из них тезка птицы, которой владеет один из его товарищей. У троих из них живут птицы, которые темнее, чем пернатые "тезки"их хозяев. "Тезка"птицы, которая живет у Воронова, женат. Голубев и Канарейкин единственные холостяки из всей компании. Хозяин грача женат на сестре жены Чайкина. Невеста хозяина ворона очень не любит птицу, с которой возится ее жених. "Тезка"птицы, которая живет у Грачева, хозяин канарейки. Птица, которая является "тезкой"владельца попугая, принадлежит "тезке"той птицы, которой владеет Воронов. У голубя и попугая оперение светлое. Кому принадлежит скворец?

  3. Как-то раз случай свел в купе известного астронома, поэта, прозаика и драматурга. Это были Алексеев, Борисов, Константинов и Дмитриев. Оказалось, что каждый из них взял с собой книгу, написанную одним из пассажиров этого купе. Алексеев и Борисов углубились в чтение, предварительно обменявшись купленными книгами. Поэт читал пьесу. Прозаик, очень молодой человек, выпустивший свою первую книгу, говорил, что он никогда ничего не читает по астрономии. Борисов купил в дорогу одно из произведений Дмитриева. Никто из пассажиров не покупал и не читал книги, написанные им самим. Что читал каждый из них? Кто кем был?

  4. Левин, Митерев и Набатов работают в банке в качестве бухгалтера, кассира и счетовода. Если Набатов кассир, то Митерев счетовод. Если Набатов счетовод, то Митерев бухгалтер. Если Митерев не кассир, то Левин не счетовод. Если Левин бухгалтер, то Набатов счетовод. Кто какую должность занимает?

  5. Перед началом шахматного матча болельщики обсуждали шансы сильнейших участников предстоящего состязания: Пешкина, Ладейникова, Королева и Слонова. Все сходились на том, что этой четверке обеспечены первые 4 места в турнирной таблице. А более подробные прогнозы болельщики предпочитали высказывать в несколько туманной форме. Вот что они говорили:

    • 1-й болельщик: Все они наберут разное количество очков. Дележки мест в таблице не будет. Если Пешкин не займет первое место, то Королеву достанется лишь четвертое.
    • 2-й болельщик: Если Королев займет третье место, то Пешкин займет четвертое. Но у Пешкина положение в турнирной таблице должно быть лучше, чем у Слонова.
    • 3-й болельщик: Если Ладейников не завоюет первое место, тогда Пешкин выйдет на третье место. А если Королеву удастся занять второе место, то Слонов, конечно, не будет на четвертом месте.
    • 4-й болельщик: Если Королев займет первое место, то вторым будет Слонов. А если Слонов не будет на втором месте, то и Ладейников не займет второго места.

    И представьте себе, ни один из прогнозов не разошелся с истинным результатом матча. Кто какие места занял?

  6. Может быть, вы и не поверите, но в одном городке жили два чудака: Чук и Гек. Чук совершенно не мог говорить правду по понедельникам, вторникам и средам, хотя в остальные дни он неизменно был правдив. А Гек врал по вторникам, четвергам и субботам, но в другие дни он говорил только правду. Как-то я повстречал эту неразлучную пару и спросил одного из них: Скажи пожалуйста, как тебя зовут? Тот без малейшего колебания ответил: Чук. А скажи-ка мне, какой сегодня день недели? Вчера было воскресенье,сказал мой собеседник. А завтра будет пятница,- добавил его приятель. Подожди, как же так? изумился я, обращаясь к приятелю моего собеседника.Ты уверен, что говоришь правду? Я всегда говорю правду по средам,- услышал я в ответ. Решив, что больше со мной говорить не о чем, приятели пошли дальше, оставив меня в полном недоумении. Но, подумав, я все-таки сообразил, кто из двух друзей был Чук, а кто Гек. Между прочим, по разговору можно установить и день недели, в который я встретился с ними. Попробуйте сообразить и вы.

  7. На одном международном конгрессе встретились 4 делегата из разных стран. Каждый из них владел двумя языками из 4 (английский, французский, немецкий, итальянский). Однако, оказалось, что не было такого языка, на котором они могли бы говорить вчетвером. И был только один язык, на котором могли вести беседу трое из них. Никто из делегатов не владеет французским и немецким языками одновременно. Хотя физик не говорит по-английски, он может служить переводчиком, если математик и биолог захотят поговорить друг с другом. Биолог говорит по-немецки и может говорить с химиком, хотя тот не знает ни одного немецкого слова. Физик, математик и химик не могут беседовать втроем на одном языке. Какими двумя языками владеет каждый из них?

  8. Борисов, Кириллов, Данин и Савин инженеры. Один из них автомеханик, другой химик, третий строитель, четвертый радиотехник. Борисов, который обыгрывает в шахматы Данина, но проигрывает Савину, бегает на лыжах лучше того инженера, который моложе его, и ходит в театр чаще, чем тот инженер, который старше Кириллова. Химик, который посещает театр чаще, чем автомеханик, но реже, чем строитель, не является ни самым молодым, ни самым старшим из этой четверки. Строитель, который на лыжах бегает хуже, чем радиотехник, как правило, проигрывает в шахматных сражениях автомеханику. Самый пожилой из инженеров лучше всех играет в шахматы и чаще всех бывает в театре, а самый молодой лучше всех ходит на лыжах. Назовите профессии каждого из инженеров, если известно, что ни в спорте, ни в приверженности к театру среди нет двух одинаковых.

  9. Один из пяти братьев разбил окно. Андрей сказал: Это или Витя, или Толя. Витя сказал: Это сделал не я и не Юра. Дима сказал: Нет, один из них сказал правду, а другой неправду. Юра сказал: Нет, Дима ты не прав. Их отец, которому, конечно можно доверять, уверен, что не менее трех братьев сказали правду. Кто разбил окно?

  10. В одном городе живут 5 человек. Их имена Леонид, Михаил, Николай, Олег и Петр. Их фамилии Атаров, Бартенев, Кленов, Данилин и Иванов. Бартенев знаком только с двумя из перечисленных мужчин. Петр знаком со всеми, кроме одного. Леонид знаком только с одним из всех. Данилин и Михаил незнакомы. Николай и Иванов знают друг друга. Михаил, Николай и Олег знакомы между собой. Атаров незнаком только с одним из всех. Только один из всех знаком с Кленовым. Назовите имена и фамилии каждого. С кем знаком каждый из них?

  11. 6 человек назовем их А, Б, В, Г, Д и Е кандидаты посты председателя, заместителя председателя и секретаря правления общества любителей логических задач. Но определить состав этой тройки оказалось не так-то легко. Судите сами: А не хочет входить в состав руководства, если Д не будет председателем. Б не хочет входить в состав руководства, если ему придется быть старшим над В. Б не хочет работать вместе с Е ни при каких условиях. В не хочет работать, если в состав руководства войдут Д и Е вместе. В не будет работать, если Е будет председателем, или если Б будет секретарем. Г не будет работать с В или Д, если ему придется подчиняться тому или другому. Д не хочет быть заместителем председателя. Д не хочет быть секретарем, если в состав руководства войдет Г. Д не хочет работать вместе с А, если Е не войдет в состав руководства. Е согласен работать только в том случае, если председателем будет либо он, либо В. Как они решили эту проблему? .

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

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

  14. В педагогическом институте Аркадьева, Бабанова, Корсакова, Дашков, Ильин и Флеров преподают географию, английский язык, французский язык, немецкий язык, историю и математику. Преподаватель немецкого языка и преподаватель математики в студенческие годы занимались художественной гимнастикой. Ильин старше Флерова, но стаж работы у него меньше, чем у преподавателя географии. Будучи студентками, Аркадьева и Бабанова учились вместе в одном университете. Все остальные окончили педагогический институт. Флеров отец преподавателя французского языка. Преподаватель английского языка самый старший из всех и по возрасту и по стажу. Он работает в этом институте с тех пор, как окончил его. Преподаватели математики и истории его бывшие студенты. Аркадьева старше преподавателя немецкого языка. Кто какой предмет преподает? .

  15. Корнеев, Докшин, Мареев и Скобелев жители нашего города. Их профессии пекарь, врач, инженер и милиционер. Корнеев и Докшин соседи и всегда на работу ездят вместе. Докшин старше Мареева. Корнеев регулярно обыгрывает Скобелева в пинг-понг. Пекарь на работу всегда ходит пешком. Милиционер не живет рядом с врачом. Инженер и милиционер встречались один-единственный раз, когда милиционер оштрафовал инженера за нарушение правил уличного движения. Милиционер старше врача и инженера. Определите, кто чем занимается.

  16. Комендант переселял студентов на время ремонта общежития. Дело это не простое. Судите сами. На очередную комнату было 8 кандидатов, а поселить в нее можно было только четырех. Пошел комендант расспрашивать студентов, кто с кем жить хочет. Вот, что он услышал: Андрей согласен на любых соседей. Борис без Кости не переселится. Костя не хочет жить в одной комнате с Василием. Василий согласен жить с кем угодно. Дима не будет переселяться без Юры. Федя не будет без Гриши жить в одной комнате с Димой, а без Димы не будет жить в одной комнате с Костей. Гриша не хочет, чтобы его соседями были Борис и Костя вместе, а кроме того он не желает жить в одной комнате ни с Андреем, ни с Василием. Юра даст согласие переехать в новую комнату, если туда же переберутся либо Борис, либо Федя. Кроме того, Юра не будет жить в одной комнате с Костей, если туда не переедет Гриша, и не желает жить в одной комнате ни с Андреем, ни с Василием. Каким образом комендант смог учесть все пожелания?

  17. В семье Семеновых пять человек: муж, жена, их сын, сестра мужа и отец жены. Все они работают. Один инженер, другой юрист, третий слесарь, четвертый экономист, пятый учитель. Вот что еще известно о них. Юрист и учитель не кровные родственники. Слесарь хороший спортсмен. Он пошел по стопам экономиста и играет в футбол за сборную завода. Инженер старше жены своего брата, но моложе, чем учитель. Экономист старше, чем слесарь. Назовите профессии каждого члена семьи Семеновых.

  18. В нашем городе обувной магазин закрывается каждый понедельник, хозяйственный каждый вторник, продовольственный каждый четверг, а парфюмерный магазин работает только по понедельникам, средам и пятницам. В воскресенье все магазины закрыты. Однажды подруги Ася, Ира, Клава и Женя отправились за покупками, причем каждая в свой магазин и притом в один. По дороге они обменивались такими замечаниями. Ася. Женя и я хотели пойти вместе еще раньше на этой неделе, но не было такого дня, чтобы мы обе могли сделать наши покупки. Ира. Я не хотела идти сегодня, но завтра я уже не смогу купить то, что мне нужно. Клава. А я могла бы пойти в магазин и вчера и позавчера. Женя. А я могла бы пойти и вчера и завтра. Скажите, кому какой магазин нужен?

  19. Кондратьев, Давыдов и Федоров живут на нашей улице. Один из них столяр, другой маляр, третий водопроводчик. Недавно маляр хотел попросить своего знакомого столяра сделать кое-что для своей квартиры, но ему сказали, что столяр работает в доме водопроводчика. Известно также, что Федоров никогда не слышал о Давыдове. Кто чем занимается?

  20. Дина, Соня, Коля, Рома и Миша учатся в институте. Их фамилии Бойченко, Карпенко, Лысенко, Савченко и Шевченко. Мать Ромы умерла. Родители Дины никогда не встречались с родителями Коли. Студенты Шевченко и Бойченко играют в одной баскетбольной команде. Услышав, что родители Карпенко собираются поехать за город, мать Шевченко пришла к матери Карпенко и попросила, чтобы та отпустила своего сына к ним на вечер, но оказалось, что отец Коли уже договорился с родителями Карпенко и пригласил их сына к Коле. Отец и мать Лысенко хорошие друзья родителей Бойченко. Все четверо очень довольны, что их дети собираются пожениться. Установите имя и фамилию каждого из молодых людей и девушек.

  21. Дима, Герман и Олег студенты. Каждый из них увлекается тремя предметами из четырех: биологией, химией, историей, математикой. Вот что они говорили о своих склонностях. Герман. Дима единственный из нас, кто любит историю. Олег и я увлекаемся одними и теми же предметами. Мы все считаем биологию интереснейшей наукой. Двое из нас любят и химию, и биологию. Олег. Нам всем очень нравится математика. Герман завзятый историк. В одном из увлечений мы расходимся с Димой. Герман и Дима любят химию. Дима. Есть только один предмет, который любим мы все. Математикой увлекаюсь я один. Каждый из нас любит разное сочетание дисциплин. Олег ошибается, говоря, что Герман и я увлекаемся химией. Известно, что только два из утверждений каждого студента соответствуют действительности. Попробуйте сказать, какими науками увлекается каждый из них?

  22. В одной школе уроки по биологии, географии, английскому языку, французскому языку, истории и математике вели три учителя Морозов, Васильев и Токарев. Каждый из них преподавал два предмета. Учитель географии и учитель французского языка соседи по дому. Морозов самый младший из троих. Все трое Токарев, учитель биологии и учитель французского языка ездят из школы вместе. Учитель биологии старше учителя математики. В свободное время, если им удастся найти четвертого партнера, учитель английского языка, учитель математики и Морозов играют в домино. Кто какие предметы преподает?

  23. Четверо друзей: Алексей Иванович, Федор Семенович, Валентин Петрович и Григорий Аркадьевич были как-то со своими детьми в парке культуры и отдыха. Они катались на "колесе обозрения". В кабинах колеса оказались вместе: Леня с Алексеем Ивановичем, Андрей с отцом Коли, Тима с отцом Андрея, Федор Семенович с сыном Валентина Петровича, а Валентин Петрович с сыном Алексея Ивановича. Назовите, кто чей сын, и кто с кем катался, если известно, что ни один из мальчиков не катался со своим отцом.

  24. Сергеев, Панин, Борисов и Леднев решили посоревноваться на звание лучшего рыбака. Но ведь рыба рыбе рознь. Поэтому они решили каждую рыбу оценивать по-разному: поймал судака получай 5 очков, за леща 4, за окуня 2, а за ерша 1 очко. Единственного судака поймал Сергеев. Было выловлено всего 3 окуня. Все рыбаки вместе набрали 18 очков. Меньше всего очков получил Панин, хотя он и наловил больше всех. Панин и Борисов вместе набрали столько же очков, сколько Сергеев и Леднев вместе. И наконец, у всех оказалось разное количество очков. Определите, какой улов был у каждого из рыбаков?

  25. Незадолго до Нового года мать собрала своих дочерей. "Поговорим, девушки, о подарках,- сказала она. Каждая из вас может истратить по двадцати рублей. Разделите свои деньги каждая на три разные части, но так, чтобы в любой из них было целое число рублей. На подарки для дяди Алеши расходуйте наименьшую часть денег. На подарки для отца тратьте среднюю из частей. А самые дорогие подарки покупайте для тети Маргариты. Только постарайтесь разделить деньги каждая по-разному". Девушки в точности выполнили условия. Известно, что они израсходовали на подарки тете Маргарите в общей сложности 52 рубля. Даша потратила на подарок для дяди Алеши меньше всех 3 рубля. Сколько денег израсходовали девушки на подарки для отца?

  26. Отец дал каждой из своих дочерей по 8 рублей на покупки. Я хочу, чтобы к Восьмому марта каждая из вас,- сказал он,- купила подарки для тети Нади, тети Дины, тети Розы и тети Сони. Но при этом постарайтесь выполнить три условия. Каждый подарок должен стоить целое число рублей. Каждая из вас должна по-разному распределить восемь рублей на четыре подарка. Подарки для каждой женщины должны в сумме стоить одинаково. Девушки точно выполнили наказ своего отца. Люся истратила на подарок для тети Нади больше денег, чем на подарки для всех остальных женщин вместе. Клара израсходовала на подарки для тети Сони и тети Розы столько же денег, сколько Люся истратила на покупку для двух других женщин. Самый дорогой подарок Марины предназначался для тети Дины, а Наташа самый дорогой из своих подарков преподнесла тете Розе. Пятую дочь звали Светлана. Как израсходовала каждая из девушек свои деньги?

  27. Тренер команды пятиборцев решил устроить для своих воспитанников отборочные соревнования. В программу состязаний он включил все пять видов спорта: плавание, кросс, фехтование, стрельбу и верховую езду. В итоге соревнований по сумме набранных баллов на первое место вышел Ачкасов, затем шли Боровский, Колоколов, Дикушин и на последнем месте оказался Емельянов. Система оценки результатов была такая: занявший первое место в состязании по тому или другому виду спорта получал 5 баллов, следующий за ним 4 балла и т.д. Ачкасов закончил соревнования, набрав 24 балла. Колоколов получил по четырем видам спорта одинаковые баллы. Емельянов завоевал первенство в соревнованиях по стрельбе, а по верховой езде вышел на третье место. Какое место на соревнованиях по стрельбе занял Боровский? .

  28. В Н-ской части служили 5 офицеров: генерал, полковник, майор, капитан и лейтенант. Один из них сапер, другой пехотинец, третий танкист, четвертый связист, а пятый артиллерист. У каждого из них есть сестра. И каждый из них женат на сестре своего однополчанина. Вот что еще известно об этих офицерах. Связист не самый старший по званию. Капитан никогда не служил в Горьком. Оба родственника пехотинца и оба родственника танкиста служили раньше в Ленинграде. Ни один родственник генерала в Ленинграде не был. Танкист служил в Киеве вместе с обоими своими родственниками, а лейтенант там не служил. Полковник служил в Свердловске вместе со своими родственниками. Танкист не служил в Свердловске. Там служил только один из его родственников. Генерал служил с обоими своими родственниками в Горьком, а в Свердловске он не бывал. Артиллерист не служил ни в Горьком, ни в Киеве. Определите, кто из офицеров какое звание имеет?