Лабораторная работа "Программирование на языке ПРОЛОГ"

I. Решить задачу, используя рекурсию.

 

  1. Дано натуральное число N. Составить программу формирования списка, элементами которого являются цифры числа N.
  2. Составить программу, определяющую, в каком из данных двух чисел больше цифр.
  3. Из заданного числа вычли сумму его цифр. Из результата вновь вычли сумму его цифр и т.д. Через сколько таких действий получится нуль?
  4. Составить программу вычисления наибольшего общего делителя двух натуральных чисел.
  5. Составить программу нахождения числа, которое образуется из данного натурального числа при записи его цифр в обратном порядке. Например, для числа 1234 получаем ответ 4321.
  6. Указать все делители натурального числа n.
  7. Найти наибольшую и наименьшую цифры в записи данного натурального числа.
  8. Дано натуральное число n. Найти сумму первой и последней цифры этого числа.
  9. Составить программу, которая находит наибольшее значение отношения трехзначного числа к сумме его цифр.
  10. У гусей и кроликов вместе 64 лапы. Сколько могло быть кроликов и гусей (указать все сочетания, которые возможны)?
  11. Составить список всех трехзначных чисел, в десятичной записи которых нет одинаковых цифр (операции деления и нахождения остатка от деления не использовать).
  12. Дано натуральное число n. Дописать к нему цифру k в конец и в начало.
  13. Найти сумму делителей данного натурального числа.
  14. Найти произведение цифр данного натурального числа.
  15. Написать программу вычисления суммы факториалов всех нечетных чисел от 1 до 9.
  16. Написать программу вычисления суммы факториалов всех четных чисел от 2 до 10.

 

II. Решить задачу на обработку списка.

 

  1. Определить, сколько раз встречается минимальный элемент в списке.
  2. Найти сумму тех элементов списка, которые оканчиваются на заданную цифру.
  3. Выбрать максимальный из модулей элементов списка.
  4. Сколько нулей в списке?
  5. Выяснить, упорядочены ли элементы списка по возрастанию.
  6. В списке натуральных чисел подсчитать их количество, оканчивающихся заданной цифрой.
  7. В заданном списке определить максимальное количество подряд идущих положительных чисел.
  8. Найти сумму чётных элементов списка целых чисел.
  9. Определить, сколько раз встречается максимальный элемент в списке.
  10. Определить количество нечётных отрицательных элементов в списке целых чисел.
  11. Указать минимальный элемент среди нечётных чисел в списке.
  12. Определить количество ненулевых элементов списка.
  13. Найти разность максимального и минимального элементов списка.
  14. Между какими степенями двойки расположены все положительные элементы списка?
  15. Если сумма элементов списка отрицательна, вывести –1, если положительна — 1, если равна нулю, то 0.
  16. Определить количество раз, которое меняется знак в списке чисел, отличных от нуля.

 

III. Решить задачу на обработку списка.

 

  1. Определим множество как список без повторяющихся элементов. Преобразовать заданный список во множество.
  2. Определим множество как список без повторяющихся элементов. Найти симметричную разность множеств.
  3. Определим множество как список без повторяющихся элементов. Найти объединение множеств.
  4. Определим множество как список без повторяющихся элементов. Найти пересечение множеств.
  5. Определим множество как список без повторяющихся элементов. Найти разность множеств.
  6. Определим множество как список без повторяющихся элементов. Найти дополнение множества.
  7. Определим множество как список без повторяющихся элементов. Доказать закон де Моргана для объединения.
  8. Определим множество как список без повторяющихся элементов. Доказать закон де Моргана для пересечения.
  9. Определим множество как список без повторяющихся элементов. Доказать I дистрибутивный закон.
  10. Определим множество как список без повторяющихся элементов. Доказать II дистрибутивный закон.
  11. Определим множество как список без повторяющихся элементов. Для двух заданных множеств определить, является ли одно из них подмножеством другого.
  12. Определим множество как список без повторяющихся элементов. Составить множество из цифр заданного числа.
  13. Реализовать сортировку списка выбором.
  14. Реализовать сортировку списка слиянием.
  15. Реализовать сортировку списка с помощью пирамиды (кучи, heap).
  16. Реализовать сортировку списка подсчетом.

 

IV. Решить логическую задачу.

 

  1. Болельщики футбольных команд делали прогнозы об итогах соревнований «Турнир четырех»:
    — Я уверен, что Спартак будет чемпионом, а ЦСКА займет последнее место — сказал Иван.
    — Что ты, Спартак выше третьего не поднимется, а ЦСКА станет вторым — возразил Сергей.
    — Чемпионом будет Динамо, а ЦСКА войдет в тройку сильнейших — сделал свой прогноз Петр.
    — Динамо будет вторым, а вот Ротор точно будет последним — промолвил Алексей.
    Выяснилось, что каждый из болельщиков был прав в одном прогнозе и ошибся во втором. Как распределились места, занятые командами?
    
  2. Три подразделения А, В, С торговой фирмы стремились получить по итогам года максимальную прибыль. Экономисты высказали следующие предположения:
    1)	А получит максимальную прибыль только тогда, когда получат максимальную прибыль В и С,
    2)	Либо А и С получат максимальную прибыль одновременно, либо одновременно не получат,
    3)	Для того чтобы подразделение С получило максимальную прибыль, необходимо, чтобы и В получило максимальную прибыль.
    По завершении года оказалось, что одно из трех предположений ложно, а остальные два истинны. Какие из названных подразделений получили максимальную прибыль?
    
  3. Задача «Валютные махинации».
    В нарушении правил обмена валюты подозреваются четыре работника банка — Антипов (А), Борисов (B), Цветков (С) и Дмитриев (D). Известно:
    1)	если А нарушил правила обмена валюты, то и В нарушил;
    2)	если В нарушил, то и С нарушил или А не нарушил;
    3)	если D не нарушил, то А нарушил, а С не нарушил;
    4)	если D нарушил, то и А нарушил.
    Кто из подозреваемых нарушил правила обмена валюты?
    
  4. Задача «Пятеро друзей».
    Пятеро друзей решили записаться в кружок любителей логических задач:
    Андрей (А), Николай (N), Виктор (V), Григорий (G), Дмитрий (D).
    Но староста кружка поставил им ряд условий: «Вы должны приходить к нам так, чтобы:
    1)	если А приходит вместе с D, то N должен присутствовать обязательно;
    2)	если D отсутствует, то N должен быть, а V пусть не приходит;
    3)	А и V не могут одновременно ни присутствовать, ни отсутствовать;
    4)	если придет D, то G пусть не приходит;
    5)	если N отсутствует, то D должен присутствовать, но это в том случае, если не присутствует V;
            если же и V присутствует при отсутствии N, то D приходить не должен, a G должен прийти».
    В каком составе друзья смогут прийти на занятия кружка?
    
  5. Брауну, Джонсу и Смиту предъявлено обвинение в соучастии в ограблении банка. Похитители скрылись на поджидавшем их автомобиле. На следствии Браун показал, что преступники скрылись на синем «Бьюике»; Джонс сказал, что это был черный «Крайслер», а Смит утверждал, что это был «Форд Мустанг» и ни в коем случае не синий. Стало известно, что, желая запутать следствие, каждый из них указал правильно либо только марку машины, либо только ее цвет. Какого цвета и какой марки был автомобиль?
  6. Для полярной экспедиции из восьми претендентов А, В, С, D, Е, F, G и Н надо отобрать шестерых специалистов: биолога, гидролога, синоптика, радиста, механика и врача. Обязанности биолога могут выполнять Е и G, гидролога — В и F, синоптика — F и G, радиста — Си D, механика — С и Н, врача — А и D. Хотя некоторые претенденты владеют двумя специальностями, в экспедиции каждый сможет выполнять только одну обязанность. Кого и кем следует взять в экспедицию, если F не может ехать без В, D — без С и без Н, С не может ехать одновременно с G, а A вместе с B?

    Задания 2-6 заимствованы из книги Е.В. Андреева, Л.П. Босова, И.Н. Фалина. Математические основы информатики. Учебное пособие. — М.: БИНОМ, Лаборатория знаний, 2005. — 328 с.

  7. Трое ребят вышли гулять с собакой, кошкой и хомячком. Известно, что Петя не любит кошек и живет в одном подъезде с хозяйкой хомячка. Лена дружит с Таней, гуляющей с кошкой. Определить, с каким животным гулял каждый из детей?
  8. Витя, Юра и Миша сидели на скамейке. В каком порядке они сидели, если известно, что Юра сидел слева от Миши и справа от Вити?
  9. Четыре человека играют в домино.
    Их фамилии Кузнецов, Токарев, Слесарев и Резчиков.
    Профессия каждого игрока соответствует фамилии одного из других игроков.
    Напротив Кузнецова сидит слесарь.
    Напротив Резчикова сидит резчик.
    Справа от Слесарева сидит токарь.
    Кто сидит слева от кузнеца?
    
  10. В одной школе уроки по истории, математике, биологии, географии,
    английскому и французскому языку вели три учителя – Морозов,
    Васильев и Токарев. Каждый из них преподавал два предмета.
    Географ и учитель французского языка – соседи по дому.
    Учитель биологии старше учителя математики. Морозов – самый молодой.
    В понедельник первый урок по расписанию у Токарева, у биолога и
    у учителя французского языка.
    В воскресенье Морозов, математик и учитель английского язык были на рыбалке.
    Какие предметы преподает каждый учитель?
    
  11. Есть четыре боксера: Томас Герберт, Герберт Френсис, Френсис Джеймс и Джеймс Томас. Герберт намного сильнее Томаса. Френсис сильнее и Томаса и Герберта. Герберт слабее Джеймса, но сильнее Френсиса. В каком порядке нужно расположить боксеров от слабейшего к сильнейшему?
  12. Имеется четыре котенка – Дружок, Елисей, Фантик и Мурлыка и четыре мальчика – Миша, Максим, Леня и Дима. Каждый мальчик взял себе котенка любимого цвета.
    При этом:
    1. Фантик – не рыжий
    Мурлыка – не серый
    2. Дружок – не белый
    Елисей – не серый
    3. У Миши – черный котенок
    У Максима – Мурлыка
    4. У Лени – Елисей
    У Димы – белый котенок
    5. Дима не взял Фантика
    Дружок – не серый
    Одно из этих пяти утверждений ложное.
    У какого мальчика какой котенок?
    
  13. Пять детей - Алик, Боря, Витя, Лена и Даша - приехали в лагерь
    из 5 разных городов: Харькова, Умани, Полтавы, Славянска и Краматорска. Есть 4 высказывания:
    1) Если Алик не из Умани, то Боря из Краматорска.
    2) Или Боря, или Витя приехали из Харькова.
    3) Если Витя не из Славянска, то Лена приехала из Харькова.
    4) Или Даша приехала из Умани, или Лена из Краматорска.
    Кто откуда приехал?
    
  14. На одной улице стоят 5 домов, окрашенных в 5 разных цветов. В каждом доме живет гражданин одной из стран. Каждый из них пьёт свой напиток, курит свои сигареты и содержит своё домашнее животное. Определите, кто из них содержит рыб? Британец живёт в красном доме. У шведа есть собака. Датчанин пьёт чай. Зелёный дом стоит слева от белого и вплотную к нему. Хозяин зелёного дома пьёт кофе. У того, кто курит Pall-Mall, есть птицы. Хозяин желтого дома курит Dunhills. Хозяин среднего дома пьёт молоко. Норвежец живёт в первом доме. Человек, который курит Blends, живёт рядом с хозяином котов. Тот, кто содержит лошадей, живёт рядом с тем, кто курит Dunhills. Тот, кто курит Blue Master, пьёт пиво. Немец курит Prince. Норвежец живёт рядом с синим домом. У того, кто курит Blends, есть сосед, который пьёт воду.
  15. В комнате находятся Коля, Света, Оля. Каждый из них сидит на отдельной мебели (кровать, стул, диван). Известно, что Коля сидит не на стуле и не на кровати. Света не сидит на стуле. Кто где сидит?
  16. На столе лежат ручка, карандаш, фломастер, красного, синего и зеленого цвета. Известно, что ручка лежит между предметом красного и зеленого цвета. Карандаш либо зеленый, либо синий.

Рейтинг ресурсов УралWeb

 

© А.П. Шестаков, 2008-2011
Сайт создан в системе uCoz