Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PROLOG_Labs / Лабораторная работа 5.doc
Скачиваний:
113
Добавлен:
20.03.2015
Размер:
61.95 Кб
Скачать

Практическое задание

  1. Определить два предиката чётнаядлина(Список) и нечётнаядлина(Список) таким образом, чтобы они были истинными, если их аргументом является список четной и нечётной длины соответственно.

  2. Определить отношение перевод(Список1,Список2) для модификации списка чисел от 0 до 9 в список соответствующих слов. Например, перевод([3,1,7],[три,один,семь]).

  3. Напишите предикат палиндром(Список). Список называется палиндромом, если он читается одинаково как справа налево, так и слева направо. Например, [м,а,д,а,м].

Индивидуальное задание. Напишите программу согласно своему варианту.

  1. Написать программу на Прологе, при использовании которой из предложенного списка англоязычных слов пользователь смог бы выбрать одно из них и получить его русский эквивалент.

  2. Написать программу, которая объединяет два списка в один, упорядочивает полученный список и находит произведение его первого и последнего элементов.

  3. Обратить два имеющихся списка, объединить их и найти среднее арифметическое значение элементов.

  4. Написать программу, которая объединяет два списка и обращает полученный список.

  5. Написать программу, которая находит разность между максимальным и минимальным элементами списка, являющегося обращенным по отношению к заданному.

  6. Написать программу на Прологе, которая находит среднее арифметическое между максимальным и минимальным элементами двух объединенных списков.

  7. В данном списке, полученном путем обращения исходного, найти максимальный элемент, удалить из списка его первое вхождение, а остальные элементы, равные максимальному, уменьшить на величину n, где n – позиция соответствующего элемента в списке.

  8. Дан некоторый список чисел. Получить новый список, который состоит из элементов, превышающих соответствующие элементы исходного списка в 5 раз. Получить среднее арифметическое элементов исходного списка и сумму элементов результирующего списка.

  9. Упорядочить два объединенных исходных списка. Найти число элементов полученного списка. Если это число нечетное, то вывести элемент, являющийся центральным в данном списке, если же число элементов четное, то вывести два центральных элемента.

  10. Написать программу, которая позволяет получить новый список путем объединения двух исходных списков, далее разделяет его на два других, первый из которых содержит нечетные элементы, а второй – четные.

  11. Объедините два списка, найдите среднее арифметическое между максимальным и минимальным элементами списка. Удалите из списка те элементы, которые делятся без остатка на целую часть от полученного среднего арифметического.

  12. Обратите введенный пользователем список и упорядочите его. Найдите среднее арифметическое тех элементов списка, которые делятся на 4.

  13. Написать программу, которая находит разность между максимальным и минимальным элементами списка и удаляет все элементы из данного списка, равные этой разности.

  14. Даны два списка: первый – список чисел от 1 до 33, а второй – это список букв русского алфавита. После того, как пользователь задаст какой-либо список из чисел в пределах от 1 до 33, на экран должен быть выведен соответствующих этим числам список букв. Подсчитать длину полученного в итоге списка.

  15. Обеспечить ввод двух исходных списков. Упорядочить каждый из введённых списков. Найти максимальные и минимальные элементы в этих списках. Объединить списки и заменить элементы, равные максимальному элементу из первого списка, на сумму максимального и минимального элементов второго списка, а элементы, равные минимальному элементу второго списка, на разность максимального и минимального элементов первого списка.

  16. Написать программу, объединяющую два исходных списка в один, удаляющую из полученного списка все элементы, равные максимальному, и заменяющую элементы, равные минимальному, их порядковыми номерами.

  17. Написать программу, которая объединяет два списка, удаляет все элементы, равные максимальному, и подсчитывает длину оставшегося списка.

  18. Объединить два заданных списка. Из полученного списка удалить все чётные элементы.

  19. Объединить два исходных списка. Заменить все четные элементы списка величиной (ai+maxнечет), а нечетные элементы величиной (ai+minчет), где ai – i-ый элемент списка, maxнечет – максимальный элемент среди нечетных элементов списка, minчет – минимальный элемент среди четных элементов списка.

  20. Написать программу, умножающую все элементы исходного списка на величину минимального элемента и разделяющую полученный список на три других таким образом, чтобы первый из них содержал четные элементы, второй – элементы, делящиеся на три без остатка, третий – все остальные элементы.

  21. Найти среднее арифметическое между минимальным элементом заданного списка и произведением всех элементов этого списка. Удалите из списка все элементы, равные целой части полученного числа.

  22. Написать программу, обращающую заданный пользователем список. Из списка удалить все элементы, кратные 2, оставляя те элементы, которые делятся на 6.

  23. В исходном списке найти минимальный и максимальный элементы. Вывести результат на экран. Далее, при поэлементном выводе списка на экран, вместо элементов, равных максимальному или минимальному элементу, должна выводиться информация: «максимальный элемент» или «минимальный элемент» соответственно.

  24. Написать программу, которая позволяет объединить два исходных списка, обратить полученный список и заменить все четные элементы величиной (max-min)*n, где max – максимальный элемент списка, min – минимальный элемент списка, n – порядковый номер соответствующего элемента в списке.