Лабораторная работа №9. Prolog. Работа со списками
1. Реализовать стек в виде списка. Заполнить стек случайными действительными числами от -100 до 100. Удалить из него все однозначные элементы, используя второй стек и одну переменную. Значения элементов стеков до и после перестановки вывести на экран.
2. Реализовать стек в виде списка. Дана величина a строкового типа из четного количества символов (стек №1). Получить и напечатать величину b (стек №2), состоящую из символов первой половины величины a, записанных в обратном порядке, после которых идут символы второй половины величины a (используя промежуточный стек №3). Например, при а = "привет" b должно быть равно "ирпвет".
3. Реализовать очередь в виде списка. Заполнить очередь случайными действительными числами от -100 до 100. Переставить ее члены так, чтобы сначала расположились все ее отрицательные члены, а потом - все положительные. Порядок как среди положительных членов, так и среди отрицательных должен быть сохранен прежним. Для временного хранения положительных и отрицательных элементов использовать стеки. Значения элементов очереди до и после перестановки вывести на экран.
4. Реализовать стек в виде списка. Заполнить стек случайными действительными числами от -100 до 100. Удалить из него все положительные элементы, используя второй стек и одну переменную. Значения элементов стеков до и после перестановки вывести на экран.
5. Реализовать стек в виде списка. Заполнить стек случайными действительными числами от -100 до 100. Удалить из стека, каждый третий элемент. На дне находится первый элемент. Значения элементов стеков до и после перестановки вывести на экран.
6. Реализовать очередь в виде списка. Заполнить очередь случайными действительными числами от -100 до 100. Переставить ее члены так, чтобы сначала расположились все ее нечетные члены, а потом - все четные. Порядок как среди четных членов, так и среди нечетных должен быть сохранен прежним. Для временного хранения четных и нечетных элементов использовать стеки. Значения элементов очереди до и после перестановки вывести на экран.
7. Реализовать стек в виде списка. Заполнить стек случайными действительными числами от -100 до 100. Удалить из стека все числа не кратные заданному пользователем N. Значения элементов стеков до и после перестановки вывести на экран.
8. Реализовать стек в виде списка. Заполнить стек случайными действительными числами от -100 до 100. Разделить содержимое стека на два стека однозначных и двузначных чисел соответственно. При этом записанный в какой-либо новый стек элемент из исходного стека удаляется. После выполнения операции разделения в исходном стеке данных нет. Значения элементов стеков до и после перестановки вывести на экран.
9. Реализовать стек в виде списка. Дана последовательность символов, записанных в строчку (стек №1). Получить и напечатать обратную последовательность символов(стек №2).
10. Реализовать очередь в виде списка. Заполнить очередь случайными действительными числами от -100 до 100. Переставить ее члены так, чтобы сначала расположились все ее двузначные члены, а потом - все однозначные. Порядок как среди однозначных членов, так и среди двузначных должен быть сохранен прежним. Для временного хранения однозначных и двузначных элементов использовать стеки. Значения элементов очереди до и после перестановки вывести на экран.
11. Реализовать стек в виде списка. Заполнить стек случайными действительными числами от -100 до 100. Удалить из него все четные элементы, используя второй стек и одну переменную. Значения элементов стеков до и после перестановки вывести на экран.
12. Реализовать стек в виде списка. Заполнить стек случайными действительными числами от -100 до 100. Разделить содержимое стека на два стека "круглых" и оставшихся чисел соответственно. При этом записанный в какой-либо новый стек элемент из исходного стека удаляется. После выполнения операции разделения в исходном стеке данных нет. Значения элементов стеков до и после перестановки вывести на экран.
13. Реализовать стек в виде списка. Заполнить стек случайными действительными числами от -100 до 100. Удалить из него все нечетные элементы, используя второй стек и одну переменную. Значения элементов стеков до и после перестановки вывести на экран.
14. Реализовать стек в виде списка. N человек получают номера от 1 до N и встают в круг. Начиная с первого человека, из круга исключается каждый k-й до тех пор, пока в круге не остается один человек. Найти номер этого человека в первоначальной расстановке. Значения элементов списка до начала исключения вывести на экран.
15. Реализовать стек в виде списка. Заполнить стек случайными действительными числами от -100 до 100. Разделить содержимое стека на два стека четных и нечетных чисел соответственно. При этом записанный в какой-либо новый стек элемент из исходного стека удаляется. После выполнения операции разделения в исходном стеке данных нет. Значения элементов стеков до и после перестановки вывести на экран.
16. Реализовать стек в виде списка. Дана величина a строкового типа из четного количества символов (стек №1). Получить и напечатать величину b (стек №2), состоящую из символов первой половины величины a, записанных в обратном порядке, после которых идут символы второй половины величины a, также записанные в обратном порядке (используя промежуточный стек №3). Например, при а = "привет" b должно быть равно "ирптев".
17. Реализовать очередь в виде списка. Заполнить очередь случайными действительными числами от -100 до 100. Переставить ее члены так, чтобы сначала расположились все ее положительные члены, а потом - все отрицательные. Порядок как среди положительных членов, так и среди отрицательных должен быть сохранен прежним. Для временного хранения положительных и отрицательных элементов использовать стеки. Значения элементов очереди до и после перестановки вывести на экран.
18. Реализовать стек в виде списка. Дана стихотворная форма, минимум из 4х строк (стек №1). Получить и напечатать стих(стек №2), состоящий из строк, следующих в обратном порядке.
19. Реализовать стек в виде списка. Заполнить стек случайными действительными числами от -100 до 100. Удалить из стека все числа кратные заданному пользователем N. Значения элементов стеков до и после перестановки вывести на экран.
20. Реализовать стек в виде списка. Заполнить стек случайными действительными числами от -100 до 100. Удалить из него все отрицательные элементы, используя второй стек и одну переменную. Значения элементов стеков до и после перестановки вывести на экран.
21. Реализовать очередь в виде списка. Заполнить очередь случайными действительными числами от -100 до 100. Переставить ее члены так, чтобы сначала расположились все ее четные члены, а потом - все нечетные. Порядок как среди четных членов, так и среди нечетных должен быть сохранен прежним. Для временного хранения четных и нечетных элементов использовать стеки. Значения элементов очереди до и после перестановки вывести на экран.
22. Реализовать стек в виде списка. Заполнить стек случайными действительными числами от -100 до 100. Удалить из стека, каждый второй элемент. На дне находится первый элемент. Значения элементов стеков до и после перестановки вывести на экран.
23. Реализовать стек в виде списка. Заполнить стек случайными действительными числами от -100 до 100. Разделить содержимое стека на два стека положительных и отрицательных чисел соответственно. При этом записанный в какой-либо новый стек элемент из исходного стека удаляется. После выполнения операции разделения в исходном стеке данных нет. Значения элементов стеков до и после перестановки вывести на экран.
24. Реализовать очередь в виде списка. Заполнить очередь случайными действительными числами от -100 до 100. Переставить ее члены так, чтобы сначала расположились все ее однозначные члены, а потом - все двузначные. Порядок как среди однозначных членов, так и среди двузначных должен быть сохранен прежним. Для временного хранения однозначных и двузначных элементов использовать стеки. Значения элементов очереди до и после перестановки вывести на экран.
25. Реализовать стек в виде списка. Дана величина a строкового типа из четного количества символов (стек №1). Получить и напечатать величину b (стек №2), состоящую из символов первой половины величины a, после которых идут символы второй половины величины a, записанные в обратном порядке (используя промежуточный стек №3). Например, при а = "привет" b должно быть равно "притев".