Основы программирования на языке Пролог

Самостоятельные задания


  1. Создайте предикат, заменяющий в исходном списке первое вхождение заданного значения другим.
  2. Создайте предикат, заменяющий в исходном списке все вхождения заданного значения другим.
  3. Создайте предикат, порождающий по заданному натуральному числу N список, состоящий из натуральных чисел от 1 до N (по возрастанию).
  4. Создайте предикат, порождающий по заданному натуральному числу N список, состоящий из натуральных чисел от N до 1 (по убыванию).
  5. Создайте предикат, порождающий по заданному натуральному числу N список, состоящий из N случайных натуральных чисел из промежутка от 1 до 100.
  6. Создайте предикат, порождающий по заданным числам N, M, K список, состоящий из N случайных натуральных чисел из промежутка от M до K.
  7. Создайте предикат, порождающий по заданным числам M, K список, состоящий из случайного количества случайных чисел из промежутка от M до K.
  8. Создайте предикат, порождающий список, состоящий из случайного количества случайных чисел.
  9. Создайте предикат, который увеличивает элементы исходного списка на единицу.
  10. Создайте предикат, переводящий список цифр от 0 до 9 в список соответствующих им названий (строк).
  11. Создайте предикат, переводящий список чисел в список соответствующих им названий.
  12. Создайте предикат, переводящий список цифр от 0 до 9 в список соответствующих им римских чисел.
  13. Создайте предикат, переводящий список арабских чисел в список соответствующих им римских чисел.
  14. Создайте предикат, переводящий список римских чисел в список соответствующих им арабских чисел.
  15. Создайте предикат, удваивающий значения элементов списка.
  16. Создайте предикат, преобразующий список, элементами которого являются числа, в список, элементы которого неотрицательны.
  17. Создайте предикат, преобразующий исходный список в список позиций отрицательных элементов.
  18. Создайте предикат, удаляющий из исходного списка элементы с четными номерами.
  19. Создайте предикат, который разделит исходный список из целых чисел на два списка: список положительных чисел и список отрицательных чисел.
  20. Создайте предикат, разделяющий исходный список на два подсписка. В первый из них должны попасть элементы с нечетными номерами, во второй - элементы с четными номерами.
  21. Создайте предикат, вычисляющий по списку и числу, подсписок исходного списка, начинающийся с элемента с указанным номером.
  22. Создайте предикат, осуществляющий удаление указанного количества последних элементов исходного списка.
  23. Создайте предикат, осуществляющий разделение исходного списка на два подсписка. В первый из них должно попасть указанное количество элементов из начала списка, во второй - оставшиеся элементы.
  24. Создайте предикат, осуществляющий разделение исходного списка на два подсписка. В первый из них должно попасть указанное количество элементов с конца списка, во второй - оставшиеся элементы.
  25. Создайте предикат, находящий предпоследний элемент списка.
  26. Создайте предикат, удаляющий предпоследний элемент списка.
  27. Создайте предикат, заменяющий в исходном списке два подряд идущих одинаковых элемента одним.
  28. Создайте предикат, удаляющий в исходном списке все повторные вхождения элементов.
  29. Создайте предикат, осуществляющий перестановку двух элементов списка с заданными номерами.
  30. Создайте предикат, генерирующий все перестановки элементов списка, указанного в качестве первого аргумента предиката.
  31. Создайте предикат, осуществляющий циклический сдвиг элементов списка на один влево (вправо).
  32. Создайте предикат, осуществляющий циклический сдвиг элементов списка на заданное количество шагов влево (вправо).
  33. Создайте предикат, осуществляющий поэлементное перемножение соответствующих элементов двух исходных списков.
  34. Создайте предикат, вычисляющий скалярное произведение векторов, заданных списками целых чисел.
  35. Создайте предикат, осуществляющий подсчет числа вхождений каждого элемента исходного списка. Ответом должен быть список пар, в которых первая компонента - элемент исходного списка, вторая - число его вхождений в первоначальный список.
  36. Создайте предикат, определяющий первую позицию подсписка в списке.
  37. Создайте предикат, добавляющий элементы одного списка во второй список, начиная с заданной позиции.
  38. Создайте предикат, возвращающий по списку и двум числам M и N подсписок исходного списка, состоящий из элементов с номерами от M до N.
  39. Создайте предикат, формирующий список простых чисел, не превосходящих данного числа.
  40. Создайте предикат, транспонирующий матрицу, заданную списком списков.


Содержание раздела