Задания на лабораторную работу



Вариант 1.

1. Вставить список l1 после k-го элемента списка l.

2. Применить быструю сортировку к n последним элементам списка, состоящего из атомов.

 

Вариант 2.

1. Удалить m элементов списка l, следующих после k-го элемента l.

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

 

Вариант 3.

1. Заменить k-й элемент списка l списком l1. l - список, элементами которого являются списки.

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

 

Вариант 4.

1. Обратить отрезок списка l между k1-ым и k2-ым его элементами. l - список, элементами которого являются атомы.

2. Применить сортировку вставкой к тем элементам списка списков, длина которых превышает 3.

 

 

Вариант 5.

1. Обратить данный список l, удалив из него элементы, совпадающие с первым элементом списка l. l - список, элементами которого являются списки.

2. Применить быструю сортировку к списку простых числовых списков по минимальному элементу.(сами списки –элементы не сортировать)

((8 5) (5 4 1) (3 2) (2 6)) -> ((5 4 1) (3 2) (2 6) (8 5))

 

 

Вариант 6.

1. Удалить из простого числового списка все четные элементы, идущие до первого нечетного, и все четные после последнего нечетного.

(2 8 7 3 2 4 7 9 1 4) -> (7 3 2 4 7 9 1)  

2. Применить сортировку обменом (пузырьком) к списку простых числовых списков по их сумме. (сами подсписки не сортировать)

 

 

Вариант 7.

1. Удалить из списка l все подсписки, длины которых равны их порядковым номерам в l. Например, в случае l =[ [a], [b], [c, d ,e]]), необходимо удалить подсписки [a] и [c, d ,e].    

2. Применить сортировку выбором к тем подспискам списка простых числовых списков, которые не содержат нечетных элементов.

 

Вариант 8.

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

2. Применить быструю сортировку к подспискам списка простых числовых списков, стоящих на четных местах.

 

Вариант 9.

1. l1, l2 - списки, элементами которых являются атомы.      Выяснить, содержит ли список l1 все элементы из списка l2 (только одно вхождение).

2. Применить сортировку выбором к элементам простого числового списка, начиная с k-го индекса и заканчивая m-ым.

 

Вариант 10.

1. l - список, элементами которого являются числа в диапазоне от 0 до 9. Подсчитать число, получающееся по следующему правилу: если l = [ 5, 1, 2, 6], то число = 5*1000 + 1*100 + 2*10 + 6 = 5126.

2. Применить сортировку вставкой к первым n элементам простого списка.

 

Пример выполнения.

1. l1, l2 - списки, элементами которых являются атомы. Заменить элементами второго списка элементы первого, начиная с элемента первого списка, совпавшего с первым элементом второго. Если первый элемент второго списка отсутствует в первом, присоединить второй в конец первого.

[1,2,3,4,5,6] [4,3,8,7] -> [1,2,3,4,3,8,7]

Решение.

Основной предикат будет иметь три аргумента – два входных списка и результат. Вспомогательный рекурсивный предикат будет иметь такие же аргументы. Во-первых, опишем случай, когда первый аргумент есть пустой список – тогда результат есть просто второй список. Во-вторых, если голова первого списка совпадает с головой второго, нам нужно выдать в качестве результата второй список и закончить работу – используем отсечение, при этом хвост первого списка нас не интересует – опишем его анонимной переменной. И, наконец, шаг рекурсии – если головы списков не совпали, то нужно найти список - результат для хвоста первого списка и слить голову первого списка с этим результатом – для слияния списков использована функция conc, рассмотренная в разделе 6.2.    

Можно написать и короче последнюю строку, без использования предиката conc, который использовался только для пояснения получения результата:

Пример выполнения:

 

2. Применить быструю сортировку к подспискам, содержащим заданное число.

Решение.

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

Далее проверяем наличие заданного элемента в подсписке-голове с помощью предиката member и применяем быструю сортировку к подсписку, если предикат member был согласован. Иначе переписываем подсписок в результат без сортировки (при этом заданное число можно объявить анонимной переменной). И в обоих случаях вызываем рекурсивно обработку хвоста списка. Вспомогательные предикаты для сортировки и проверки принадлежности элемента списку были описаны выше.

Пример выполнения:

 

 

 

Лабораторная работа № 7.


Дата добавления: 2019-03-09; просмотров: 957; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!